You are not logged in.
получать значение можно и напрямую следующим образом
0AAA: 0@ = thread 'script1' pointer //получаем адрес потока первого скрипта который задается thread 'script1' в начале первого скрипта if //проверяем есть ли такой скрипт 0@ > 0 jf @Noname_1 0@ += 76 //находим адрес переменной (0@ += 60 - адрес нулевой переменной-0@ первого скрипта, 0@ += 64 - адрес первой переменной-1@ и т.д.) 0A8D: 0@ = read_memory 0@ size 4 virtual_protect 0 // получаем значение этой переменной
в примере получена переменная 4@ первого скрипта в переменную 0@ второго скрипта
Last edited by mfisto (14-10-2009 16:44)
I know everything and nothing...
Offline
Вылет. Напишите мне, пожалуйста, пример двух скриптов. Чтобы я их как шаблон использовал.
Offline
ну там же всё написано, берёшь в одном скрипте значение переменной делаешь одну из 1000 ( :wow: ) клео переменных, в другом скрипте её читаешь и всё :-/
100 постов - 27 августа;
Offline
используй лёгкие конструкции
100 постов - 27 августа;
Offline
Offline
ещё вопросег.....не могу понять
=====================================
объява массивов
var $OBJECT : Array 9999 of Object $OBJ_ID : Array 9999 of Integer $OBJ_X : Array 9999 of Float $OBJ_Y : Array 9999 of Float $OBJ_Z : Array 9999 of Float $OBJ_XR : Array 9999 of Float $OBJ_YR : Array 9999 of Float $OBJ_ZR : Array 9999 of Float $OBJ_COL : Array 9999 of Integer $OBJ_LOCK : Array 9999 of Integer $OBJ_INT : Array 9999 of Integer $OBJ_GOD : Array 9999 of Integer end
=====================================
запоминаю массив объектов в файло
:save 0A9A: 0@ = openfile "CLEO\SAMB_object.map" mode 0x6277 wait 200 0A9E: writefile 0@ size 2 from $OBJCOUNT for 1@ = 1 to $OBJCOUNT 0A9E: writefile 0@ size 2 from $OBJ_ID[1@] 0A9E: writefile 0@ size 4 from $OBJ_X[1@] 0A9E: writefile 0@ size 4 from $OBJ_Y[1@] 0A9E: writefile 0@ size 4 from $OBJ_Z[1@] 0A9E: writefile 0@ size 2 from $OBJ_INT[1@] 0A9E: writefile 0@ size 4 from $OBJ_XR[1@] 0A9E: writefile 0@ size 4 from $OBJ_YR[1@] 0A9E: writefile 0@ size 4 from $OBJ_ZR[1@] 0A9E: writefile 0@ size 2 from $OBJ_COL[1@] 0A9E: writefile 0@ size 2 from $OBJ_LOCK[1@] 0A9E: writefile 0@ size 2 from $OBJ_GOD[1@] end wait 200 0A9B: closefile 0@ end_thread
=====================================
пытаюсь восстановить всё это при следующей загрузке
:launch if 0AAB: file_exists "CLEO\SAMB_object.map" then 0A9A: 0@ = openfile "CLEO\SAMB_object.map" mode 0x6272 wait 200 0A9D: readfile 0@ size 2 to 1@ if 002C: 1@ > $LIMIT then 03E5: show_text_box 'gsmblb' else for $OBJCOUNT = 1 to 1@ 0A9D: readfile 0@ size 2 to $OBJ_ID[$OBJCOUNT] 0A9D: readfile 0@ size 4 to $OBJ_X[$OBJCOUNT] 0A9D: readfile 0@ size 4 to $OBJ_Y[$OBJCOUNT] 0A9D: readfile 0@ size 4 to $OBJ_Z[$OBJCOUNT] 0A9D: readfile 0@ size 2 to $OBJ_INT[$OBJCOUNT] 0A9D: readfile 0@ size 4 to $OBJ_XR[$OBJCOUNT] 0A9D: readfile 0@ size 4 to $OBJ_YR[$OBJCOUNT] 0A9D: readfile 0@ size 4 to $OBJ_ZR[$OBJCOUNT] 0A9D: readfile 0@ size 2 to $OBJ_COL[$OBJCOUNT] 0A9D: readfile 0@ size 2 to $OBJ_LOCK[$OBJCOUNT] 0A9D: readfile 0@ size 2 to $OBJ_GOD[$OBJCOUNT] model.Load($OBJ_ID[$OBJCOUNT]) while not model.Available($OBJ_ID[$OBJCOUNT]) wait 0 end object.Create($OBJECT[$OBJCOUNT],$OBJ_ID[$OBJCOUNT],$OBJ_X[$OBJCOUNT],$OBJ_Y[$OBJCOUNT],$OBJ_Z[$OBJCOUNT]) model.Destroy($OBJ_ID[$OBJCOUNT]) 0566: link_object $OBJECT[$OBJCOUNT] to_interior $OBJ_INT[$OBJCOUNT] 0453: set_object $OBJECT[$OBJCOUNT] XY_rotation $OBJ_XR[$OBJCOUNT] $OBJ_YR[$OBJCOUNT] angle $OBJ_ZR[$OBJCOUNT] if $OBJ_COL[$OBJCOUNT] == 1 then object.CollisionDetection($OBJECT[$OBJCOUNT],True) else object.CollisionDetection($OBJECT[$OBJCOUNT],False) end if $OBJ_LOCK[$OBJCOUNT] == 1 then 0392: make_object $OBJECT[$OBJCOUNT] moveable 1 else 0392: make_object $OBJECT[$OBJCOUNT] moveable 0 end if $OBJ_GOD[$OBJCOUNT] == 1 then object.SetImmunities($OBJECT[$OBJCOUNT],True,True,True,True,True) else object.SetImmunities($OBJECT[$OBJCOUNT],False,False,False,False,False) end end end wait 200 0A9B: closefile 0@ end end_thread
создаётся только последний объект, и только если их было создано больше 1!!!! почему?:mad:
Last edited by 3Doomer (16-10-2009 19:43)
GIMS developer
Offline
ищи через яндекс
100 постов - 27 августа;
Offline
На странице поиска выберите "Show results as Posts"
Offline
хорошо...
var $OBJ_ID : Array 9999 of Integer end ... ... 0AB1: call_scm_func @NameByID 1 $OBJ_ID[$IDTABSTART] $OBJ_IDTEXT 045A: draw_text_1number 11@ 12@ GXT 'gsmbmi' number $OBJ_IDTEXT ... ... :NameByID 0@ *= 4 0@ += 0xA9B0C8 0A8D: 0@ = read_memory 0@ size 4 virtual_protect 0 0@ += 0x32 0AA8: call_function_method 0x6A0050 struct 0xC1B340 num_params 1 pop 0 0@ 0@ 0AB2: ret 1 0@
в $OBJ_ID[$IDTABSTART] число 966(ИД модели)
что-то не так? я поделил на ноль?:D...почему выводится многозначное число?:lol:
Last edited by 3Doomer (16-10-2009 19:37)
GIMS developer
Offline
Здорова! Подскажите, как измерить расстояние между актером 1@ и 2@ ?
Offline
Как из main.scm удалить ТОЛЬКО МИССИИ (без под-миссий, мини-игр, экстернал скриптов и т.д.)?
Может ссылку на уже готовый файл дадите или поможете советом?
Помогите пожалуйста! Очень нужно.
Offline
Как из main.scm удалить ТОЛЬКО МИССИИ (без под-миссий, мини-игр, экстернал скриптов и т.д.)?
Может ссылку на уже готовый файл дадите или поможете советом?
Помогите пожалуйста! Очень нужно.
Посмотри на сайте ZAZ. Кажется то.
Вопрос: в чем могут быть причины такого явления - запускаю старт новой игры (при этом установлена клео и пара скриптов), прохожу несколько миссий, затем сохраняю игру. При попытке запустить это сохранение игра вылетает (если удалить сохранение из папки cleo saves, то не вылетает).
Offline
У меня такое бывало, если сохраняться при не завершившим работу скрипте. Точно сказать не могу, но вроде это скрипт, использующий глобальные переменные ($PLAYER_ACTOR например). Или может вылетать если ты загружаешься во время игрового процесса (то-есть, вот ты играешь-играешь, а потом вышел в меню и начинаешь загружаться). У меня например был баг, что когда тестишь скрипт, потом выходишь в меню и при запуске новой игры, саня вылетает. Это зависит от скриптов, которые у тебя установлены.
Специально для тех, кто не умеет читать по английски. Мой ник читается как "ГИР"!!!
Народная мудрость:
Прежде чем задавать вопросы,ПОЧИТАЙ СПРАВКУ!!!!
Offline
CraZZZy-GameRRR wrote:Как из main.scm удалить ТОЛЬКО МИССИИ (без под-миссий, мини-игр, экстернал скриптов и т.д.)?
Может ссылку на уже готовый файл дадите или поможете советом?
Помогите пожалуйста! Очень нужно.Посмотри на сайте ZAZ. Кажется то.
Спасибо!
Offline
Как сделать так, чтобы актер, либо игрок, заорал, как будто он горит или падает с большой высоты?
Offline
используй опкоды 09d5, 09d6.
Offline
Спасибо. А кто-нибудь может предложить какую-нибудь прогу, что-ли, чтобы прослушать звуки, или дайте номера звука всех видов криков.
Далее. Создаю актера в случайных координатах, поэтому бывает так, что он оказывается под землей. напишите пожалуйста код, чтобы всегда быть на земле. Типо если вдруг я в воздухе, то сразу оказываюсь на земле, которая подо мной.
Offline