You are not logged in.
Это скрипт для вайсы.
Сущность глюкка заключается в следующем: при загрузке игры Томми появляется в аэропорте прицепленный к хвосту самолёта, и вместе с ним улетает к облакам=)
при этом слезть с него нельзя, зато работает радио:rolleyes:
через несколько минут полёта игра вылетает.
@Seemann -
В самом скрипте куча ошибок.
Если не секрет, где? Скрипт-то работает
З.Ы. сорри за оффтоп, но как можно выложить скрин?
Last edited by KOLLEGA (06-03-2009 16:49)
Поправьте меня если я ошибаюсь
только вежливо :)
Offline
2 Seemann
Огромное спасибо за ответы.
Насчет экстры, скорее всего да, хендл можно сконвертировать в указатель, а по указателю прочитать нужное поле в структуре машины, где хранится значение экстры (под экстрой ты понимаешь то, что используется в опкоде 0506?).
Да, именно это (так это по-моделлерски именуется ). А вот "сконвертировать хэндл в указатель..." Можно пример, если не трудно?
Offline
написал я скрипт, делать он должен небольшую работу - проверять, не меньше 100 ед. здоровья у игрока, и если меньше, то добавлять до тех пор, пока оно не достигнет ста.
{$CLEO .cs} 0000: NOP :Proverka_plus wait 150 0226: $HEALTH = actor $PLAYER_ACTOR health if $HEALTH < 100 then wait 10 jump @Health_plus end :Health_plus wait 10 $UP = 15 0A8E: $HEALTH_UP = $HEALTH + $UP wait 10 0223: set_actor $PLAYER_ACTOR health_to $HEALTH_UP wait 100 jump @Proverka_plus
не работает конечно. Вернее работает, но как-то странно - добавляет здоровье не до сотни, а до максимума...
Offline
Ошибка твоя вот в чем: если условие после IF истинно, то далее выполняются команды, написанные после THEN. Если же условие ложно, то все, что находится между THEN и END пропускается. В итоге, независимо от того, сколько у игрока здоровья, оно все время продолжает пополняться до максимума (в любом случае выполнение алгоритма продолжается и осуществляется переход на метку :Health_plus. Так что в твоем варианте надо заменить
[c]then
wait 10
jump @Health_plus
end [/c]
на [c] jf @Proverka_plus[/c]
Еще: ты прибавляешь к здоровью по 15 единиц. А если уровень здоровья больше 85? Если делать так, то прибавлять надо по 1.
Но проверять здоровье игрока необязательно, можно и так все время присваивать ему значение 100. Так что легче сделать так:
[c]{$CLEO .cs}
wait 0
while true
wait 0
0223: set_actor $PLAYER_ACTOR health_to 100
end
[/c]
И напоследок, не используй в КЛЕО глобальные переменные. Есть исключения, но их немного.
Last edited by Den_spb (06-03-2009 21:44)
Offline
@#$, сложно это тут не какой-то jscript...
блин фтопку автоприбавление здоровья, я за деньги попробую сделать
кстати, как прочесть значение статичтики? в справке только изменение...
Last edited by WinuX (06-03-2009 21:56)
Offline
кстати, как прочесть значение статистики? в справке только изменение...
Можно попробовать через память
Некоторые адреса можно найти тут: gtamodding.ru
Вот выдержка.
Статус * 0xB793D4 - [float] Фигура * 0xB793D8 - [float] Выносливость * 0xB793DC - [float] Мышцы * 0xB793E0 - [float] Здоровье * 0xB793E4 - [float] Сексуальность * 0xB79496 - [float] Pistol * 0xB79498 - [float] Silenced pistol * 0xB7949C - [float] Desert eagle * 0xB794A0 - [float] Shotgun * 0xB794A4 - [float] Sawn-off Shotgun * 0xB794A8 - [float] Combat Shotgun * 0xB794AC - [float] Machine Pistol * 0xB794B0 - [float] SMG * 0xB794B4 - [float] AK47 * 0xB794B8 - [float] M4
Так, чтобы считать стат навыка М4, пишем
0A8D: 0@ = read_memory 0xB794B8 size 4 virtual_protect 0
В переменной 0@ оказывается то, что тебе надо.
Но там не все адреса статистики есть.
Offline
Скажите как можно убрать:
Войну между бандами (когда убиваем врагов, война не провоцируется);
Территории банд на радаре и карте (Только территории! А сами пусть остаются там, где были);
Хотелось бы, чтобы в мультиплеере также ходили педы, ездили тачки, как можно это реализовать?
Last edited by GTASA (07-03-2009 04:30)
Offline
Вот еще, помогите понять в чем соль: Я хочу сделать черного пьяницей, но ходить он как пьяница почему-то не хочет (!!!!!!!!!)
// This file was decompiled using sascm.ini published by Seemann (http://sannybuilder.com/files/SASCM.rar) on 13.10.2007 {$VERSION 3.1.0027} {$CLEO .cs} //-------------MAIN--------------- wait 10 :NONAME_4 wait 10 if 0AB0: key_pressed 50 else_jump @NONAME_4 0245: set_actor $PLAYER_ACTOR walk_style_to "DRUNKMAN" Player.SetDrunkVisuals($PLAYER_CHAR, 700) wait 10 jump @NONAME_4
Offline
Проблема в то, что применять всякие анимации к PLAYER'y нельзя, т.к. при управлении используются другие анимации. Опкод 0245: можно использовать только к актерам, не управляемым игроком в данный момент. он будет работать с CJ только так
0245: set_actor $PLAYER_ACTOR walk_style_to "DRUNKMAN" Actor.go_to($PLAYER_ACTOR, $x, $y, $z)
P.S.: Сорри за Actor.go_to($PLAYER_ACTOR, $x, $y, $z), т.к писал с другого компа ( там не билдера), но думаю суть ты понял.
Специально для тех, кто не умеет читать по английски. Мой ник читается как "ГИР"!!!
Народная мудрость:
Прежде чем задавать вопросы,ПОЧИТАЙ СПРАВКУ!!!!
Offline
@WinuX - вот все опкоды, которые работают со статистикой
042E: downdate_integer_stat 212 to 448@ // same as 0582
0582: downdate_integer_stat 175@($RACE_INDEX,30i) to 450@ // same as 042E0623: add 1 to_integer_stat 214
0624: add 40.0 to_float_stat 1600625: decrease_integer_stat 184 by 1
0626: decrease_float_stat 21 by 8.00627: update_integer_stat 215 to $1922
0628: add 17@ to_float_stat 20629: change_integer_stat 181 to 0
062A: change_float_stat 165 to 800.00652: $STAT_UNLOCKED_CITIES_NUMBER = integer_stat 181
0653: $STAT_FAT = float_stat 210A10: increase_integer_stat 161 by 1
0A1F: increase_float_stat 24 by 196@058C: $STAT_PERCENTAGE_COMPLETED = percentage_completed
08E1: $STAT_TAGS_SPRAYED = total_tags_sprayed
нетрудно найти среди них те, которые отвечают за чтение значения того или иного стата.
@GTASA -
Хотелось бы, чтобы в мультиплеере также ходили педы, ездили тачки, как можно это реализовать?
нужно спрашивать у разработчиков мультиплеера
Скажите как можно убрать:
Войну между бандами
попробуй поискать в Opcode Search Tool по слову gang_war
@KOLLEGA -
Если не секрет, где? Скрипт-то работает
ну например, ты создаешь парковку для машины (car_generator) и пытаешься посадить в нее игрока. Фишка в том, что парковка - это необязательно уже созданная машина. Чаще всего ее там и нет. Более того, переменная, которая используется в опкодах 014B/014C, - это не машина (хендл машины), а ID парковки, а это, как говорят в Одессе, две большие разницы.
сорри за оффтоп, но как можно выложить скрин?
В окне New Reply в поле "Image Upload" выбери "Show 1 Upload Slots", через кнопку Обзор выбери картинку и пиши ответ.
@Callback -
А вот "сконвертировать хэндл в указатель..." Можно пример, если не трудно?
Как-то так:
0A8D: 1@ = read_memory 0x00B74494 size 4 virtual_protect 0 // читаем указатель на массив машин 0AA8: call_function_method 0x004048E0 struct 1@ num_params 1 pop 0 0@ 1@ // вызываем функцию, которая конвертирует хендл в указатель
0@ - хендл машины
1@ - результат (указатель на структуру машины)
Last edited by Seemann (07-03-2009 11:09)
Offline
Ну не, это не подходит. Ладно, а что насчет других моих вопросов (пост #833)?
Offline
Скажите как можно убрать:
Войну между бандами (когда убиваем врагов, война не провоцируется)
Через SCM не знаю, редактируй PED.dat
Территории банд на радаре и карте (Только территории! А сами пусть остаются там, где были)
Помниш миссию в Глен Парке? Открой её и там посмотри.
Хотелось бы, чтобы в мультиплеере также ходили педы, ездили тачки, как можно это реализовать?
Нельзя. Весь транспорт контролируется сервером, а про педов вообще молчу.
Специально для тех, кто не умеет читать по английски. Мой ник читается как "ГИР"!!!
Народная мудрость:
Прежде чем задавать вопросы,ПОЧИТАЙ СПРАВКУ!!!!
Offline
Нет, в мультиплеере то контролируется, но тут другое дело. Есть же скрипт чтобы отключать, значит должен быть и тот, что включает.
Так, у меня еще два вопросика: Как сделать, чтобы на расстоянии от Карла появлялись случайные люди (вобще случайные, даже не по своей зоне).
Как сделать скольжение тачки как при дожде?
Offline
@GTASA -
Есть же скрипт чтобы отключать, значит должен быть и тот, что включает.
я уверен на 100%, что прохожие и траффик в мультиплеере отключены не просто так. Вместо них используются другие игроки и их машины. Т.е. если игра начнет сама спаунить прохожих и машины, вероятно сервер воспримет их как игроков и может заглючить. Плюс, массив актеров и машин в игре ограничен, так что если начать спаунить лишних, не останется места для собственно игроков. Примерно так.
Offline
Создаёшь рядом с актером координаты 04C4:
store_coords_to $x $y $z from_actor $PLAYER_ACTOR with_offset 1.0 3.0 1.0
Потом создаёшь актера используя -1 вместо модели.
009A: 2@ = create_actor_pedtype 4 model -1 at $x $y $z
или
0376: 18@ = create_random_actor_at $x $y $z
Last edited by Gyr (07-03-2009 11:27)
Специально для тех, кто не умеет читать по английски. Мой ник читается как "ГИР"!!!
Народная мудрость:
Прежде чем задавать вопросы,ПОЧИТАЙ СПРАВКУ!!!!
Offline
А насчет скольжения?
Seemann, в сампе и в сингле тачи чуть-чуть разные. Если, например, создать тачку клео скриптом в мудьтиплеере, то в нее сесть не получится, там как бы другой формат.
А можно заставить этих случайных актеров, которые создаются у меня рядом, ходить по стандартным путям?
Offline
А можно заставить этих случайных актеров, которые создаются у меня рядом, ходить по стандартным путям?
Попробуй это:
0817: assign_actor 38@ to_animation_path_with_walk_mode 4 route_mode 3
или просто удали хэнд актера
009B: destroy_actor 18@
P.S.: Насчет скольжения ничего сказать не могу.
Last edited by Gyr (07-03-2009 12:54)
Специально для тех, кто не умеет читать по английски. Мой ник читается как "ГИР"!!!
Народная мудрость:
Прежде чем задавать вопросы,ПОЧИТАЙ СПРАВКУ!!!!
Offline
Простой вопрос: если требуется определить число случайным образом, в интервале скажем от 1 до 5 включительно, то надо писать так:
0209: 0@ = random_int_in_ranges 0 6
или так:
0209: 0@ = random_int_in_ranges 1 5
Видел несколько исходников, везде по-разному.
Offline
@Den_spb -
0209: 0@ = random_int_in_ranges 1 6
в 0209 выбор числа происходит в диапазоне на единицу меньше второго параметра
Offline
Спасибо, народ, но как скольжение делать?
И где можно скачать Opcode Search Tool?
Offline
что заюзать, чтобы получить рандомное число от -100 до 0? p.s. моск не юзается
Offline
Как дать проверку на имение какого либо оружия?
Можно ли увеличить радар (не карту в радаре, а именно обводку вокруг него, чтобы обзор увеличить)?
Offline