You are not logged in.
Для случайного перехода на какую-либо метку существуют таблицы переходов (СБ Справка - Статьи - опытным пользователям - таблицы переходов). Пример:
0209: 0@ = random_int_in_ranges 0 2 0871: init_jump_table 0@ total_jumps 2 0 @EXIT jumps 0 @1 1 @2 -1 @EXIT -1 @EXIT -1 @EXIT -1 @EXIT -1 @EXIT :0 {.........} :1 {.........} :EXIT
Last edited by Den_spb (30-09-2009 12:23)
Offline
009A: 3@ = create_actor_pedtype 4 model #MALE01 at 1@ 2@ $z
И вот тут координаты 1@ 2@ $z дают педу знать, что создаваться надо именно в той зоне в любом месте? Что-то я не уверен, что создаваться он будет каждый раз в разных местах. И почему последняя переменная глобальная? Или я должен вместо всего этого что-то подставить?
Offline
Offline
Q: Почему в CLEO-скриптах нельзя использовать глобальные переменные? Что тогда использовать?
A: http://sannybuilder.com/forums/viewtopi … 3747#p3747
Last edited by Den_spb (02-10-2009 14:44)
Offline
Здорова всем. Почему скрипт, который выложил Seemann, вылетает? Я его вставляю полностью к себе. Скрипт для создания своих gxt. Тут. Второй пост.
Offline
Здорова всем. Почему скрипт, который выложил Seemann, вылетает? Я его вставляю полностью к себе. Скрипт для создания своих gxt. Тут. Второй пост.
Телепаты сейчас заняты, отвечу я.
Значит ты не правильно вставляешь, потому что код рабочий. Ты бы хоть выложил код своего скрипта, который не работает.
Last edited by flashTrash (06-10-2009 08:16)
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--------------- 0000: NOP // ---------------------------------------------------------------------- // change GXT Entries // ---------------------------------------------------------------------- :ChangeGXTEntries alloc($_param1, 76) alloc($_asmproc, 77) alloc($_param2, 78) 1@ = @_GXTNewString_1 2@ = @_GXTNewString_2 3@ = @_GXTNewString_3 4@ = @_GXTNewString_4 5@ = @_GXTNewString_5 6@ = @_GXTNewString_6 7@ = @_GXTNewString_7 8@ = @_GXTNewString_8 9@ = @_GXTNewString_9 10@ = @_GXTNewString_10 11@ = @_GXTNewString_11 0@ = -429863 31@ = 1 while 31@ < 24 // strings*2 // ------------------------------- // FIND GXT ENTRY // ------------------------------- &0(0@,1i) = 0xA49960 &0(0@,1i) += @_GetGxtStringPointer $_asmproc = 0x6A0050 // char* GetGxtString $_param1 = 0xA49958 005E: $_param1 += 1@(31@,33i) // char* GXTEntry 0572: run_asm_inject true // ------------------------------- // CHANGE GXT STRING // ------------------------------- dec(31@) $_param1 = 0xA49964 005E: $_param1 += 1@(31@,33i) // char* Source, new string &0(0@,1i) = 0xA49960 &0(0@,1i) += @_CopyString $_asmproc = 0x718660 // int CopyString 0572: run_asm_inject true inc(31@,2) end return // ASM injectors // ------------------------------- // .text:006A0050 ; char *__cdecl GetGxtString(char *GXT_Entry) :_GetGxtStringPointer hex FF 35 909AA400 // push dword ptr [0xA49960+$_param1*4] B9 40B3C100 // mov ecx, @aAmericanGxt FF 15 949AA400 // call dword ptr [0xA49960+$_asmproc*4] A3 989AA400 // mov [$_param2], eax C3 // return end // .text:00718660 ; int __cdecl CopyString(char *Destination,char *Source) :_CopyString hex FF 35 909AA400 // push dword ptr [0xA49960+$_param1*4] FF 35 989AA400 // push dword ptr [0xA49960+$_param2*4] FF 15 949AA400 // call dword ptr [0xA49960+$_asmproc*4] 83 C4 08 // add esp, 8 C3 // return end // Compiled Strings Pool (null-terminated) // ------------------------------- :_GXTNewString_1 0900: "RABOTAY_SKOTINA" 0900: 'FED_DFL' :_GXTNewString_2 0900: "X: ~1~.~1~" 0900: 'FED_DLS' :_GXTNewString_3 0900: "Y: ~1~.~1~" 0900: 'FED_DSR' :_GXTNewString_4 0900: "Z: ~1~.~1~" 0900: 'FEC_TGD' :_GXTNewString_5 0900: "Last eventID: ~1~" 0900: 'FED_RID' :_GXTNewString_6 0900: "Targeted ped:" 0900: 'FED_SCP' :_GXTNewString_7 0900: "<no target>" 0900: 'FED_SPR' :_GXTNewString_8 0900: "Health: ~1~" 0900: 'DEBUGT1' :_GXTNewString_9 0900: "Model: ~1~" 0900: 'DEBW0' :_GXTNewString_10 0900: "Traffic cars: ~1~" 0900: 'DEBW1' :_GXTNewString_11 0900: "Car model: ~1~" 0900: 'DEBW3' // ------------------------------- :FAKE wait 0 if and not Actor.Driving($PLAYER_ACTOR) 0AB0: key_pressed 17 jf @FAKE 00BC: show_text_highpriority GXT 'FED_DFL' time 1000 flag 1 // њ¦-koљ ak¦њўњpoўa® jump @FAKE
Offline
2GTASA,
в цикле while число (31@ < 24), оно равно числу элементов массива * 2
У тебя строк 11, соответственно 24 замени на 22.
Offline
Сделал. Всеравно вылет на том же месте (как только захожу в игру).
Offline
Форумчане! Можно-ли изменить управление через клео? Просто мне нужно, что бы, например, тачка газовала, когда на геймпаде наклоняешь правый стик вперед, и тормозила, когда наклоняешь назад. Ибо через меню так настроить нельзя. Там не распознаются оси.
Специально для тех, кто не умеет читать по английски. Мой ник читается как "ГИР"!!!
Народная мудрость:
Прежде чем задавать вопросы,ПОЧИТАЙ СПРАВКУ!!!!
Offline
Про это я знаю. Но мне нужно, что бы при запуске игры управление менялось, на нужное мне. А это просто проверка на отклонение стика.
P.S.: А в Сане только 4 оси? Просто у меня геймпад от ящика, поэтому не плохо поэкспериментировать и с осью Z.
Специально для тех, кто не умеет читать по английски. Мой ник читается как "ГИР"!!!
Народная мудрость:
Прежде чем задавать вопросы,ПОЧИТАЙ СПРАВКУ!!!!
Offline
4 оси это даже много.....у руля например 2
у опкода есть первый параметр - номер джойстика(в моём примере = 0). скорее всего, у боксовского контроллера несколько объединены
Last edited by 3Doomer (10-10-2009 19:51)
GIMS developer
Offline
Здравствуйте, ребята! Каким образом можно изменить стиль бега для актера? Этот стиль еще влияет на скорость бега. Например, пешеходы бегут намного медленнее игрока из-за своего стиля.
Offline
4 оси это даже много.....у руля например 2
у опкода есть первый параметр - номер джойстика(в моём примере = 0). скорее всего, у боксовского контроллера несколько объединены
Как много? Два стика, у каждого по две оси. А у боксовского геймпада еще и ось Z (два тригера. Один отклоняет в плюс, другой в минус).
Но вопрос то не в этом. Повторяю:
Можно-ли изменить управление через клео?
Специально для тех, кто не умеет читать по английски. Мой ник читается как "ГИР"!!!
Народная мудрость:
Прежде чем задавать вопросы,ПОЧИТАЙ СПРАВКУ!!!!
Offline
Когда первый раз читаю файл нижеуказанным скриптом всё нормально. При следующих попытках чтения в переменную 20@ записывается какая-то чепуха.
0A99: chdir 0 if 0A9A: 21@ = openfile "CLEO\Settings.ini" mode 0x72 jf @THREAD_3 0A9D: readfile 21@ size 3 to 20@ 0A9B: closefile 21@
Может, я что не так делаю?
Last edited by CraZZZy-GameRRR (12-10-2009 20:35)
Offline
Но он же после чтения закрывается опкодом 0A9B: closefile 21@, а потом снова проверяется на существование и открывается с помощью проверки if 0A9A: 21@ = openfile "CLEO\Settings.ini" mode 0x72?
Offline
Скажите пожалуйста, а лучше напишите шаблон, как сделать, чтобы можно было задавать клавишу активации с внешнего файла? Например, 0AB0: (кнопка). А номер кнопки записан во внешнем файле.
Или что-нибудь подобное с числовыми значениями, кроме номеров кнопок. Например, значения переменных и т.д.
Вопрос 2. Можно ли сделать так, чтобы в одном скрипте (.cs файле) задавалось значение переменной, а в другом скрипте это значение использовалось?
Пример:
Скрипт 1. Скрипт 2.
... ...
1@ = 2 Car.SetSpeedInstantly(24@, 1@)
... ...
Last edited by GTASA (13-10-2009 10:18)
Offline
0AB3: var 0 = 10 0AB3 устанавливает значение глобальной CLEO-переменной. Эти переменные могут использоваться для обмена данными между CLEO-потоками, а также между CLEO и main.scm. Общее число таких переменных равно 1000. Их значения сохраняются в CLEO-сейве. Такие переменные могут использоваться и в самом main.scm как альтернатива простым глобальным переменным. Параметры: 1 – ID глобальной переменной. Должно быть в интервале 0..999. 2 – значение глобальной переменной (любое число, целое или дробное). -------------------------------------------------------------------------------- 0AB4: 0@= var 0 0AB4 записывает в переменную значение глобальной CLEO-переменной. В данном примере 0@ будет равно 10 (см. опкод 0AB3). Параметры: 1 – переменная, в которую будет записано значение глобальной CLEO-переменной. 2 – ID глобальной переменной. Должно быть в интервале 0..999.
читай справку внимательнее
100 постов - 27 августа;
Offline
И потом как скрипту "сказать", типо ищи значение переменной в соседнем скрипте.cs??
Offline