Napisano dnia: 2012-12-23 23:07:44
Witam ponownie. ;)
W tym temacie chciałbym zapytać o dwie funkcje dla NPC:
1) Styl walki dla NPC
Próbowałem ulepszyć skrypt Nemesisa dodając dla niego styl walki (boks). Niestety nie widać efektu w grze, NPC dalej bije się "standardowym" stylem walki (jak przechodnie). Może ktoś powiedzieć, dlaczego tak się dzieje?
2) Siła NPC
Czyli jak zwiększyć siłę NPC, aby zadawał większe obrażenia w walce wręcz?
W tym temacie chciałbym zapytać o dwie funkcje dla NPC:
1) Styl walki dla NPC
Próbowałem ulepszyć skrypt Nemesisa dodając dla niego styl walki (boks). Niestety nie widać efektu w grze, NPC dalej bije się "standardowym" stylem walki (jak przechodnie). Może ktoś powiedzieć, dlaczego tak się dzieje?
Kod:
//-------------MAIN---------------
0000: NOP
:NONAME_2
wait 250
if
Player.Defined(0)
else_jump @NONAME_482
if
$ONMISSION == 0
else_jump @NONAME_482
if
00FE: actor $PLAYER_ACTOR sphere 0 in_sphere 287.6322 1839.766 7.72656 radius 12.0 12.0 5.0
else_jump @NONAME_482
Model.Load(#BRASSKNUCKLE)
Model.Load(#ROCKETLA)
023C: load_special_actor 'NEMESIS' as 1 // models 290-299
038B: load_requested_models
060A: create_decision_maker_type 0 store_to 3@ // decision\allowed\m_.ped files
0AAC: 0@ = load_mp3 "CLEO\NEMESIS\MUSIC.MP3"
1@ = Actor.Create(Mission1, #SPECIAL01, 287.6322, 1839.766, 7.72656)
Actor.Angle(1@) = 347.2881
Actor.Health(1@) = 11000
0446: set_actor 1@ immune_to_headshots 0
04D8: set_actor 1@ drowns_in_water 0
060B: set_actor 1@ decision_maker_to 3@
01B2: give_actor 1@ weapon 1 ammo 0 // Load the weapon model before using this
01B2: give_actor 1@ weapon 35 ammo 15 // Load the weapon model before using this
0245: set_actor 1@ walk_style_to "SWAT"
07FE: set_actor 1@ fighting_style_to 5 2
03FE: set_actor 1@ money 0
05E2: AS_actor 1@ kill_actor $PLAYER_ACTOR
Model.Destroy(#BRASSKNUCKLE)
Model.Destroy(#ROCKETLA)
0296: unload_special_actor 1
2@ = Actor.Health(1@)
2@ /= 110
0AB1: call_scm_func @NONAME_489 4 2 1 -589 1
0AAD: set_mp3 0@ perform_action 1
:NONAME_322
if and
Player.Defined(0)
not Actor.Dead(1@)
00F2: actor $PLAYER_ACTOR near_actor 1@ radius 200.0 200.0 0
else_jump @NONAME_425
wait 0
0AB9: get_mp3 0@ state_to 4@
if
4@ == -1
else_jump @NONAME_403
wait 125
0AAD: set_mp3 0@ perform_action 1
:NONAME_403
2@ = Actor.Health(1@)
2@ /= 110
jump @NONAME_322
:NONAME_425
0AAD: set_mp3 0@ perform_action 0
0AAE: release_mp3 0@
065C: release_decision_maker 3@
0AB1: call_scm_func @NONAME_555 1 2
if
Actor.Dead(1@)
else_jump @NONAME_477
Actor.RemoveReferences(1@)
0A93: end_custom_thread
:NONAME_477
Actor.RemoveReferences(1@)
:NONAME_482
jump @NONAME_2
:NONAME_489
0AB1: call_scm_func @NONAME_604 1 0@ 0@
0AB1: call_scm_func @NONAME_707 1 2@ 2@
0AA6: call_method 4509088 12195720 num_params 4 pop 0 3@ 2@ 1@ 0@
0AB2: ret 0
:NONAME_555
0AB1: call_scm_func @NONAME_604 1 0@ 0@
0AA6: call_method 4509312 12195720 num_params 1 pop 0 0@
0AB2: ret 0
0662: NOP "NA"
0000: NOP
:NONAME_604
0A9F: 1@ = current_thread_pointer
0A8E: 2@ = 1@ + 220 // int
0A8D: 2@ = read_memory 2@ size 1 virtual_protect 0
if
2@ == 1
else_jump @NONAME_667
1@ = 10783072
jump @NONAME_674
:NONAME_667
1@ += 60
:NONAME_674
0@ *= 4
005A: 1@ += 0@ // (int)
1@ -= 10787168
0AB2: ret 1 1@
:NONAME_707
if
0@ == 0
else_jump @NONAME_732
0AB2: ret 1 0
:NONAME_732
0A9F: 1@ = current_thread_pointer
1@ += 16
0A8D: 1@ = read_memory 1@ size 4 virtual_protect 0
0062: 1@ -= 0@ // (int)
1@ += 4
0AB2: ret 1 1@
0000: NOP
:NONAME_2
wait 250
if
Player.Defined(0)
else_jump @NONAME_482
if
$ONMISSION == 0
else_jump @NONAME_482
if
00FE: actor $PLAYER_ACTOR sphere 0 in_sphere 287.6322 1839.766 7.72656 radius 12.0 12.0 5.0
else_jump @NONAME_482
Model.Load(#BRASSKNUCKLE)
Model.Load(#ROCKETLA)
023C: load_special_actor 'NEMESIS' as 1 // models 290-299
038B: load_requested_models
060A: create_decision_maker_type 0 store_to 3@ // decision\allowed\m_.ped files
0AAC: 0@ = load_mp3 "CLEO\NEMESIS\MUSIC.MP3"
1@ = Actor.Create(Mission1, #SPECIAL01, 287.6322, 1839.766, 7.72656)
Actor.Angle(1@) = 347.2881
Actor.Health(1@) = 11000
0446: set_actor 1@ immune_to_headshots 0
04D8: set_actor 1@ drowns_in_water 0
060B: set_actor 1@ decision_maker_to 3@
01B2: give_actor 1@ weapon 1 ammo 0 // Load the weapon model before using this
01B2: give_actor 1@ weapon 35 ammo 15 // Load the weapon model before using this
0245: set_actor 1@ walk_style_to "SWAT"
07FE: set_actor 1@ fighting_style_to 5 2
03FE: set_actor 1@ money 0
05E2: AS_actor 1@ kill_actor $PLAYER_ACTOR
Model.Destroy(#BRASSKNUCKLE)
Model.Destroy(#ROCKETLA)
0296: unload_special_actor 1
2@ = Actor.Health(1@)
2@ /= 110
0AB1: call_scm_func @NONAME_489 4 2 1 -589 1
0AAD: set_mp3 0@ perform_action 1
:NONAME_322
if and
Player.Defined(0)
not Actor.Dead(1@)
00F2: actor $PLAYER_ACTOR near_actor 1@ radius 200.0 200.0 0
else_jump @NONAME_425
wait 0
0AB9: get_mp3 0@ state_to 4@
if
4@ == -1
else_jump @NONAME_403
wait 125
0AAD: set_mp3 0@ perform_action 1
:NONAME_403
2@ = Actor.Health(1@)
2@ /= 110
jump @NONAME_322
:NONAME_425
0AAD: set_mp3 0@ perform_action 0
0AAE: release_mp3 0@
065C: release_decision_maker 3@
0AB1: call_scm_func @NONAME_555 1 2
if
Actor.Dead(1@)
else_jump @NONAME_477
Actor.RemoveReferences(1@)
0A93: end_custom_thread
:NONAME_477
Actor.RemoveReferences(1@)
:NONAME_482
jump @NONAME_2
:NONAME_489
0AB1: call_scm_func @NONAME_604 1 0@ 0@
0AB1: call_scm_func @NONAME_707 1 2@ 2@
0AA6: call_method 4509088 12195720 num_params 4 pop 0 3@ 2@ 1@ 0@
0AB2: ret 0
:NONAME_555
0AB1: call_scm_func @NONAME_604 1 0@ 0@
0AA6: call_method 4509312 12195720 num_params 1 pop 0 0@
0AB2: ret 0
0662: NOP "NA"
0000: NOP
:NONAME_604
0A9F: 1@ = current_thread_pointer
0A8E: 2@ = 1@ + 220 // int
0A8D: 2@ = read_memory 2@ size 1 virtual_protect 0
if
2@ == 1
else_jump @NONAME_667
1@ = 10783072
jump @NONAME_674
:NONAME_667
1@ += 60
:NONAME_674
0@ *= 4
005A: 1@ += 0@ // (int)
1@ -= 10787168
0AB2: ret 1 1@
:NONAME_707
if
0@ == 0
else_jump @NONAME_732
0AB2: ret 1 0
:NONAME_732
0A9F: 1@ = current_thread_pointer
1@ += 16
0A8D: 1@ = read_memory 1@ size 4 virtual_protect 0
0062: 1@ -= 0@ // (int)
1@ += 4
0AB2: ret 1 1@
2) Siła NPC
Czyli jak zwiększyć siłę NPC, aby zadawał większe obrażenia w walce wręcz?