GTA San Andreas > Скриптинг
Зомби мод
egor230:
--- Цитата: Shagg_E от Ноябрь 19, 2018, 05:05:45 pm ---
--- Цитата: egor230 от Ноябрь 19, 2018, 06:49:40 am ---делайте все в цикле, с проверками.
--- Конец цитаты ---
Ты опубликовал не полный код(нет начала)
--- Конец цитаты ---
Спасибо вам большое уважаемый Shagg_E всё исправил, просто торопился с утра.
daniel_360 дал логику кода, улучшай её и оптимизирует код, с помощью тестирования в игре. Признаюсь, код далеко неидеальный, можно сделать гораздо лучше. Всё в твоих руках, действуй.
daniel_360:
Вот попробовал сам что-то сделать, получилось хорошо, зомби теперь атакуют, осталось исправить вылет
{$CLEO}
0000:
:Zombie
wait 0
if and
Player.Defined(0)
0ADC: test_cheat "ZTOWNINF"
jf @Zombie
03E5: show_text_box 'Z1'
0110: clear_player $PLAYER_CHAR wanted_level
01F0: set_max_wanted_level_to 0
Actor.StorePos($PLAYER_ACTOR, 1@, 2@, 3@)
:Z
if
0AE1: 0@ = random_actor_near_point 1@ 2@ 3@ in_radius 100.0 find_next 1 pass_deads 1
jf @Z
:Zombie_2
wait 0
if
056D: actor 0@ defined
jf @Z
if
0184: actor 0@ health >= 99
jf @Z
Actor.Health(0@) = 99
05E2: AS_actor 0@ kill_actor $PLAYER_ACTOR
0A09: set_actor 0@ muted 1
060B: set_actor 0@ decision_maker_to 32
jump @Z
daniel_360:
Всё, спустя часа 4-7 сделал скрипт, осталось сделать деактивацию
{$CLEO}
0000:
:Zombie
wait 0
if and
Player.Defined(0)
0ADC: test_cheat "ZTOWNINF"
jf @Zombie
03E5: show_text_box 'Z1'
0110: clear_player $PLAYER_CHAR wanted_level
01F0: set_max_wanted_level_to 0
:Z
Actor.StorePos($PLAYER_ACTOR, 1@, 2@, 3@)
wait 0
if
0AE1: 0@ = random_actor_near_point 1@ 2@ 3@ in_radius 100.0 find_next 1 pass_deads 1
jf @Zombie_2
:Zombie_2
wait 0
if
056D: actor 0@ defined
jf @Z
if
0184: actor 0@ health >= 99
jf @Z
Actor.Health(0@) = 99
05E2: AS_actor 0@ kill_actor $PLAYER_ACTOR
0A09: set_actor 0@ muted 1
060B: set_actor 0@ decision_maker_to 32
jump @Z
egor230:
--- Цитата: daniel_360 от Ноябрь 20, 2018, 04:39:46 pm ---Вот попробовал сам что-то сделать, получилось хорошо, зомби теперь атакуют, осталось исправить вылет
--- Конец цитаты ---
данила если это для GTA San Andreas. То лучше сразу пиши на lua.
--- Код: Javascript ---script_author("egor")require "lib.moonloader"local encoding = require 'encoding'encoding.default = 'CP1251'--func = require 'module' -- подключить модульlocal function codinat()local res = isCharInAnyCar(PLAYER_PED) -- 00DF: actor $PLAYER_ACTOR driving if res then local car = storeCarCharIsIn(PLAYER_PED)local x, y, z = getCarCoordinates(car) -- 00AA: store_car 0@ position_to 3@ 4@ 5@ else local x, y, z = getCharCoordinates(PLAYER_PED) -- получить координаты cjreturn x,y,z endendfunction main()while true dowait(0) res = testCheat("mn")--0ADC: test_cheat "BLOWUP"if resthen printStringNow("star", 1000)-- вывод текстаwhile isPlayerPlaying(PLAYER_HANDLE) do wait(100)x,y,z = codinat()res, ped = findAllRandomCharsInSphere(x,y,z, 40.3, 0, 1) -- 0AE1: $actor = random_actor_near_point 0@ 1@ 2@ in_radius 10.0 find_next 1 pass_deads 1if resthen taskKillCharOnFoot(ped, PLAYER_PED) -- 05E2: AS_actor 65@ kill_actor 50@end end end endend
Вот видео демонстрация https://www.youtube.com/watch?v=qiXIPPUsNgc&feature=youtu.be
daniel_360:
Осталось улучшить код, и можно выпускать
{$CLEO}
0000:
:Zombie
wait 0
if and
Player.Defined(0)
0ADC: test_cheat "ZTOWIN"
jf @Zombie
03E5: show_text_box 'CHEAT1'
0110: clear_player $PLAYER_CHAR wanted_level
01F0: set_max_wanted_level_to 0
:Z
Actor.StorePos($PLAYER_ACTOR, 1@, 2@, 3@)
wait 0
if
0ADC: test_cheat "ZTOWIN"
then
03E5: show_text_box 'CHEAT8'
0110: clear_player $PLAYER_CHAR wanted_level
01F0: set_max_wanted_level_to 6
Actor.Health(0@) = 100
85E2: not AS_actor 0@ kill_actor $PLAYER_ACTOR
0A09: set_actor 0@ muted 0
060B: set_actor 0@ decision_maker_to 0
8245: not set_actor 0@ walk_style_to "OLDMAN"
81B2: not give_actor 0@ weapon 0 ammo 0
848F: not actor 0@ remove_weapons
jump @Zombie
end
if
0AE1: 0@ = random_actor_near_point 1@ 2@ 3@ in_radius 200.0 find_next 1 pass_deads 1
jf @Zombie_2
:Zombie_2
wait 0
if
056D: actor 0@ defined
jf @Z
07AF: $PLAYER_GROUP = player $PLAYER_CHAR group
if
86EE: not actor 0@ in_group $PLAYER_GROUP
jf @Z
if
0184: actor 0@ health >= 99
jf @Z
Actor.Health(0@) = 99
05E2: AS_actor 0@ kill_actor $PLAYER_ACTOR
0A09: set_actor 0@ muted 1
060B: set_actor 0@ decision_maker_to 32
0245: set_actor 0@ walk_style_to "OLDMAN"
01B2: give_actor 0@ weapon 0 ammo 0
048F: actor 0@ remove_weapons
jump @Z
Навигация
Перейти к полной версии