Jump to content

[Урок] Weapon Stats / Настройки оружия


Recommended Posts

Тема актуальна, потому что не все успели даже прочесть на вики про это изменение настроек оружия. Кстати, оно синхронизировано! Это так к слову.

  • ВНИМАНИЕ! Настройки оружия доступны только с версии 1.2 !

Проще говоря, имеем две новые функции - setWeaponProperty / getWeaponProperty. Прочтите для начала с вики всё.

Смысл работы функции setWeaponProperty:

  • setWeaponProperty меняет общие настройки указанного оружия для его указанной группы.
    У каждого оружия есть три группы настроек "pro", "std" и "poor" - про, средний навык, новичек соответственно.
    У каждого игрока (PED'a) есть настройки статистики (Ped Stats), которые можно выставить с помощью setPedStat. В этих настройках есть и уровни владения разными видами оружия. Обычно, уровень можно выставить от 0 до 1000 (т.е. уровень это число).
    Итак, вернемся снова к "pro", "std" и "poor". Каждый тип владения оружием зависит от уровня владения оружием. Немного уточним сразу - тип "pro" будет только, если уровень больше или равен 999, а максимальный уровень это 1000. Уровень для типов "poor" и "std" у каждого оружия свой. Об уровне владения оружием и о его типе можно прочесть здесь - Weapon_skill_levels, там типы немного по другому названы, но смысл тот же. Допустим, у дигла уровень от 0 до 200 это тип "poor", уровень от 201 до 998 - это тип "std", а "pro" - от 999 и выше. Я понимаю, что все это может быть непонятно, но для начала полистайте вики, подумайте.
    Сами настройки разные, но весьма полезные. Я перевёл список с английского на основе своих знаний, поэтому, если что, поправьте.
"weapon_range" - float, максимальная дистанция полета пули (:  
"target_range" - float, максимальная дистанция до цели 
"accuracy" - float, точность 
"damage" - int, урон 
"maximum_clip_ammo" - int, максимум патронов в обойме  
"move_speed" - float, скорость движения игрока с этим оружием в руках 
"flags" - int, особая настройка (флаг) 


Сразу небольшой пример. Допустим, мы выставили (setPedStat) для какого-то игрока уровень владения диглом на 999. Это значит, что теперь у него тип владения диглом стал "pro". А теперь выставим для дигла настройку урона так, чтобы отнималось 100 для типа "pro". Теперь все игроки, у кого тип владения диглом = "pro", будут убивать им с одного выстрела:

WEAPONTYPE_DESERT_EAGLE_SKILL = 71 -- это необязательно, но так нагляднее 
WEAPON_DESERT_EAGLE = 24 -- это необязательно, но так нагляднее 
  
setPedStat( player, WEAPONTYPE_DESERT_EAGLE_SKILL, 999 ) -- переменная player просто для примера 
  
setWeaponProperty( WEAPON_DESERT_EAGLE, "pro", "damage", 100 ) 

Смысл работы функции getWeaponProperty:

  • getWeaponProperty возвращает значение общих настроек указанного оружия для его указанной группы.
    Кстати, некоторые настройки оружия нельзя изменить, их можно только узнать с помощью этой функции. Этих константных настроек довольно много и где-то они могут быть весьма полезны:
"weapon_range"  
"target_range"  
"accuracy"  
"damage"  
"life_span" - ?, изменить нельзя  
"firing_speed" - скорость стрельбы, изменить нельзя  
"spread" - ?, изменить нельзя  
"maximum_clip_ammo"  
"move_speed"  
"flags"  
"anim_group" - группа анимации, изменить нельзя  
"fire_type" - тип огня, изменить нельзя  
"model" - модель, изменить нельзя (модель можно поменять в клиенте)  
"model2" - модель №2 (: , изменить нельзя  
"weapon_slot" - слот, изменить нельзя  
"fire_offset" - ?, изменить нельзя  
"skill_level" - текущий уровень владения оружием, изменить нельзя  
"required_skill_level" - необходимый уровень владения оружием, изменить нельзя  
"anim_loop_start" - анимация при начале стрельбы, изменить нельзя  
"anim_loop_stop" - анимация при конце стрельбы, изменить нельзя  
"anim_loop_bullet_fire" - анимация при вылете пули, изменить нельзя  
"anim2_loop_start" - анимация при начале стрельбы, изменить нельзя  
"anim2_loop_stop" - анимация при конце стрельбы, изменить нельзя  
"anim2_loop_bullet_fire" - анимация при вылете пули, изменить нельзя  
"anim_breakout_time" - ?, изменить нельзя  
"radius" - ?, изменить нельзя  
"aim_offset" - ?, изменить нельзя  
"default_combo" - ?, изменить нельзя  
"combos_available" - ?, изменить нельзя 


Значения некоторых настроек пока что мне не известны, но если увидите что-то знакомое - пишите.

Пока что всё. На практике это все не проверялось (: Есть время и желание - проверьте.

Edited by Guest
Link to comment
ВНИМАНИЕ! Настройки оружия доступны только в версии 1.2 !

Я хотел бы проверить, но сейчас же только 1.1.1 ??? Или есть уже 1.2 ???

возьмите с https://nightly.multitheftauto.com/ нужный билд (1.2 - Development build only), не забудьте про файлы настроек и ресурсы

Link to comment
Значения некоторых настроек пока что мне не известны, но если увидите что-то знакомое - пишите.

В "weapon.dat" в папке "...\GTA - San Andreas\data" - 100%-но оттуда настройки и статы взяты, там можно порытся, статьи в инете про настройки weapons.dat - тоже помогут, ещё помню прога была для редактирования weapons.dat - в ней тоже порытся можно.

Link to comment

_Dark_

Занимаюсь не переживайте.

.text:005BE739   push    offset aSSSFFDDDSDXS ; "%s %s %s %f %f %d %d %d %s %d %x %s" 
%s %s           %s              %f    %f        %d     %d  %d %s        %d       %x    %s 
Ј  UNARMED MELEE           10.0  1.6   -1     -1  0  UNARMED   4    1     null 

.text:005BE739        push    offset cszWeaponDatParsePatternMelee ; "%s %s %s %f %f %d %d %d %s %d %x %s" 
.text:005BE73E                 push    eax             ; char * 
.text:005BE73F                 call    _sscanf 
.text:005BE744                 lea     eax, [esp+158h+var_60] 
.text:005BE74B                 push    eax 
.text:005BE74C                 call    sub_743D10 
  

Link to comment
_Dark_

Занимаюсь не переживайте.

.text:005BE739   push    offset aSSSFFDDDSDXS ; "%s %s %s %f %f %d %d %d %s %d %x %s" 
%s %s           %s              %f    %f        %d     %d  %d %s        %d       %x    %s 
Ј  UNARMED MELEE           10.0  1.6   -1     -1  0  UNARMED   4    1     null 

.text:005BE739        push    offset cszWeaponDatParsePatternMelee ; "%s %s %s %f %f %d %d %d %s %d %x %s" 
.text:005BE73E                 push    eax             ; char * 
.text:005BE73F                 call    _sscanf 
.text:005BE744                 lea     eax, [esp+158h+var_60] 
.text:005BE74B                 push    eax 
.text:005BE74C                 call    sub_743D10 
  

Вы не подливайте масло в огонь, вы этим маслом детали смазывайте. Не нужно кидать дезассемблированный gta_sa.exe, вы пишите патч для MTA SA.

Link to comment

Ах оставьте.. (: пусть человек работает.. Те, кто знаком с С подобными языками, хотят в МТА писать моды на С подобном языке. Те, кто знает pawn, хотятт все в МТА кодить на нем. Те, кто знаком с CLEO, хотят юзать в МТА эти скрипты. А ГТА-моддеры, которые любят писать разные плагины, ковыряются в файлах игры, и надеются написать ПОТОМ на основе этих ковыряний отдельный плагин (: А я вот например РНР знаю, получится ли у меня сделать на нем мод в МТА?

Link to comment
Ах оставьте.. (: пусть человек работает.. Те, кто знаком с С подобными языками, хотят в МТА писать моды на С подобном языке. Те, кто знает pawn, хотятт все в МТА кодить на нем. Те, кто знаком с CLEO, хотят юзать в МТА эти скрипты. А ГТА-моддеры, которые любят писать разные плагины, ковыряются в файлах игры, и надеются написать ПОТОМ на основе этих ковыряний отдельный плагин (: А я вот например РНР знаю, получится ли у меня сделать на нем мод в МТА?

Странно, я знаю и Pawn и PHP, но в MTA пишу на LUA :)

Link to comment
  • 1 month later...

не понял, это, что надо мта компилить, что бы выставить характеристики оружий, или в каком файле их нужно менять ?

p.s бесполезные функции, лучше бы веапон дат оставили

можно ли сделать так, что бы MTA SAN ANDREAS использовала WEAPON.DAT в папке с гта как раньше ?

Link to comment
можно ли сделать так, что бы MTA SAN ANDREAS использовала WEAPON.DAT в папке с гта как раньше ?

А не читерство ли это?

MTA проверяет все DAT файлы (если в настройках сервера включено). Просто человек не понимает вообще для чего Weapon Stats и как им пользоваться (действительно не читал тему).

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...