Re: Скриптинг курилка -
DANGER1979 - 25.01.2017
В двух инклюдах(vw_skinchange.inc и vw_gunchange.inc) подключенных к одному FS(admins.pwn) используется public OnPlayerClickTextDraw(playerid, Text:clickedid)
Code:
#include "../include/vw_skinchange"
#include "../include/vw_gunchange"
Проблема:
не вызывается OnPlayerClickTextDraw из vw_gunchange.inc
Вот окончания пабликов
vw_skinchange.inc
Code:
public OnPlayerClickTextDraw(playerid, clickedid)
{
....
#if defined skin_OnPlayerClickTextDraw
return skin_OnPlayerClickTextDraw(playerid, clickedid);
#else
return 0; // Allow other scripts to keep processing OnPlayerConnect
#endif
}
#if defined _ALS_OnPlayerClickTextDraw
#undef OnPlayerClickTextDraw
#else
#define _ALS_OnPlayerClickTextDraw
#endif
#define OnPlayerClickTextDraw skin_OnPlayerClickTextDraw
#if defined skin_OnPlayerClickTextDraw
forward skin_OnPlayerClickTextDraw(playerid, Text:clickedid);
#endif
vw_gunchange.inc
Code:
public OnPlayerClickTextDraw(playerid, clickedid)
{
....
#if defined gun_OnPlayerClickTextDraw
return gun_OnPlayerClickTextDraw(playerid, clickedid);
#else
return 0; // Allow other scripts to keep processing OnPlayerConnect
#endif
}
#if defined _ALS_OnPlayerClickTextDraw
#undef OnPlayerClickTextDraw
#else
#define _ALS_OnPlayerClickTextDraw
#endif
#define OnPlayerClickTextDraw gun_OnPlayerClickTextDraw
#if defined gun_OnPlayerClickTextDraw
forward gun_OnPlayerClickTextDraw(playerid, Text:clickedid);
#endif
Что не так?
Наверно лучше сделать так и не париться
Code:
public OnPlayerClickTextDraw(playerid, Text:clickedid)
{
skin_OnPlayerClickTextDraw(playerid, Text:clickedid);
gun_OnPlayerClickTextDraw(playerid, Text:clickedid);
return 0;
}
Re: Скриптинг курилка -
Gettopro - 25.01.2017
Созрел вопрос, позволяет ли самп создавать бота - охранника.
Суть в том, чтобы он ехал за игроком строго по его маршруту на расстоянии 1-2 метров...
Re: Скриптинг курилка -
Stepashka - 25.01.2017
Quote:
Originally Posted by Gettopro
Созрел вопрос, позволяет ли самп создавать бота - охранника.
Суть в том, чтобы он ехал за игроком строго по его маршруту на расстоянии 1-2 метров...
|
FCNPC - Fully Controllable NPC (Russian Thread)
Re: Скриптинг курилка -
DANGER1979 - 27.01.2017
Как убрать срабатывание public OnPlayerClickPlayerTextDraw при двойном щелчке по пункту меню в диалоге со стилем DIALOG_STYLE_LIST?
При нажатии кнопки ОК в диалоге, то public OnPlayerClickPlayerTextDraw не вызывается, т.е. всё нормально.
поставить задержку?
Как отследить в диалоге со стилем DIALOG_STYLE_LIST, что было двойное нажатие по пункту меню, а не просто выбор пункта и нажатие кнопки ОК?
Re: Скриптинг курилка -
White_116 - 27.01.2017
Если ид ТД 65535 вызовите команду отмены выбора ТД
DIALOG_STYLE_LIST возвращает текст выбраной строки, двойной клик не отследить. При вызове диалога отключи выбор ТД. При завершении верни состояние.
Re: Скриптинг курилка -
DANGER1979 - 27.01.2017
я знаю что CancelSelectTextDraw и SelectTextDraw вызывают паблик OnPlayerClickPlayerTextDraw.
Но проблема именно при двойном нажатии, т.е. если что то менять, то при нажатии кнопки ОК не будет работать.
Проверка
Code:
// Handle: They cancelled (with ESC)
if(clickedid == Text:INVALID_TEXT_DRAW) {
skinchange_DestroySkinMenu(playerid);
return 1;.
}
стоит. Но она не помогает т.к. из таблицы в 21 ячейку, всегда срабатывает ИД 8, т.е. тот который стоит в том месте где находится выбираемая строка диалога. Т.е. получается страница с таблицей текстдровов появляется раньше чем я успеваю нажать второй клик, который закрывает диалог.
Поэтому я сделал задержку выполнения кода. Т.е. появление Меню на 0,1 секунды позже после нажатия кнопки диалога или двойного щелчка.
ПРОВЕРЕНО. РАБОТАЕТ.
Re: Скриптинг курилка -
stabker - 29.01.2017
Quote:
Originally Posted by stabker
Для тех, кто пользуется Notepad++. Случалось ли вам встречаться с подобным багом? Открываешь скобку (предположительно) и ниже, в одно из таких открытий, все летит к чертям http://imgur.com/a/1iJX4
|
Если кому-то интересно, чтобы избежать этот баг, нужно отключить "снимок сессии и периодическое резервное копирование", а также "резервное копирование" (опции - настройки - резерв. копирование).
Re: Скриптинг курилка -
Diman777 - 30.01.2017
Народ, а что при выгрузке мода обязательно удалять ранее созданные объекты?
Т.е. если я не удалю, и мод снова запустится, то старые останутся?
Вот код, написанный самим Калкором для FS ferriswheel, он удалил:
PHP Code:
public OnFilterScriptExit()
{
new x=0;
DestroyObject(gFerrisWheel);
DestroyObject(gFerrisBase);
x=0;
while(x != NUM_FERRIS_CAGES) {
DestroyObject(gFerrisCages[x]);
x++;
}
return 1;
}
Re: Скриптинг курилка -
Romz - 30.01.2017
Quote:
Originally Posted by Diman777
Народ, а что при выгрузке мода обязательно удалять ранее созданные объекты?
Т.е. если я не удалю, и мод снова запустится, то старые останутся?
Вот код, написанный самим Калкором для FS ferriswheel, он удалил:
PHP Code:
public OnFilterScriptExit()
{
new x=0;
DestroyObject(gFerrisWheel);
DestroyObject(gFerrisBase);
x=0;
while(x != NUM_FERRIS_CAGES) {
DestroyObject(gFerrisCages[x]);
x++;
}
return 1;
}
|
FS может быть выгружен или перезагружен, и в OnFilterScriptExit нужно удалять ранее созданные объекты скриптом что бы они не дублировались. Тоже самое и с 3д текстами, транспортом и тому подобным.
При перезагрузке сервера, объекты в OnGameModeExit можно не удалять так как они сами удаляются.
Re: Скриптинг курилка -
Diman777 - 30.01.2017
Хм, всё равно надо проверить, а то мало ли)
Re: Скриптинг курилка -
thebatya - 30.01.2017
Как правильнее в одну стринговую переменную записать другую переданную через аргументы в функцию?
strcat или format?
Re: Скриптинг курилка -
White_116 - 30.01.2017
Quote:
Originally Posted by thebatya
Как правильнее в одну стринговую переменную записать другую переданную через аргументы в функцию?
strcat или format?
|
Не знаешь как и чем пользоваться? - юзай format, не прогадаешь.
Re: Скриптинг курилка -
stabker - 30.01.2017
Quote:
Originally Posted by thebatya
Как правильнее в одну стринговую переменную записать другую переданную через аргументы в функцию?
strcat или format?
|
Если массив пустой, то strcat. Если что-то есть или неизвестно, то strmid.
Re: Скриптинг курилка -
jakebat - 30.01.2017
Не могу разобраться, помогите. Как сделать движение к указанной точке ?
Вот сделал кое что:
Quote:
new Float,Float:y,Float:z,Float:a;
GetPlayerPos(playerid, x, y, z);
GetPlayerFacingAngle(playerid, a);
SetPlayerFacingAngle(playerid, a);
SetPlayerPos(playerid, x+5.0*-floatsin(a,degrees), y+5.0*floatcos(a,degrees), z);
|
Движение туда, куда направлен игрок.
Вот у меня координаты
Quote:
1438.1438,-2287.1487,13.5469
|
Как сделать так, чтобы игрок смотрел на эти координаты?
Я уже и радиус вычислял ,шо я только не пробывал. Помогите.
Re: Скриптинг курилка -
Diman777 - 30.01.2017
Подскажите
эдитор для
Атач объекта к объекту. Нашёл 2, но работают не правильно(
Re: Скриптинг курилка -
Romz - 30.01.2017
Quote:
Originally Posted by Diman777
Хм, всё равно надо проверить, а то мало ли)
|
Ну если не веришь, можешь проверить
Re: Скриптинг курилка -
Eims - 31.01.2017
Quote:
Originally Posted by thebatya
Как правильнее в одну стринговую переменную записать другую переданную через аргументы в функцию?
strcat или format?
|
Можно любым способом.
Если переменная уже имеет какое-то значение, можно сделать так:
PHP Code:
string[0] = '\0';
strcat(string, params);
Re: Скриптинг курилка -
stabker - 31.01.2017
Quote:
Originally Posted by Eims
Можно любым способом.
Если переменная уже имеет какое-то значение, можно сделать так:
PHP Code:
string[0] = '\0';
strcat(string, params);
|
Strmid быстрее, чем это.
Quote:
Originally Posted by jakebat
Как сделать так, чтобы игрок смотрел на эти координаты?
Я уже и радиус вычислял ,шо я только не пробывал. Помогите.
|
PHP Code:
Float: PlayerFacingAngleToPoint(playerid, Float:X, Float:Y)
{
new Float: p[3];
GetPlayerPos(playerid, p[0], p[1], p[2]);
return 180.0 - atan2(p[0] - X, p[1] - Y);
}
SetPlayerFacingAngle(playerid, PlayerFacingAngleToPoint(playerid, 1438.1438, -2287.1487)); //повернет игрока лицом к нужной точке
Re: Скриптинг курилка -
OstGot - 31.01.2017
Quote:
Originally Posted by Diman777
Подскажите эдитор для Атач объекта к объекту. Нашёл 2, но работают не правильно(
|
Можешь
этот попробовать, но для его работы версия сампа не ниже 0.3.7 должна быть.
Для крепления нужно сначала создать эти оба объекта, потом дважды кликнув по одному из них, выбрать в меню "Прикрепить к объекту"
Re: Скриптинг курилка -
Diman777 - 31.01.2017
Quote:
Originally Posted by OstGot
Можешь этот попробовать, но для его работы версия сампа не ниже 0.3.7 должна быть.
Для крепления нужно сначала создать эти оба объекта, потом дважды кликнув по одному из них, выбрать в меню "Прикрепить к объекту"
|
Нет, такой не подойдёт, у меня CRMP если помнишь, там 0.3e.
Другой вопрос. А зачем DrawDistance в CreateObject? Я поставил 300.0 и разницы не заметил в расстоянии, на котором будет отображаться объект.