#1501 30-09-2009 11:52

3Doomer
From: КаZан
Registered: 14-05-2008
Posts: 659
Website

Re: Один вопрос

jf написать гораздо быстрее, чем else_jump...........................


GIMS developer

Offline

#1502 30-09-2009 12:20

Den_spb
From: Ленинград
Registered: 23-11-2008
Posts: 941
Website

Re: Один вопрос

Для случайного перехода на какую-либо метку существуют таблицы переходов (СБ Справка - Статьи - опытным пользователям - таблицы переходов). Пример:

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

#1503 30-09-2009 12:38

GTASA
Registered: 13-09-2008
Posts: 476

Re: Один вопрос

009A: 3@ = create_actor_pedtype 4 model #MALE01 at 1@ 2@ $z

И вот тут координаты 1@ 2@ $z дают педу знать, что создаваться надо именно в той зоне в любом месте? Что-то я не уверен, что создаваться он будет каждый раз в разных местах. И почему последняя переменная глобальная? Или я должен вместо всего этого что-то подставить?

Offline

#1504 30-09-2009 12:46

Den_spb
From: Ленинград
Registered: 23-11-2008
Posts: 941
Website

Re: Один вопрос

Каждая из трех координат выбирается случайным образом - в указанных тобой пределах. Перечитай внимательнее пост - всё очевидно.
Во-вторых: если пишешь код для клео, то естественно подставляешь локальную переменную (3@)

Offline

#1505 30-09-2009 12:46

3Doomer
From: КаZан
Registered: 14-05-2008
Posts: 659
Website

Re: Один вопрос

вообще-то, это точные координаты создания......и переменные можно юзать любые

Last edited by 3Doomer (30-09-2009 12:47)


GIMS developer

Offline

#1506 30-09-2009 12:49

Den_spb
From: Ленинград
Registered: 23-11-2008
Posts: 941
Website

Re: Один вопрос

Q: Почему в CLEO-скриптах нельзя использовать глобальные переменные? Что тогда использовать?
A: http://sannybuilder.com/forums/viewtopi … 3747#p3747

Last edited by Den_spb (02-10-2009 14:44)

Offline

#1507 06-10-2009 07:27

GTASA
Registered: 13-09-2008
Posts: 476

Re: Один вопрос

Здорова всем. Почему скрипт, который выложил Seemann, вылетает? Я его вставляю полностью к себе. Скрипт для создания своих gxt. Тут. Второй пост.

Offline

#1508 06-10-2009 08:15

flashTrash
From: Н.Новгород
Registered: 21-02-2007
Posts: 260
Website

Re: Один вопрос

GTASA wrote:

Здорова всем. Почему скрипт, который выложил Seemann, вылетает? Я его вставляю полностью к себе. Скрипт для создания своих gxt. Тут. Второй пост.

Телепаты сейчас заняты, отвечу я.

Значит ты не правильно вставляешь, потому что код рабочий. Ты бы хоть выложил код своего скрипта, который не работает.

Last edited by flashTrash (06-10-2009 08:16)

Offline

#1509 07-10-2009 06:18

GTASA
Registered: 13-09-2008
Posts: 476

Re: Один вопрос

Вот так я поместил скрипт, специально не менял ничего почти.

// 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

#1510 07-10-2009 14:41

flashTrash
From: Н.Новгород
Registered: 21-02-2007
Posts: 260
Website

Re: Один вопрос

2GTASA,

в цикле while число (31@ < 24), оно равно числу элементов массива * 2

У тебя строк 11, соответственно 24 замени на 22.

Offline

#1511 08-10-2009 08:03

GTASA
Registered: 13-09-2008
Posts: 476

Re: Один вопрос

Сделал. Всеравно вылет на том же месте (как только захожу в игру).

Offline

#1512 10-10-2009 11:26

Gyr
From: Серпухов
Registered: 03-02-2009
Posts: 246
Website

Re: Один вопрос

Форумчане! Можно-ли изменить управление через клео? Просто мне нужно, что бы, например, тачка газовала, когда на геймпаде наклоняешь правый стик вперед, и тормозила, когда наклоняешь назад. Ибо через меню так настроить нельзя. Там не распознаются оси.


Специально для тех, кто не умеет читать по английски. Мой ник читается как "ГИР"!!!
Народная мудрость:
Прежде чем задавать вопросы,ПОЧИТАЙ СПРАВКУ!!!!

Offline

#1513 10-10-2009 11:38

3Doomer
From: КаZан
Registered: 14-05-2008
Posts: 659
Website

Re: Один вопрос

0494: get_joystick 0 data_to 0@ 1@ 2@ 3@
опкод читает данные по 4 осям, значения от 0 до 255


GIMS developer

Offline

#1514 10-10-2009 18:41

Gyr
From: Серпухов
Registered: 03-02-2009
Posts: 246
Website

Re: Один вопрос

Про это я знаю. Но мне нужно, что бы при запуске игры управление менялось, на нужное мне. А это просто проверка на отклонение стика.
P.S.: А в Сане только 4 оси? Просто у меня геймпад от ящика, поэтому не плохо поэкспериментировать и с осью Z.


Специально для тех, кто не умеет читать по английски. Мой ник читается как "ГИР"!!!
Народная мудрость:
Прежде чем задавать вопросы,ПОЧИТАЙ СПРАВКУ!!!!

Offline

#1515 10-10-2009 19:49

3Doomer
From: КаZан
Registered: 14-05-2008
Posts: 659
Website

Re: Один вопрос

4 оси это даже много.....у руля например 2
у опкода есть первый параметр - номер джойстика(в моём примере = 0). скорее всего, у боксовского контроллера несколько объединены

Last edited by 3Doomer (10-10-2009 19:51)


GIMS developer

Offline

#1516 11-10-2009 05:39

GTASA
Registered: 13-09-2008
Posts: 476

Re: Один вопрос

Здравствуйте, ребята! Каким образом можно изменить стиль бега для актера? Этот стиль еще влияет на скорость бега. Например, пешеходы бегут намного медленнее игрока из-за своего стиля.

Offline

#1517 11-10-2009 08:35

Gyr
From: Серпухов
Registered: 03-02-2009
Posts: 246
Website

Re: Один вопрос

4 оси это даже много.....у руля например 2
у опкода есть первый параметр - номер джойстика(в моём примере = 0). скорее всего, у боксовского контроллера несколько объединены

Как много? Два стика, у каждого по две оси. А у боксовского геймпада еще и ось Z (два тригера. Один отклоняет в плюс, другой в минус).
Но вопрос то не в этом. Повторяю:

Можно-ли изменить управление через клео?


Специально для тех, кто не умеет читать по английски. Мой ник читается как "ГИР"!!!
Народная мудрость:
Прежде чем задавать вопросы,ПОЧИТАЙ СПРАВКУ!!!!

Offline

#1518 11-10-2009 22:40

Den_spb
From: Ленинград
Registered: 23-11-2008
Posts: 941
Website

Re: Один вопрос

Вопрос: как реализуется возможность сохранения игры в любом месте?

Offline

#1519 12-10-2009 06:55

3Doomer
From: КаZан
Registered: 14-05-2008
Posts: 659
Website

Re: Один вопрос

опкодом 03D8


GIMS developer

Offline

#1520 12-10-2009 20:34

CraZZZy-GameRRR
From: Москва
Registered: 11-08-2009
Posts: 97
Website

Re: Один вопрос

Когда первый раз читаю файл нижеуказанным скриптом всё нормально. При следующих попытках чтения в переменную 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

#1521 12-10-2009 20:44

3Doomer
From: КаZан
Registered: 14-05-2008
Posts: 659
Website

Re: Один вопрос

все последующие чтения поризводятся с момента остановки предыдущего, а не с начала файла. файл нужно переоткрыть чтоб с начала читалось


GIMS developer

Offline

#1522 12-10-2009 21:14

CraZZZy-GameRRR
From: Москва
Registered: 11-08-2009
Posts: 97
Website

Re: Один вопрос

Но он же после чтения закрывается опкодом 0A9B: closefile 21@, а потом снова проверяется на существование и открывается с помощью проверки if 0A9A: 21@ = openfile "CLEO\Settings.ini" mode 0x72?

Offline

#1523 13-10-2009 07:25

GTASA
Registered: 13-09-2008
Posts: 476

Re: Один вопрос

Скажите пожалуйста, а лучше напишите шаблон, как сделать, чтобы можно было задавать клавишу активации с внешнего файла? Например, 0AB0: (кнопка). А номер кнопки записан во внешнем файле.

Или что-нибудь подобное с числовыми значениями, кроме номеров кнопок. Например, значения переменных и т.д.



Вопрос 2. Можно ли сделать так, чтобы в одном скрипте (.cs файле) задавалось значение переменной, а в другом скрипте это значение использовалось?

Пример:
Скрипт 1.                                   Скрипт 2.

...                                              ...
1@ = 2                                       Car.SetSpeedInstantly(24@, 1@)
...                                              ...

Last edited by GTASA (13-10-2009 10:18)

Offline

#1524 13-10-2009 11:03

PIT
Registered: 08-09-2008
Posts: 224

Re: Один вопрос

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.

читай справку внимательнее smile


100 постов - 27 августа;

Offline

#1525 13-10-2009 11:47

GTASA
Registered: 13-09-2008
Posts: 476

Re: Один вопрос

И потом как скрипту "сказать", типо ищи значение переменной в соседнем скрипте.cs??

Offline

Board footer

Powered by FluxBB