#301 Re: Вопросы по скриптингу » Один вопрос » 08-08-2010 13:53

Ээээ...
Начнём с того, что такое

 ... r) false

False это результат, если ты хотел сделать проверку на ложность условия, то лучше использую else

if actor.dead($MyCounter) else

только then уже не нужен будет.

#302 Re: Вопросы по скриптингу » Один вопрос » 06-08-2010 14:09

Делаю скрипт для ввода символов с клав-ры. Пока что, без вывода текста на экран, но столкнулся с проблемой.
Вот этот код вылетает:

:CRFND_1
wait 0 ms
if
  0ab0: 0x41 // кнопочко "A"
jf @CRFND_2
if
  not 0@ == 8 // если набрано не более 8-и символов
jf @CRFND_A
0@ += 1
v$btnA = "A"
098B: v$model1 = v$model + v$btnA
v$model = v$model1   
jump @CRFND_1

Мне кажется, что проблема в присвоении v$model1 результат сложения переменных v$model и v$btnA.

#304 Re: Модификации » Перебор путей случайным образом. » 04-08-2010 16:40

Во археолог-то!
Перебор скриптовых путей случайным образом. Для выяснения нужного.

зы. и вообще я забыл про то что такой скрипт делал...

#305 Re: Вопросы по скриптингу » Один вопрос » 01-08-2010 17:40

3Doomer wrote:

не опять, а снова!! все уж давно его поставили, один ты тупишь))

Я уже говорил почему не хочу ставить клео4. Пока в версии не будут отлавлены все баги, то ставить не буду.

#306 Re: Вопросы по скриптингу » Один вопрос » 01-08-2010 07:57

У меня нету таких опкодов...
Опять клео4?!

#307 Re: Вопросы по скриптингу » Один вопрос » 31-07-2010 15:31

Всё что я нашёл это 05AA. Да и то, это не то что нужно.

05AA: 5@s = s$ACTOR_SPEECH_GXT_REFERENCE

#308 Re: Вопросы по скриптингу » Один вопрос » 31-07-2010 10:03

ATTENTION! CLEO3 ONLY!

Допустим, я делаю проверку на нажатие каких-либо клавиш, и если клавиша нажата, то записываю её в переменную (v0@ = "A"). Так вот, допустим нажато несколько клавиш, как можно все получившиеся результаты переменных, объединить и записать в одну единую переменную? Я знаю что на си и дельфи есть функции по объединению строк, но как можно это реализовать на скриптовом уровне. Быть может есть какая-то ф-ция которая этим занимается?

#309 Re: Модификации » [CLEO|REL]Pedz fun! + Carz fun! » 31-07-2010 09:56

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

#310 Re: GTA Modding » Pickups Pool » 29-07-2010 06:45

Have you try to subtract this offset from the pickup? Or get the struct of pickup as object struct?

#311 Re: Работа с памятью, EXE » Колесо » 25-07-2010 15:58

Юзай поиск по форуму, где-то уже писали.

#312 Re: Работа с памятью, EXE » Вопросы по транспорту » 24-07-2010 17:11

Следующие оффесты являются типа Float, как позиции дверей и других частей машины которые могут отвалиться в следствии повреждений. Нам нужно перерасчитать их и установить им позиции, если мы перенесём машину в другое место. Otherwise the car spins uncontrollably:

    * +1828 = Detachables1 Pos X
    * +1832 = Detachables1 Pos Y
    * +1836 = Detachables1 Pos Z
    * +1872 = Detachables2 Pos X
    * +1876 = Detachables2 Pos Y
    * +1880 = Detachables2 Pos Z
    * +1916 = Detachables3 Pos X
    * +1920 = Detachables3 Pos Y
    * +1924 = Detachables3 Pos Z
    * +1960 = Detachables4 Pos X
    * +1964 = Detachables4 Pos Y
    * +1968 = Detachables4 Pos Z

Оффсеты для частей:
* +1828 = CarDetachPosAdr(0)
    * +1872 = CarDetachPosAdr(1)
    * +1916 = CarDetachPosAdr(2)
    * +1960 = CarDetachPosAdr(3)

#313 Re: GTA Modding » Girlfriend Problem » 24-07-2010 16:40

Both in the real and gaming worlds.

LOL

#314 Re: Работа с памятью, EXE » Не получается » 24-07-2010 16:39

Зачем адрес в 10-ричной системе считаешь?

{$CLEO .cs}

//-------------MAIN---------------
thread "GRAVITY"

:GRAVITY_11
wait 0
if and
   Player.Defined($PLAYER_CHAR)
   00E1: key_pressed 0 11
else_jump @GRAVITY_11
0A8D: 2@ = read_memory 0x863984 size 4 virtual_protect 0
2@ += 50.0
wait 2000

:GRAVITY_12
wait 0
if
  00E1: key_pressed 0 11
jf @GRAVITY_12
2@ -= 50.0
jump @GRAVITY_11

#315 Re: Вопросы по скриптингу » Один вопрос » 23-07-2010 05:00

@listener - блин, и столько работы зря. Я уж начал думать как туда всунуть своё чего-нибудь lol.
Спасибо что вовремя остановил!

#316 Re: Вопросы по скриптингу » Один вопрос » 22-07-2010 12:22

Мне просто нужно сделать инжект в эту ф-цию, и "якобы" посадить на сидение игрока, не трогая его при этом. Это можно реализовать?

#317 Re: Вопросы по скриптингу » Один вопрос » 22-07-2010 12:09

Каким образом ты это узнал?

#318 Re: Вопросы по скриптингу » Один вопрос » 22-07-2010 11:02

2) Как управлять всеми сразу? Например дать оружие всем одним кодом.
Или придётся поотдельности, типа так

Вроде можно обратиться просто к переменной, без указания индекса массива. Тогда применится ко всем акторам в массиве.

UPDATE:

По поводу моего вопроса с _vehicleAddPassenger
Я разобрал код (прокомментировал) но никак не пойму, за что отвечают аргументы arg_0 и arg_4.
Полный код:

.text:0064F190     ; =============== S U B R O U T I N E =======================================
.text:0064F190
.text:0064F190
.text:0064F190     _vehicleAddPassenger proc near          ; CODE XREF: _opcode_handler_18+B3Cp
.text:0064F190                                             ; _opcode_handler_04+75Cp
.text:0064F190                                             ; _opcode_handler_10+917p
.text:0064F190                                             ; _opcode_handler_14+190Bp ...
.text:0064F190
.text:0064F190     arg_0           = dword ptr  4 ; аргумент типа dword (4 байта)
.text:0064F190     arg_4           = dword ptr  8 ; аргумент типa dword (8 байт) (?)
.text:0064F190
.text:0064F190 000                 mov     edx, [esp+arg_0] ; пишем в edx адрес esp со смещением в 4 байта
.text:0064F194 000                 mov     cl, [edx+429h] ; пишем в cl адрес edx со смещением в 0x429 байт
.text:0064F19A 000                 or      eax, 0FFFFFFFFh ; либо в eax 0FFFFFFFFh либо false (?)
.text:0064F19D 000                 test    cl, 2 ; если cl равен 2 байта
.text:0064F1A0 000                 jz      short loc_64F1A8 ; если нет - идём на 64F1A8
.text:0064F1A2
.text:0064F1A2     loc_64F1A2:                             ; CODE XREF: _vehicleAddPassenger+48j
.text:0064F1A2 000                 mov     eax, 8 ; пишем в eax 8 байт
.text:0064F1A7 000                 retn ; возвращение на операнд-вызов
.text:0064F1A8     ; --------------------------------------------------------------------------------------------------------
.text:0064F1A8
.text:0064F1A8     loc_64F1A8:                             ; CODE XREF: _vehicleAddPassenger+10j
.text:0064F1A8 000                 mov     ecx, [esp+arg_4] ; пишем в ecx адрес esp со смещением в 8 байт
.text:0064F1AC 000                 sub     ecx, 0 ; вычитаем из ecx нолик
.text:0064F1AF 000                 jz      short loc_64F1BD ; если нет - идём на 64F1BD
.text:0064F1B1 000                 dec     ecx ; если да - уменьшаем ecx на единицу
.text:0064F1B2 000                 jz      short loc_64F1DA ; если опять нет - идём на 64F1DA
.text:0064F1B4 000                 dec     ecx ; уменьшаем ecx на единицу
.text:0064F1B5 000                 jnz     short locret_64F1DF ; если так - идём на 
.text:0064F1B7 000                 mov     eax, 9 ; пишем в eax циферку 9
.text:0064F1BC 000                 retn ; возврат
.text:0064F1BD     ; ---------------------------------------------------------------------------------------------------------
.text:0064F1BD
.text:0064F1BD     loc_64F1BD:                             ; CODE XREF: _vehicleAddPassenger+1Fj
.text:0064F1BD 000                 cmp     dword ptr [edx+590h], 9 ; сравниваем адрес edx (4 байта) со смещением в 0x590 байт с цифрой 9
.text:0064F1C4 000                 jz      short loc_64F1DA ; если нет - идём на 64F1DA
.text:0064F1C6 000                 mov     eax, [edx+384h] ; если да - пишем в eax адрес edx со смещением 0x384 байт
.text:0064F1CC 000                 mov     ecx, [eax+0CCh] ; пишем в ecx адрес eax со смещением в 0x0CC байт
.text:0064F1D2 000                 shr     ecx, 9 ; сдвиг всех битов регистра ecx на 9 разрядов вправо
.text:0064F1D5 000                 test    cl, 1 ; если cl равен одному
.text:0064F1D8 000                 jz      short loc_64F1A2 ; если нет - идём на 64F1A2
.text:0064F1DA
.text:0064F1DA     loc_64F1DA:                             ; CODE XREF: _vehicleAddPassenger+22j
.text:0064F1DA                                             ; _vehicleAddPassenger+34j
.text:0064F1DA 000                 mov     eax, 0Bh ; пишем в eax 0x0B
.text:0064F1DF
.text:0064F1DF     locret_64F1DF:                          ; CODE XREF: _vehicleAddPassenger+25j
.text:0064F1DF 000                 retn ; возврат
.text:0064F1DF     _vehicleAddPassenger endp

#319 Re: Модификации » [CLEO|REL]Pedz fun! + Carz fun! » 21-07-2010 13:46

Если ты про мультивыбор педов, то возможно в след. версии сделаю.

#320 Модификации » [CLEO|REL]Pedz fun! + Carz fun! » 20-07-2010 12:51

Sw[ee]t
Replies: 5

[img align=c]http://sweet-ru.at.ua/pedsfun.jpg[/img]

Моя первая версия скриптика для развлечения с педами.
На самом деле, тестировалось мною как уникально новый скрипт "слежения за игроками", но увы, вылилось в сиё творение.
Как работает:
Если видим пешехода (желательно рядом, но недалеко тоже можно, в машине тоже можно) и тыкаем на "Разговоры Yes" (заметьте, что под разговоры да подразумевается кнопка Y, у вас она может быть другой). Для ручного отключения режима - Разговоры No.
Включается режим слежки за педом. Если отойти / сам отойдёт на 30 метров и дальше - режим вырубится сам.
Пока вы в режиме слежки можно сделать следующее:
Y + пкм - отправить педа полетать (обязательно посмотрите как он приземлится)
Y + C - хедшот! (работает с педами в машине)
Y + Спринт - поделится своим оружием (кулаки не принимаются grin)
Y + V - пед становится неубиваемым
Y + Прыжок - режим rage для педа (даёт миниган и ярость на всех проходящих рядом)
Вроде всё, сильно не пинайте, и не говорите что скрипт гамно. Спасибо за внимание grin

PS. В сампе не работает.
[large]И в догонку...[/large]

[img align=c]http://sweet-ru.at.ua/cars-fun.jpg[/img]

В след за предыдущим скриптом "Peds fun!" незаметно выходит этот. Carz fun! хоть и не полный "кар контролёр", но ему надо отдать должное.
Скрипт позволяет вам контролировать выбранную машину. Включение скрипта - car (набрать). Для отключения - car (набрать) smile
Далее, бежим к ближайшей дороге и начинаем "веселье" выбираю случайную машину кнопкой Tab.
Сразу говорю, что выбор машины немного глючный, по этому тыкайте сильнее и пока не...
После того как выбрали машину, время останавливается и вам даётся шанс подумать, чего бы натворить с машиной.
Вот что можно сделать:
Tab + A - сесть в машину пассажиром (если машина полная (мест нету) то вы тупо останетесь на месте)
Tab + S - отправить машину в облака (пока что она тупо приземляется, дальше - больше)
Tab + Y - машина ВНЕЗАПНО взрывается (песду не дают)
Tab + C - беспалевно взять машину (в 99% случаев, хозяин захочет забрать её назад, мгновенно)
Tab + Z - дурдом для машины, сменить цвет на случайный
Tab + X - моя любимая опция, отшвырнуть машину с глаз долой (если машина останется на месте после активации данной опции - просто легонько коснитесь её)
Когда вы в режиме действий над машиной, набирайте car что бы выключить скрипт.

PS. В сампе не работает!

Скачать carz fun! | Скачать peds fun!
ВНИМАНИЕ! Для работы скриптов необходима библиотека клео3 (не 4, а 3)!

#321 Re: Вопросы по скриптингу » Один вопрос » 20-07-2010 06:40

d88 wrote:
Sw[ee]t wrote:

У меня такого опкода вообще нету! :wow:
Это для клео 4? А для клео 3?

Хм, и правда нет. Но наверное он аналогичен коду

0A96: $ActorStruct = actor $PLAYER_ACTOR struct

Этот точно для CLEO 3

Ну ты читал что мне нужно? Превратить из указателя в хендл.
В любом случае, я нашёл альтернативное решение.

Вопросик опять: нашёл ф-цию 0x64F190 которая добавляет в машину пассажира. Можно-ли как то поддельно пихнуть игрока на пассажирское сидение (хотя бы на секунд пять) и тутже его оттуда убрать. Это мне опять для мп.

#322 Re: Вопросы по скриптингу » Один вопрос » 19-07-2010 13:24

У меня такого опкода вообще нету! :wow:
Это для клео 4? А для клео 3?

#323 Re: Вопросы по скриптингу » Один вопрос » 19-07-2010 12:05

Указатель на адрес в памяти по которому содержится пед. Я о том как этот адрес прочитать и получить готовый хендл актора.

#324 Re: Вопросы по скриптингу » Один вопрос » 19-07-2010 11:03

Опять вопрос по мультиплееру.
Можно-ли как-то оперировать другими игроками (при помощи памяти разумеется)?
То есть сменить им координаты / здоровье / интерьер и тому подобное.

UPDATE:
Ещё вопросец. Допустим я получил указатель на педа, как его преобразовать в хендл? Где-то об этом говорилось, но я абсолютно ничего не нашёл дельного.

#325 Re: Работа с памятью, EXE » Работа с анимацией » 18-07-2010 15:55

.text:00491863 call sub_4CEA80 ; set animation progress

Это вроде вызов самой функции. Адрес самого опкода - 0x491802.
Наверняка я неправ, и меня поправят smile

Board footer

Powered by FluxBB