Автор Тема: Зомби мод  (Прочитано 4364 раз)

Оффлайн daniel_360

  • Прохожий
  • *
  • Сообщений: 100
  • Репутация: +4/-0
    • daniel360465
    • Просмотр профиля
Зомби мод
« : Ноябрь 18, 2018, 08:27:47 pm »
Всем привет, у меня тут возникла проблема я хотел сделать чит-код на зомби. Вот сделал его. Теперь когда ввожу его, то зомби становится один пед, а я хочу чтоб становились все, как это сделать?

Оффлайн egor230

  • Новичок
  • **
  • Сообщений: 183
  • Репутация: +7/-0
    • Просмотр профиля
    • Mr
Re: Зомби мод
« Ответ #1 : Ноябрь 19, 2018, 06:49:40 am »
делайте все в цикле, с проверками.
Код: Javascript
  1. {$CLEO}
  2. 0000:  
  3. :1
  4. wait 0
  5. if Player.Defined(0)
  6. jf @1                    
  7. 0ADC: test_cheat "ZT"          
  8. jf @1                          
  9. 03E5: show_text_box 'Z1'
  10. :11                    
  11. wait 0        
  12. if Player.Defined(0)
  13. jf @1      
  14. if 00E0: player $player_char driving
  15. jf @12      
  16. 03C1: 14@ = player $player_char car_no_save
  17. 00AA: store_car 14@ position_to 0@ 1@ 2@
  18. jump @13
  19. :12
  20. wait 0
  21. if Player.Defined(0)
  22. jf @1        
  23. if 80E0: not player $player_char driving // не авто
  24. jf @12      
  25. 0054: store_player $player_char position_to 0@ 1@ 2@
  26. :13                  
  27. wait 0
  28. if 0AE1: 13@ = random_actor_near_point 0@ 1@ 2@ in_radius 100.0 find_next 0 pass_deads 1
  29. jf @11
  30. //0110: clear_player $PLAYER_CHAR wanted_level
  31. //01F0: set_max_wanted_level_to 0
  32. //:2
  33. //wait 0
  34. //if
  35. //056D: actor 13@ defined
  36. //jf @11
  37. //if 0184:   actor 13@ health >= 99
  38. //jf @11
  39. //Actor.Health(0@) = 99
  40. //0467: clear_actor 13@ last_weapon_damage
  41. 01CA: actor 13@ kill_player $player_char
  42. jump @11
  43.  
вот видео работы скрипта https://www.youtube.com/watch?v=sPpnUc5-mB8&feature=youtu.be
« Последнее редактирование: Ноябрь 19, 2018, 06:07:59 pm от egor230 »

Оффлайн Shagg_E

  • Администратор
  • Постоялец
  • *****
  • Сообщений: 705
  • Репутация: +24/-4
  • Изобретательный Рукожопъ
    • Просмотр профиля
    • NewRockstar
Re: Зомби мод
« Ответ #2 : Ноябрь 19, 2018, 05:05:45 pm »
делайте все в цикле, с проверками.
Ты опубликовал не полный код(нет начала)

Оффлайн daniel_360

  • Прохожий
  • *
  • Сообщений: 100
  • Репутация: +4/-0
    • daniel360465
    • Просмотр профиля
Re: Зомби мод
« Ответ #3 : Ноябрь 19, 2018, 06:01:31 pm »
Так, я это для GTA SA делал

Оффлайн Shagg_E

  • Администратор
  • Постоялец
  • *****
  • Сообщений: 705
  • Репутация: +24/-4
  • Изобретательный Рукожопъ
    • Просмотр профиля
    • NewRockstar
Re: Зомби мод
« Ответ #4 : Ноябрь 19, 2018, 08:29:16 pm »
Ого, сам только что заметил, что тема в разделе SA находится... В принципе, код должен работать и там(если egor230 опубликует полную версию).

Оффлайн egor230

  • Новичок
  • **
  • Сообщений: 183
  • Репутация: +7/-0
    • Просмотр профиля
    • Mr
Re: Зомби мод
« Ответ #5 : Ноябрь 19, 2018, 11:18:47 pm »
делайте все в цикле, с проверками.
Ты опубликовал не полный код(нет начала)
Спасибо вам большое уважаемый Shagg_E всё исправил, просто торопился с утра.

 daniel_360 дал логику кода, улучшай её и оптимизирует код, с помощью тестирования в игре. Признаюсь, код  далеко неидеальный,  можно сделать гораздо лучше.  Всё в твоих руках, действуй.

Оффлайн daniel_360

  • Прохожий
  • *
  • Сообщений: 100
  • Репутация: +4/-0
    • daniel360465
    • Просмотр профиля
Re: Зомби мод
« Ответ #6 : Ноябрь 20, 2018, 04:39:46 pm »
Вот попробовал сам что-то сделать, получилось хорошо, зомби теперь атакуют, осталось исправить вылет

{$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

  • Прохожий
  • *
  • Сообщений: 100
  • Репутация: +4/-0
    • daniel360465
    • Просмотр профиля
Re: Зомби мод
« Ответ #7 : Ноябрь 20, 2018, 08:37:15 pm »
Всё, спустя часа 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

  • Новичок
  • **
  • Сообщений: 183
  • Репутация: +7/-0
    • Просмотр профиля
    • Mr
Re: Зомби мод
« Ответ #8 : Ноябрь 20, 2018, 08:39:10 pm »
Вот попробовал сам что-то сделать, получилось хорошо, зомби теперь атакуют, осталось исправить вылет
данила если это для GTA San Andreas. То лучше сразу пиши на lua.

Код: Javascript
  1. script_author("egor")
  2. require "lib.moonloader"
  3. local encoding = require 'encoding'
  4. encoding.default = 'CP1251'
  5. --func = require 'module' -- подключить модуль
  6. local function codinat()
  7. local res = isCharInAnyCar(PLAYER_PED) -- 00DF: actor $PLAYER_ACTOR driving
  8.   if res
  9.   then local  car = storeCarCharIsIn(PLAYER_PED)
  10. local  x, y, z = getCarCoordinates(car) -- 00AA: store_car 0@ position_to 3@ 4@ 5@
  11.   else
  12.  local x, y, z = getCharCoordinates(PLAYER_PED) -- получить координаты cj
  13. return x,y,z
  14.   end
  15. end
  16. function main()
  17. while true do
  18. wait(0)
  19. res = testCheat("mn")--0ADC: test_cheat "BLOWUP"
  20. if res
  21. then  printStringNow("star", 1000)-- вывод текста
  22. while isPlayerPlaying(PLAYER_HANDLE) do wait(100)
  23. x,y,z = codinat()
  24. 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 1
  25. if res
  26. then taskKillCharOnFoot(ped, PLAYER_PED) -- 05E2: AS_actor 65@ kill_actor 50@
  27. end end end end
  28. end
  29.  

Вот видео демонстрация https://www.youtube.com/watch?v=qiXIPPUsNgc&feature=youtu.be

Оффлайн daniel_360

  • Прохожий
  • *
  • Сообщений: 100
  • Репутация: +4/-0
    • daniel360465
    • Просмотр профиля
Re: Зомби мод
« Ответ #9 : Ноябрь 22, 2018, 03:10:33 pm »
Осталось улучшить код, и можно выпускать

{$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

Оффлайн egor230

  • Новичок
  • **
  • Сообщений: 183
  • Репутация: +7/-0
    • Просмотр профиля
    • Mr
Re: Зомби мод
« Ответ #10 : Ноябрь 23, 2018, 12:59:10 am »
daniel_360, писать скрипт  на cleo, ты потратишь много нервов, Лучше  пиши  на lua.  вот аналог твоего скрипта.
Код: Javascript
  1. script_author("egor")
  2. require "lib.moonloader"
  3. local encoding = require 'encoding'
  4. encoding.default = 'CP1251'
  5. --func = require 'module' -- подключить модуль
  6. local function codinat()
  7. local res = isCharInAnyCar(PLAYER_PED) -- 00DF: actor $PLAYER_ACTOR driving
  8.   if res
  9.   then local  car = storeCarCharIsIn(PLAYER_PED)
  10. local  x, y, z = getCarCoordinates(car) -- 00AA: store_car 0@ position_to 3@ 4@ 5@
  11.   else
  12.  local x, y, z = getCharCoordinates(PLAYER_PED) -- получить координаты cj
  13. return x,y,z
  14.   end
  15. end
  16. local function zomb(ped)
  17. taskKillCharOnFoot(ped, PLAYER_PED) -- 05E2: AS_actor 65@ kill_actor 50@
  18. shutCharUpForScriptedSpeech(ped, 1) -- 0A09: set_actor 0@ muted 1
  19. --setCharDecisionMaker(ped, 32) -- 060B: set_actor 0@ decision_maker_to 32
  20. --setAnimGroupForChar(ped, "OLDMAN")--0245: set_actor 0@ walk_style_to "OLDMAN"
  21. -- giveWeaponToChar(ped, 0,0) -- 01B2: give_actor 0@ weapon 0 ammo 0
  22. -- removeAllCharWeapons(ped) -- 048F: actor 0@ remove_weapons
  23. end
  24. function main()
  25. while true do
  26. wait(0)
  27. res = testCheat("mn")--0ADC: test_cheat "BLOWUP"
  28. if res
  29. then  printStringNow("star", 1000)-- вывод текста
  30. while isPlayerPlaying(PLAYER_HANDLE) or res1 do wait(100)-- отключить если игрок умер или чит no
  31. x,y,z = codinat()
  32. res1 = testCheat("no")--выключить зомби
  33. if res1
  34. then printStringNow("end", 1000)
  35. break
  36. else 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 1
  37. zomb(ped)
  38. end end
  39. break
  40. end end
  41. end
  42.