pev_bodylà một giá trị mà nói với các trò chơi mà submodel cần được nhìn thấy được.
Điều này có thể vô cùng mạnh mẽ với các model player, ngoại trừ không ai dường như đã sử dụng tính năng này để tiềm năng của nó được nêu ra. Như của bây giờ và như xa như tôi biết, CS chỉ sử dụng này để hiển thị bom trên người chơi.
Những gì có thể được thực hiện với giá trị này?Ví dụ, bạn có thể đặt tất cả các model và mũ trên máy chủ của bạn thành một model duy nhất. Điều này có rất nhiều ưu hơn khuyết điểm (bên dưới).
Làm thế nào để bạn thay đổi kết hợp?
Hãy nói rằng bạn có hai nhóm submodel như tôi - model và hats.
ĐÂY KHÔNG PHẢI LÀ CÁCH NÓ HOẠT ĐỘNG.
Model1 - ID: 0
Model2 - ID: 1
Model3 - ID: 2
Hat1 - ID: 3
Hat2 - ID: 4
Hat3 - ID: 5
ĐÂY LÀ CÁCH NÓ HOẠT ĐỘNG
Model1 - ID: 0
Model2 - ID: 1
Model3 - ID: 2
Hat1 - ID: 0
Hat2 - ID: 1
Hat3 - ID: 2
Cho chỉ có hai nhóm, bạn muốn sử dụng để có được số lượng pev_body bạn cần:
Code:
pev_body = hat_id * amount_of_models + model_id
Vì vậy, hãy nói rằng bạn muốn cung cấp cho người chơi Model 2 với Hat 3.
pev_body = 2 * 3 + 1 = 7
Tôi đã không cố gắng làm việc với các nhóm hơn nữa, tôi sẽ báo cáo lại một lần tôi làm.
Những gì có thể được thực hiện với điều này?
Bạn có thể ví dụ như làm một plugin cho tùy biến nhân vật đầy đủ. Tạo ra một mô hình với các bộ phận cơ thể như khuôn mặt, mái tóc, kích thước ngực, vv và cho phép người chơi lựa chọn những gì phù hợp với mình.
Ưu điểm:
- Tất cả các model là trong một tập tin lớn hơn, mang đến cho một "cảm giác" tốt hơn khi tải
- Một cách tuyệt vời để giảm số lượng các tập tin trên máy chủ của bạn precached
- Kích thước tập tin nhỏ hơn rất nhiều so với tất cả các mô hình từng người một với nhau, bởi vì các bản sao (thông tin mô hình, hình động vv) được loại bỏ
- Đối với mũ và như vậy, bạn không cần một plugin của bên thứ 3 để xử lý nó (tạo ra một thực thể mới, đặt nó là nguồn gốc, vv)
- Model + mũ vẫn là một thực thể duy nhất
- Rất nhiều khả năng mới
Nhược Điểm:
- Thêm model hơn sẽ đòi hỏi một tải mới của tập tin hoàn chỉnh
- Không quá dễ dàng để làm việc với
- Trình biên dịch là một khốn
- Các mô hình cuối cùng yêu cầu tất cả các mô hình Counter-Strike đã tồn tại, nếu bạn muốn làm cho nón có sẵn cho các mô hình tiêu chuẩn như là tốt
- Người chơi sẽ không thể nhìn thấy mô hình tùy chỉnh của họ
Vấn đề hiện tại:
Nếu bạn biết làm thế nào để giải quyết bất kỳ vấn đề trên, vui lòng cho tôi biết.
Sử dụng plugin này nhỏ với mô hình bao gồm để xem tính năng này là những gì có khả năng
Code:
#include < amxmodx > #include < fakemeta > #include < cstrike > new const cstModel[ ] = "models/player/testmdl/testmdl.mdl" new const cstModelT[ ] = "models/player/testmdl/testmdlt.mdl" new const cstMdlName[ ] = "testmdl" public plugin_precache( ) { precache_model( cstModel ) precache_model( cstModelT ) } public plugin_init( ) { register_clcmd( "pev_body", "_body" ) register_clcmd( "changemdl", "_changemdl" ) } public _body( id ) { new szArgs[ 4 ] read_args( szArgs, charsmax( szArgs ) ) remove_quotes( szArgs ) trim( szArgs ) new iPev = str_to_num( szArgs ) set_pev( id, pev_body, iPev ) client_print( id, print_console, "Changing your pev_body value to %d", iPev ) return PLUGIN_HANDLED } public _changemdl( id ) { cs_set_user_model( id, cstMdlName ) client_print( id, print_console, "Your model was changed to %s. You can now change your pev_body value using console command 'pev_body'.", cstMdlName ) }
Bảng giá trị:
Code:
MODEL NAME HAT PEV_BODY
T Model 1 Indian Hat 0
T Model 2 Indian Hat 1
CT Model 1 Indian Hat 2
Hitman Indian Hat 3
Banana (eyes) Indian Hat 4
Banana (rest) Indian Hat 5
CT Model 2 Indian Hat 6
Assassin Indian Hat 7
T Model 1 Afro 8
T Model 2 Afro 9
CT Model 1 Afro 10
Hitman Afro 11
Banana (eyes) Afro 12
Banana (rest) Afro 13
CT Model 2 Afro 14
Assassin Afro 15
T Model 1 Minecraft 16
T Model 2 Minecraft 17
CT Model 1 Minecraft 18
Hitman Minecraft 19
Banana (eyes) Minecraft 20
Banana (rest) Minecraft 21
CT Model 2 Minecraft 22
Assassin Minecraft 23
T Model 1 Fly 24
T Model 2 Fly 25
CT Model 1 Fly 26
Hitman Fly 27
Banana (eyes) Fly 28
Banana (rest) Fly 29
CT Model 2 Fly 30
Assassin Fly 31
T Model 1 Wings (broken) 32
T Model 2 Wings (broken) 33
CT Model 1 Wings (broken) 34
Hitman Wings (broken) 35
Banana (eyes) Wings (broken) 36
Banana (rest) Wings (broken) 37
CT Model 2 Wings (broken) 38
Assassin Wings (broken) 39
UPDATE
Thanks for reading.
HUGE UPDATE
Được rồi, đây là nhận được thậm chí tốt hơn so với tôi nghĩ rằng nó sẽ.
Ảnh động
Mỗi mô hình có khoảng 120 trình tự. Có gì buồn cười về việc này là một mô hình trung bình có kích cỡ 2.3MB - 2
megabytesđó là những hình ảnh động. Có nghĩa là nếu bạn đang đi để kết hợp 5 mô hình kích thước 2.3MB mỗi, kích thước cuối cùng của bạn sẽ được 2MB cho các hình ảnh động + 5 * 300kB = 3.5MB tổng số.
Bomb and defusal kit
Tôi đã thực hiện những mô hình mới trong của tôi. Chức năng để có được ID pev_body như sau:
Code:
stock get_bodyid( iModelId, iHatId, bool: bBomb, bool: bDefusalKit ) { new iPevBody = iHatId * g_TotalModels + iModelId if( bBomb ) iPevBody += ( g_TotalModels * g_TotalHats ) if( bDefusalKit ) iPevBody += ( g_TotalModels * g_TotalHats * 2 ) return iPevBody }
New model
Các mô hình mới là trong file đính kèm. Có 17 model và 39 mũ - tổng kích thước: 11.15MB. Tôi đã gỡ bỏ các hình ảnh động lá chắn, vì họ vô ích cho tôi. Hai mô hình là bản sao (xấu của tôi), vì tôi quên để đổi tên các kết cấu trong số này, vì vậy họ chỉ thay thế các kết cấu khác.
Limits
Các giới hạn cho các mô hình kết hợp là:
- Tối đa 16MB kích cỡ
- Tên Texture đôi khi cần phải được thay đổi hoặc họ sẽ bị ghi đè bởi các mô hình khác
- Tối đa 40 phụ model cho mỗi nhóm (39 mũ, bởi vì là người đầu tiên có sản phẩm nào)
Lưu ý các HatID đầu tiên không còn 0 (ID 0 là "không có gì", chúng tôi đang thiết HatID 0 cho những người không có bất kỳ mũ)
0 nhận xét:
Post a Comment