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