[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Форум » Игры серии GTA » GTA San Andreas » Вопросы по скриптингу Sanny Builder (Вы можете получить ответы на вопросы по SB)
Вопросы по скриптингу Sanny Builder
wmysterio
Администраторы
Скриптер
22.11.11 21:52
Offline
Если у вас возник вопрос по скриптингу Sanny Builder, обращайтесь! Мы постараемся решить вашу проблему wink Это ещё не значит, что все прям бросятся решать во чтобы то не стало, но ответ вы сможете вы получить как вариант решения или как невозможность или сложность решения.
УВАЖАЕМЫЕ ПОЛЬЗОВАТЕЛИ! ПРОСЬБА КОД СКРИПТОВ ПОМЕЩАТЬ В КОНСТРУКЦИЮ КОДА:

или

Также указывайте полный код скрипта, иначе причина ошибок может быть и не выявлена.
Прикрепления: 0248203.png(0.9 Kb) · 9085525.png(0.2 Kb)

blackful
Пользователи
13.11.13 17:10
Offline
Цитата BoPoH ()
Добавь в main новый поток и вставь в него код скрипта (без {$CLEO}).

спасибо! помогло!

Добавлено (13.11.13, 16:10)
---------------------------------------------
народ, может кто нибудь знает, есть ли такой мод, чтобы радио играла не только в машине, но и когда выходишь из неё, т.е. слышно как играет радио, как в gta 4.

Евгений_Сергеевич

BoPoH
Друзья
13.11.13 17:27
Offline
Цитата blackful ()
народ, может кто нибудь знает, есть ли такой мод, чтобы радио играла не только в машине, но и когда выходишь из неё, т.е. слышно как играет радио, как в gta 4.

Есть. Кажись DK22Pac делал.

sergey4990
Пользователи
16.11.13 19:08
Offline
А возможно ли добавить в игру новое оружие без замены старого? если да, то как?

wmysterio
Администраторы
Скриптер
16.11.13 19:20
Offline
Цитата sergey4990 ()
А возможно ли добавить в игру новое оружие без замены старого? если да, то как?
Уже сто раз обсуждался этот вопрос и пока нет точного ответа. Кажется, Vital делал тесты по добавлению, возможно он расскажет тебе больше по этому вопросу.

Vital
Модераторы
Скриптер
16.11.13 21:29
Offline
Цитата sergey4990 ()
А возможно ли добавить в игру новое оружие без замены старого? если да, то как?

Лично у меня не получилось, к сожалению. Нужно искать какие-то лимиты оружия, но их я не нашёл в адресах памяти, а раскапывать информацию в .exe не умею пока что. Так что это пока ещё под вопросом, но плагин по увеличению лимита и добавлению оружия делал японский скриптер Ryosuke, у него на сайте, думаю, остались файлы.
2109: create_special_actor $VITAL in_front_of_computer

sergey4990
Пользователи
16.11.13 22:46
Offline
Vital, и я вот пытался добавить...безрезультатно. а можешь дать ссылку на плагин?

Vital
Модераторы
Скриптер
16.11.13 23:08
Offline
Вот этот плагин. Не разбирался с ним, так что посмотри самостоятельно как с ним работать.
2109: create_special_actor $VITAL in_front_of_computer

wmysterio
Администраторы
Скриптер
17.11.13 11:39
Offline
Цитата Vital ()
Вот этот плагин.
Оу, так там есть исходники плагина. Очень интересно.

Slivkin-Sergey
Модераторы
17.11.13 14:26
Offline
У меня какая-то странная ошибка. Скрипт:
Код
{$CLEO}
0000:
:P3D_1
wait 0
if
0AA2: 1@ = load_library "CLEO\lalala.dll" // IF and SET
jf @P3D_1
if
0AA4: 2@ = get_proc_address "xcoord" library 1@ // IF and SET
jf @P3D_1
3@v = "m3_rob_inwalk"
0AA7: call_function 2@ num_params 1 pop 0 3@v result_to 4@ // blame that!
0AD1: show_formatted_text_highpriority "%f" time 5000 4@
0AA3: free_library 1@
0A93:

вызывает крах. Построчное комментирование привело меня к строчке, которую я и отметил, а именно - вызов функции. Код библиотеки:
Код
#include <iostream>
#include <string>
using namespace std;
extern "C" __declspec(dllexport)
float xcoord(string locator){
   if(locator == "m3_rob_inwalk"){
   return 345.34;
   }else{
    return 0.0;
   }
}


Добавлено (17.11.13, 13:26)
---------------------------------------------
Судя по всему я что-то намудрил в библиотеке, т.к. заменив её на
Код
#include <iostream>
extern "C" __declspec(dllexport)
int xcoord(int a){
return a-4;
}


, а скрипт на
Код
{$CLEO}
0000:
:P3D_1
wait 0
if
0AA2: 1@ = load_library "CLEO\lalala.dll" // IF and SET
jf @P3D_1
if
0AA4: 2@ = get_proc_address "xcoord" library 1@ // IF and SET
jf @P3D_1
0AA7: call_function 2@ num_params 1 pop 1 10 result_to $LALALFUNCRES // blame that!
0AD1: show_formatted_text_highpriority "%d" time 5000 $LALALFUNCRES
0AA3: free_library 1@
0A93:

я получил исправно выводящуюся цифру 6 (10 - 4)... В чём же проблема? Как работать со строками в этих библиотеках?
Отредактировал Slivkin-Sergey - Воскресенье, 17.11.13, 14:28

sergey4990
Пользователи
17.11.13 16:06
Offline
Vital, спасибо, я поставил плагин, но при запуске игры у меня вылетает две ошибки
an unknown code found at 0x00855e1c (weaponData - dummy)
и an unknown code found 0x00856c6a (weaponData - dummy)

помогите мне..
Отредактировал Slivkin-Sergey - Воскресенье, 17.11.13, 16:24

wmysterio
Администраторы
Скриптер
17.11.13 16:32
Offline
Цитата Slivkin-Sergey ()
ак работать со строками в этих библиотеках?
Вижу ещё один чел попал в туже ситуацию, что и я. Мне казали, что нужно передавать только указатель на строку, а не её саму. Но как это сделать примера не предоставили.

Slivkin-Sergey
Модераторы
17.11.13 16:38
Offline
wmysterio, а где тебе это сказали?

И ещё почему-то не могу вернуть ничего кроме int, вылет неизбежен.
Код
#include <iostream>
#include <string>
extern "C" __declspec(dllexport) float getLocator(int locHandle){
if(locHandle == 1){
return 1.1;
}else{
return 1.5;
}
}

Вот эта функция, например, вызывает вылет.
Отредактировал Slivkin-Sergey - Воскресенье, 17.11.13, 16:38

wmysterio
Администраторы
Скриптер
17.11.13 16:43
Offline
Цитата Slivkin-Sergey ()
И ещё почему-то не могу вернуть ничего кроме int, вылет неизбежен.
С такими вопросами обращайся к DK22Pac. Он лучше тебе расскажет эту тему.

Vital
Модераторы
Скриптер
18.11.13 19:24
Offline
sergey4990, я с этим плагином не работал, посмотри там видео, должно быть объяснено, что делать.
2109: create_special_actor $VITAL in_front_of_computer

DK22Pac
Модераторы
TOP Скриптер
18.11.13 19:56
Offline
Slivkin-Sergey, результат в виде числа с плавающей точкой надо "получать" самостоятельно:
Код
0AA5: call 2@ num_params 1 pop 1 10
0AE9: pop_float 3@ //  // результат запишется в 3@

Или можно попробовать передавать результат через указатель:
Код
void getLocator(int locHandle, float *pResult)
{
         if(locHandle == 1)
             *pResult = 1.1;
         else
             *pResult = 1.5;
}

Код
0AA5: call 2@ num_params 2 pop 2 10 pResult 3@v // результат запишется в 3@
Отредактировал DK22Pac - Понедельник, 18.11.13, 20:12

sergey4990
Пользователи
19.11.13 16:06
Offline
оружие добавлять я научился, но есть одна проблемка. этим оружием нельзя сделать хедшот или взорвать бак машины
как можно это исправить?

и еще вопрос, есть ли такой плагин для добавления новых машин?

Slivkin-Sergey
Модераторы
19.11.13 19:28
Offline
DK22Pac,
Код
{$CLEO}
0000:
:P3D_1
wait 0
if
0AA2: 1@ = load_library "CLEO\lalala.dll" // IF and SET  
jf @P3D_1
if
0AA4: 2@ = get_proc_address "getLocator" library 1@ // IF and SET  
jf @P3D_1
0AA5: call 2@ num_params 2 pop 2 10 pResult 3@ // результат запишется в 3@
0AA3: free_library 1@
0A93:


Код
#include <iostream>  
  #include <string>  
  using namespace std;  
  extern "C" __declspec(dllexport)
void getLocator(int locHandle, float *pResult)
  {  
          if(locHandle == 1)  
              *pResult = 1.1;  
          else  
              *pResult = 1.5;  
  }


Всё равно вылетает...

DK22Pac
Модераторы
TOP Скриптер
19.11.13 20:36
Offline
Slivkin-Sergey, здесь ты передаешь в функцию параметр 3@, т.е., в данном примере - число 0 (все локальные переменные скрипта при старте его работы устанавливаются в 0). Надо передавать указатель на переменную 3@, а не её значение. Особенность CLEO4 позволяет передавать указатель на переменную в функцию, представляя её (переменную) в виде строки:
Код
3@v
Отредактировал DK22Pac - Вторник, 19.11.13, 20:39

Slivkin-Sergey
Модераторы
20.11.13 05:03
Offline
С указателем тоже вылетает wacko ...

DK22Pac
Модераторы
TOP Скриптер
20.11.13 05:32
Offline
Да, есть ещё одна ошибка. Параметры для функций в опкодах 0AA5-0AA8 надо передавать в обратном порядке, т.е. "справа-налево".
Код
0AA5: call 2@ num_params 2 pop 2 pResult 3@v 10
Отредактировал DK22Pac - Среда, 20.11.13, 05:32

Форум » Игры серии GTA » GTA San Andreas » Вопросы по скриптингу Sanny Builder (Вы можете получить ответы на вопросы по SB)
Поиск: