Скриптинг курилка

Quote:
Originally Posted by Romanius
View Post
сикл спользуй.
Никак не могу доделать, все время какие-то баги, то он не респавнит все машины фракции, то вообще ни одну машину не респавнит.
У меня машины прикреплены к фракциям таким образом:
PHP Code:
new pcar[10]; 
...проверка в OnPlayerStateChange...

и в OnGameModeInit:
PHP Code:
pcar[0] = AddStaticVehicle(...); 
pcar[1] = AddStaticVehicle(...); 
pcar[2] = AddStaticVehicle(...); 
...

Мне надо сделать, чтобы функция SetVehicleToRespawn респавнила только те машины, которые входят в pcar
Reply

вот попробуй

Code:
	for (new v = 0; v < 11; v++)
	{
		SetVehicleToRespawn(pcar[v]);
	}
Reply

[Saint], спасибо)
Подскажите пожалуйста, как правильнее, так:
PHP Code:
if(!strcmp(cmdtext"/test"true))
    {
        if(
IsPlayerInRangeOfPoint(playerid5903.5760,-1680.1901,13.5547))
        {
            
SendClientMessage(playerid0xFFFFFF"1");
        }
        else return 
SendClientMessage(playeridCOLOR_GREY"-");
        return 
1;
    } 
или вот так:
PHP Code:
if(!strcmp(cmdtext"/test"true))
    {
        if(
IsPlayerInRangeOfPoint(playerid5903.5760,-1680.1901,13.5547))
        {
            
SendClientMessage(playerid0xFFFFFF"1");
        }
        else return 
SendClientMessage(playeridCOLOR_GREY"-");
    } 
?
То есть без return 1; или с return 1; ?
Reply

Первый вариант.
ТОлько в
Quote:

return SendClientMessage(playerid, COLOR_GREY, "-");

убери return в обоих случаях

Т.е. в конце команды всегда должен оставаться return 1;
Или вообще без ретурнов, но тогда используй конструкцию
if()
{

}
else if()
{

}
else if()
{

}
в этом случаи можно тестировать весь паблик на задержку выполнения кода в нём.
Reply

ни так и ни так. Если уж юзать ретурны, то вот так:
Code:
if(!strcmp(cmdtext, "/test", true))
    {
        if(IsPlayerInRangeOfPoint(playerid, 5, 903.5760,-1680.1901,13.5547))
        {
            return SendClientMessage(playerid, 0xFFFFFF, "1");
        }
        else return SendClientMessage(playerid, COLOR_GREY, "-");
    }
EDIT: дангер меня опередил. Ну или как он сказал юзать
Reply

А почему не так?
Code:
if(strcmp(cmdtext, "/test", true) == 0)
{
	if(IsPlayerInRangeOfPoint(playerid, 5, 903.5760,-1680.1901,13.5547)) return SendClientMessage(playerid, 0xFFFFFF, "1");
	else return SendClientMessage(playerid, COLOR_GREY, "-");
}
Reply

Всем спасибо за ответы)
Reply

Quote:
Originally Posted by OKStyle
View Post
А почему не так?
Code:
if(strcmp(cmdtext, "/test", true) == 0)
{
	if(IsPlayerInRangeOfPoint(playerid, 5, 903.5760,-1680.1901,13.5547)) return SendClientMessage(playerid, 0xFFFFFF, "1");
	else return SendClientMessage(playerid, COLOR_GREY, "-");
}
Code:
if(strcmp(cmdtext, "/test", true) == 0)
{
	if(IsPlayerInRangeOfPoint(playerid, 5, 903.5760,-1680.1901,13.5547)) return SendClientMessage(playerid, 0xFFFFFF, "1");
	SendClientMessage(playerid, COLOR_GREY, "-");
    return true;
}
Reply

Code:
if(strcmp(cmdtext, "/test", true) == 0)
{
    retutn (IsPlayerInRangeOfPoint(playerid, 5, 903.5760,-1680.1901,13.5547) ? SendClientMessage(playerid, 0xFFFFFF, "1") : SendClientMessage(playerid, COLOR_GREY, "-"));
}
фигней занимаетесь =\
Reply

PHP Code:
if(strcmp(cmdtext"/test"true) == 0)retutn (IsPlayerInRangeOfPoint(playerid5903.5760,-1680.1901,13.5547) ? SendClientMessage(playerid0xFFFFFF"1") : SendClientMessage(playeridCOLOR_GREY"-")); 
Quote:

фигней занимаетесь =\

Ещё той *rofl*
Reply

Такая ситуация: нужно дать бонус и, возможно, снять деньги игроку, который сел в машину бота (в моём случае - общественный транспорт). Собственно, нужно проверить, когда игрок сел в машину пассажиром, является ли водитель ботом. Как это попроще реализовать?
Reply

Проще - стандартными функциями.
Reply

Подскажите, пожалуйста, в чем может быть проблема!

Одеваю персонажей, с помощью зарубежного скрипта HoldStudio (довольно удобный подгон координат), после идеального выравнивания и сохранения, образуется код:

PHP Code:
SetPlayerAttachedObject(playerid01897720.4632280.0599370.00000086.46414189.0105281.8174271.0000001.0000001.000000); 
В моем случае, я одеваю шлем на скин под ид 3, однако на тесте, после того, как выше написанный код вставляю в колбэк спавна и спавнюсь этим же ид 3, выглядит так:

Отсюда возникает вопрос, если все координаты верны, почему результат такой?
Reply

Quote:
Originally Posted by Baks
View Post
Подскажите, пожалуйста, в чем может быть проблема!

Одеваю персонажей, с помощью зарубежного скрипта HoldStudio (довольно удобный подгон координат), после идеального выравнивания и сохранения, образуется код:

PHP Code:
SetPlayerAttachedObject(playerid01897720.4632280.0599370.00000086.46414189.0105281.8174271.0000001.0000001.000000); 
В моем случае, я одеваю шлем на скин под ид 3, однако на тесте, после того, как выше написанный код вставляю в колбэк спавна и спавнюсь этим же ид 3, выглядит так:

Отсюда возникает вопрос, если все координаты верны, почему результат такой?
Наверно потому, что цепляли изначально к одной части тела, а теперь цепляете к другой.
Reply

Quote:
Originally Posted by eakwarp
View Post
Наверно потому, что цепляли изначально к одной части тела, а теперь цепляете к другой.
Наверное, действительно, так, потому что в изначальном сохранении крепеж идет к спине. Спасибо за подсказку, попробую уже днем на свежую голову повторить попытку. =)
Reply

Обновил MySQL плагин от BlueG до версии R7
При компиляции пишет ошибку: error 017: undefined symbol "mysql_query"
В самом же инклуде:
Code:
#define mysql_query(%1,%2,%3,%4) \
	mysql_function_query(%4, %1, false, "OnQueryFinish", "siii", %1, %2, %3, %4)
и
Code:
native mysql_function_query(connectionHandle, query[], bool:cache, callback[], format[], {Float,_}:...);
В чём проблема ?
Reply

Количество и тип передаваемых переменных не совпадает или неверно.
Зря обновлял, работать не будет, нужно весь код переделывать. В новой версии обработка запросов идет в отдельном паблике который работает в параллельном потоке.
Reply

Всем привет, помогите пожалуйста
Мне нужно сложить 2 define и вывести его в один , то есть что-то типо такого:
#define Cars 10
#define bCars 1 + Cars
И тут надо создать define которые будет выводить #define bCars 1 + Cars, ну чтобы его использовать.

====================================

Сам разобрался, извиняюсь
Reply

Почему при выполнении этого кода автомобиль иногда телепортируется туда куда надо, а потом телепортируется куда то в другое место.

Как исправить?
Code:
new str[128];
format(str, sizeof(str), "{ffffff}Вы должны быть в этом {ffffaa}%s {ffffff}чтобы начать тюнинг", VehicleNames[GetVehicleModel(Vehicles[playerid][Clicked[playerid][10]])-400]);
if(!IsPlayerInVehicle(playerid, Vehicles[playerid][Clicked[playerid][10]])) return ShowLangDialog(playerid, 111, DIALOG_STYLE_MSGBOX, "{ffffaa}Ошибка", "{ffffaa}Error", str, "{ffffff}You need to be in this car to tune it", "Назад", "Back", "Отмена", "Cancel");
GetVehiclePos(Vehicles[playerid][Clicked[playerid][10]], PlayerInfo[playerid][PositionX], PlayerInfo[playerid][PositionY], PlayerInfo[playerid][PositionZ]);
GetVehicleZAngle(Vehicles[playerid][Clicked[playerid][10]], PlayerInfo[playerid][PositionA]);
PlayerInfo[playerid][Menu] = 0;
SetVehicleVirtualWorld(Vehicles[playerid][Clicked[playerid][10]], 10000+playerid);
LinkVehicleToInterior(Vehicles[playerid][Clicked[playerid][10]], 1);
SetVehiclePos(Vehicles[playerid][Clicked[playerid][10]], 624.8763,-22.4162,1001.6814);
SetVehicleZAngle(Vehicles[playerid][Clicked[playerid][10]], 0);
SetPlayerVirtualWorld(playerid, 10000+playerid);
SetPlayerInterior(playerid, 1);
SetPlayerPosEx(playerid, 605.5055,-20.5407,1004.7813);
TogglePlayerControllable(playerid, false);
SetPlayerCameraPos(playerid, 627.0195,-15.9294,1004.2729);
SetPlayerCameraLookAt(playerid, 624.8763,-22.4162,1001.6814);
ShowLangDialog(playerid, 21, DIALOG_STYLE_LIST, "{ffffaa}Тюнинг", "{ffffaa}Tuning", "Обвес\nКолеса\nОформление", "Kit\nWheels\nPainting", "Выбрать", "Select", "Выход", "Exit");
Reply

Quote:
Originally Posted by GameMan
View Post
Почему при выполнении этого кода автомобиль иногда телепортируется туда куда надо, а потом телепортируется куда то в другое место.
Наверно проблема из-за игроков которые стоят в афк.
Очень сильно это сказывается на машинах так как это объект синхронизации
Сажай игрока в тачку!

SetPlayerPosEx - подробнее пожалуйста, что там есть.
Reply


Forum Jump:


Users browsing this thread: 10 Guest(s)