#2676 26-10-2010 18:32

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

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

BoPoH wrote:

они не ставят jf на начало, а в той метке куда стоит jf (@TRAINSL_115 в нашем случае) стоит jump на первую метку и так все jf-ы которые должны попасть на начало например...почему они делали именно так?)))

издержки компиляции высокоуровневых конструкций, исходник вообще без меток, if, jump и jf был grin

от задержки в циклах избавиться НЕЛЬЗЯ

Last edited by 3Doomer (26-10-2010 18:35)


GIMS developer

Offline

#2677 26-10-2010 19:06

Sergey81
Registered: 19-12-2008
Posts: 654

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

А почему кстати

{$CLEO}
0000:
while true
wait 0
wait 1
end

декомпилируется как

0000: NOP 

:Noname_2
wait 0 
wait 1 
jump @Noname_2

а не в первоначальном виде? Так сделано по каким то техническим причинам или что?

Last edited by Sergey81 (26-10-2010 19:07)

Offline

#2678 27-10-2010 12:21

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

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

СБ плоховато понимает ВУ конструкции при декомпиляции...это в опциях где-то включается


GIMS developer

Offline

#2679 27-10-2010 12:29

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

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

а не в первоначальном виде? Так сделано по каким то техническим причинам или что?

СБ не может знать, как выглядел код в первоначальном виде. Конструкции существуют для удобства пользователя, при компиляции они заменяются метками (т.е. в cs-файле конструкций нет, есть только метки и jump-ы, в чём легко убедиться, открыв любой cs-файл hex-редактором).

Last edited by Den_spb (27-10-2010 12:35)

Offline

#2680 27-10-2010 13:39

Sergey81
Registered: 19-12-2008
Posts: 654

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

Вспомнил, давно хотел узнать, в папке cleo_examples, возьмём например showsavescreen.txt, рядом с ним лежит скомпилированный .cs, который весит 31 байт. Если же я его скомпилирую сам сейчас, выходной файл будет весить 17,1 КБ. Почему такое различие?

Offline

#2681 27-10-2010 14:02

Sw[ee]t
From: Нижний Новгород
Registered: 16-02-2009
Posts: 686
Website

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

Издержки от компиляции под старой версией? Быть может в начале создаётся некий "мусор" санника smile

Offline

#2682 30-10-2010 11:05

DK22Pac
From: Ukraine
Registered: 26-03-2010
Posts: 447
Website

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

Здравствуйте.
Можно ли узнать координаты размещения на экране треугольника прицеливания (который в режиме джойпада)?
trianglen.jpg


Plugin-SDK https://github.com/DK22Pac/plugin-sdk
Discord-сервер по plugin-sdk и программированию в GTA
RU https://discord.gg/QEesDGb
ENG https://discord.gg/zaVqFQv

Offline

#2683 30-10-2010 13:15

Seemann
Registered: 07-08-2006
Posts: 2,156

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

@Sergey81 - отключи опцию "писать доп инфу". санник записывает в файл имена переменных и другую инфу, для использования при декомпиляции.

Offline

#2684 30-10-2010 21:21

BoPoH
From: Каушаны
Registered: 21-02-2009
Posts: 77

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

Мммм...у меня всё тот же вопрос, как избавиться от wait 0???? просто очень очень очень очень надо!!)))
И ещё, я уже давно заметил, скриптовый и графический движки не синхронны...короче говоря, если мне например нужно воспроизвести анимацию через какое-то время, я ставлю wait с нужным временем...а если у меня FPS около 10 например...анимация воспроизведётся через то время которое я задал, но в игре она воспроизведётся раньше чем надо...как можно синхронизировать их? короче говоря, что использовать вместо wait в таких случаях?...пробовал опкод 01BD: 10@ = current_time_in_ms, но он тоже не зависит от графического движка (я заметил что игровое время тоже идёт независимо от графического движка)...что делать?)) Ещё заметил что когда ставишь таймер, он идёт в ногу с графическим движком...мне бы как нибудь его использовать, только чтобы сам таймер не отображался)))

Last edited by BoPoH (30-10-2010 21:48)


userbar.png

Offline

#2685 30-10-2010 22:19

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

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

Мммм...у меня всё тот же вопрос, как избавиться от wait 0???? просто очень очень очень очень надо!!)))

Удалить из циклически работающего скрипта все wait-ы нельзя (минимум 1 wait должен быть), да и не нужно это.

Offline

#2686 31-10-2010 08:59

BoPoH
From: Каушаны
Registered: 21-02-2009
Posts: 77

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

ну ладно, но мне нужно сделать что-то типа таймера (опкод 014E), только без отображения цифр на экране...главное чтобы он зависел от FPS...как я заметил, этот таймер зависит, но не совсем...всё равно немного не совпадает...

Last edited by BoPoH (31-10-2010 11:11)


userbar.png

Offline

#2687 31-10-2010 12:39

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

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

я ставлю wait с нужным временем...а если у меня FPS около 10 например...анимация воспроизведётся через то время которое я задал, но в игре она воспроизведётся раньше чем надо

Не знаю, как ты там отсчитываешь время, но могу точно сказать, что реальная задержка будет всегда превышать значение, указанное в опкоде wait, на десятки миллисекунд (время, необходимое для отработки остальных скриптов и нескриптовых процессов игры).

Last edited by Den_spb (31-10-2010 12:40)

Offline

#2688 31-10-2010 19:15

BoPoH
From: Каушаны
Registered: 21-02-2009
Posts: 77

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

я в курсе что она превышает указанное значение, дело не в этом...как же объяснить понятнее...тут только показывать надо)) короче говоря, мне это нужно для моего мода...паркур мода...чтобы можно было перепрыгивать сальтами через заборы и не только, я придаю движение игроку опкодом 083С, а анимацию обездвиживаю...но проблема в том, что у меня анимация начинается с замаха, движение которого я оставляю, и убираю когда он должен подлетать...подлетание обеспечиваю тем самым опкодом (083С), через время замаха...время замаха подсчитать несложно, но если поставить wait с тем временем, то очень часто не попадает вовремя, а если фпс опустится скажем до 15, то он половину замаха сделает и подлетит, короче говоря опкод 083C сработает раньше чем надо...ну вобщем если непонятно, я могу скинуть примерчик))


userbar.png

Offline

#2689 31-10-2010 19:35

Deniska
Registered: 23-08-2009
Posts: 18

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

BoPoH wrote:

я в курсе что она превышает указанное значение, дело не в этом...как же объяснить понятнее...тут только показывать надо)) короче говоря, мне это нужно для моего мода...паркур мода...чтобы можно было перепрыгивать сальтами через заборы и не только, я придаю движение игроку опкодом 083С, а анимацию обездвиживаю...но проблема в том, что у меня анимация начинается с замаха, движение которого я оставляю, и убираю когда он должен подлетать...подлетание обеспечиваю тем самым опкодом (083С), через время замаха...время замаха подсчитать несложно, но если поставить wait с тем временем, то очень часто не попадает вовремя, а если фпс опустится скажем до 15, то он половину замаха сделает и подлетит, короче говоря опкод 083C сработает раньше чем надо...ну вобщем если непонятно, я могу скинуть примерчик))

А зачем тут время подсчитывать = жди до конца анимации замаха.

// тут начинаешь аниму замаха

while player.Defined($PLAYER_CHAR)
    wait 0
    if
     actor.Animation($PLAYER_ACTOR) == "ANIMA"
    jf break
    0613: 26@ = actor $PLAYER_ACTOR animation "ANIMA" time // от 0.0 до 1.0
    if
     not 26@ == 1.0 //  или можно например not 26@ > 0.98
    jf break
end

Offline

#2690 31-10-2010 20:43

BoPoH
From: Каушаны
Registered: 21-02-2009
Posts: 77

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

можно и так...тогда придётся делить анимации на замах и саму аниму...ну щас попробую...)
да кстати, анимации перелазинья через забор и анимации залезания воспроизводятся, примерно так:

0812: AS_actor $PLAYER_ACTOR perform_animation "CLIMB_PULL" IFP_file "PED" 4.0 loopA 0 lockX 0 lockY 0 lockF 0 time -1 // versionB

особое внимание стоит уделить параметрам LockX  и LockY, они отвечают за перемещение центра игрока (ну или камеры) вместе с анимацией...если они равны 0, то анимация будет играть, а камера оставаться на месте, однако в игре камера как-то передвигается вместе с перелезанием (заметно что она передвигается искусственно, не вместе с анимацией, особенно если эту анимацию заменить какой-то другой)...вопрос: как сделать тоже самое с камерой))??

Last edited by BoPoH (01-11-2010 07:40)


userbar.png

Offline

#2691 03-11-2010 10:20

BoPoH
From: Каушаны
Registered: 21-02-2009
Posts: 77

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

что, никто не знает???))) тогда как сделать чтобы камера смотрела в нужную мне точку, после вот этого опкода:

092F: lock_camera_target_point 1

Last edited by BoPoH (03-11-2010 10:24)


userbar.png

Offline

#2692 03-11-2010 11:23

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

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

сначала направь, потом lock уже


GIMS developer

Offline

#2693 04-11-2010 17:35

BoPoH
From: Каушаны
Registered: 21-02-2009
Posts: 77

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

спс, попробую....


userbar.png

Offline

#2694 06-11-2010 00:42

Sergey81
Registered: 19-12-2008
Posts: 654

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

Опкод 08A2: set_hydra 146@(48@,3i) attack_with_rockets_car_of_player $PLAYER_CHAR radius 30.0 вобще работает? Потому что у меня не получилось заставить все созданные гидры хоть раз выстрелить ракетами в игрока(тоже в гидре). Можно ли хотя бы вручную создавать ракеты и направлять их на транспортное средство игрока?

Offline

#2695 06-11-2010 01:20

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

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

Посмотри скрипт "воздушная война" (находится тут: http://www.cleogta.com.ua/load/7-2-0-124 )

Можно ли хотя бы вручную создавать ракеты и направлять их на транспортное средство игрока?

Можно, почему нет. Но в случае с худрой легче воспользоваться спец. командами.

Offline

#2696 06-11-2010 01:24

Sergey81
Registered: 19-12-2008
Posts: 654

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

Den_spb wrote:

Посмотри скрипт "воздушная война" (находится тут: http://www.cleogta.com.ua/load/7-2-0-124 )

Можно ли хотя бы вручную создавать ракеты и направлять их на транспортное средство игрока?

Можно, почему нет. Но в случае с худрой легче воспользоваться спец. командами.

А как? Гидры мне не принципиальны, ракеты главное. Я ещё глянул в базу листенера и попробовал так:

0811: $TEMPVAR_ACTOR_CAR = actor $PLAYER_ACTOR car // versionC 
08A2: set_hydra 1@ attack_with_rockets_car_of_player $TEMPVAR_ACTOR_CAR radius 300.0

Вот тут действительно они стреляют ракетами, правда с небольшой дистанции. Радиус 300000.0 вроде не даёт им стрелять с большей дистанции.
ЗЫ. У меня ещё есть такой нехороший баг, когда при стрельбе гидрой ракета практически сразу исчезает после появления. Баг проявляется периодически, т.е. какое то время может быть всё нормально, какое то время нет. Тоже самое происходит с метательным оружием, гранатами, коктейлями... Так и не разобрался что вызывает этот баг. Для гидры он фиксится missile.cs от Ryosuke, но только для игрока, но как я заметил другие гидры подвержены такому эффекту, хотя один раз меня подбили с близкого расстояния.

Last edited by Sergey81 (06-11-2010 01:37)

Offline

#2697 06-11-2010 01:31

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

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

А как? Гидры мне не принципиальны, ракеты главное. Я ещё глянул в базу листенера и попробовал так:

Создаёшь объект-ракету, цепляешь к транспорту. При выстреле отсоединяешь ракету и придаёшь ей ускорение в нужном направлении. Далее надо проверять - если объект столкнулся с чем-то, то в этой точке надо создать взрыв. Наглядный пример - скрипт "Катюша" (можно найти на http://scriptsforgta.net.ru/)

0811: $TEMPVAR_ACTOR_CAR = actor $PLAYER_ACTOR car // versionC

Лучше использовать 03C0.

Last edited by Den_spb (06-11-2010 01:35)

Offline

#2698 06-11-2010 03:06

Sergey81
Registered: 19-12-2008
Posts: 654

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

А может можно как то задействовать существующие зоны, где создаются ракеты? Например увеличить дистанцию, чтоб ракета создавалась даже если игрок не рядом с этой зоной или что-то подобное сделать?(или хотя бы куда глядеть, чтоб посмотреть принцип работы таких зон)

Offline

#2699 06-11-2010 11:20

BoPoH
From: Каушаны
Registered: 21-02-2009
Posts: 77

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

реально ли как-то отключить клавишу спринта, наподобе опкодов:

0901: enable_player $PLAYER_CHAR jump_key 0
07CC: player $PLAYER_CHAR disable_key_15 0

userbar.png

Offline

#2700 06-11-2010 20:26

Sergey81
Registered: 19-12-2008
Posts: 654

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

BoPoH wrote:

реально ли как-то отключить клавишу спринта, наподобе опкодов:

0901: enable_player $PLAYER_CHAR jump_key 0
07CC: player $PLAYER_CHAR disable_key_15 0

По идее можно через память менять назначение клавиши спринта, сначала ставим её на другую, потом возвращаем исходную.
--
С ракетами разобрался, там не зоны оказывается, а объект создаёт их. Просто помещая его в нужное место он будет стрелять.

00A0: store_actor $PLAYER_ACTOR position_to $TEMPVAR_FLOAT_1 $TEMPVAR_FLOAT_2 $TEMPVAR_FLOAT_3 
0107: $2706 = create_object #mil_samsite at $TEMPVAR_FLOAT_1 $TEMPVAR_FLOAT_2 $TEMPVAR_FLOAT_3
0750: set_object $2706 visibility 0 
0382: set_object $2706 collision_detection 0

Last edited by Sergey81 (06-11-2010 20:38)

Offline

Board footer

Powered by FluxBB