Re: Скриптинг курилка -
Art4D - 24.10.2016
Есть ли решение с багом функций CreateActor, Актеры почему то через некоторое время, тпшутся на другую координату. Подскажите, пожалуйста
Re: Скриптинг курилка -
Mcc - 24.10.2016
Они проваливаются под текстуры. Либо ставь актера на статичные объекты либо обновляй его позицию для игрока, когда тот застримится, через определенное время.
Re: Скриптинг курилка -
Romz - 27.10.2016
Всем привет! У меня есть движущийся объект и мне нужно что бы ровно на пол пути вызвался колбек. Я делаю примерно вот так:
PHP Code:
new object = CreateDynamicObject(...);
new time = MoveDynamicObject(object, ...);
SetTimerEx("TestFunc", floatround(time / 2.0), false, "d", object);
Но выходит что
TestFunc вызывается не в центре, а чуть дальше. На тестовом сервера (
localhost), я смог добавиться нужного мне результата:
PHP Code:
SetTimerEx("TestFunc", floatround(time / 2.25), false, "d", object);
Но на основном сервере (
на хостинге),
TestFunc вызывается намного раньше центра. Как мне добиться заданной цели что бы не зависимо от хостинга оно вызывалось в центре пути?
Re: Скриптинг курилка -
stabker - 27.10.2016
Quote:
Originally Posted by Kolstin
Всем привет! У меня есть движущийся объект и мне нужно что бы ровно на пол пути вызвался колбек. Я делаю примерно вот так:
PHP Code:
new object = CreateDynamicObject(...);
new time = MoveDynamicObject(object, ...);
SetTimerEx("TestFunc", floatround(time / 2.0), false, "d", object);
Но выходит что TestFunc вызывается не в центре, а чуть дальше. На тестовом сервера ( localhost), я смог добавиться нужного мне результата:
PHP Code:
SetTimerEx("TestFunc", floatround(time / 2.25), false, "d", object);
Но на основном сервере ( на хостинге), TestFunc вызывается намного раньше центра. Как мне добиться заданной цели что бы не зависимо от хостинга оно вызывалось в центре пути?
|
Первое что приходит в голову это разделить движение на два этапа, т.е. двигаем объект до средины пути, в OnObjectMoved выполняем нужные действия и опять запускаем движение.
Re: Скриптинг курилка -
ZiGGi - 27.10.2016
Quote:
Originally Posted by Kolstin
Всем привет! У меня есть движущийся объект и мне нужно что бы ровно на пол пути вызвался колбек. Я делаю примерно вот так:
PHP Code:
new object = CreateDynamicObject(...);
new time = MoveDynamicObject(object, ...);
SetTimerEx("TestFunc", floatround(time / 2.0), false, "d", object);
Но выходит что TestFunc вызывается не в центре, а чуть дальше. На тестовом сервера ( localhost), я смог добавиться нужного мне результата:
PHP Code:
SetTimerEx("TestFunc", floatround(time / 2.25), false, "d", object);
Но на основном сервере ( на хостинге), TestFunc вызывается намного раньше центра. Как мне добиться заданной цели что бы не зависимо от хостинга оно вызывалось в центре пути?
|
Самое грамотное решение предложили:
Quote:
Originally Posted by stabker
Первое что приходит в голову это разделить движение на два этапа, т.е. двигаем объект до средины пути, в OnObjectMoved выполняем нужные действия и опять запускаем движение.
|
Но если не устроит (мало-ли будет заметен рывок или что-то ещё), то нужно использовать что-то поточнее, чем таймер (у таймеров погрешность ~25%). Можно воспользоваться timerfix плагином, или создать таймер, в котором сверять время через gettime().
Re: Скриптинг курилка -
OKStyle - 27.10.2016
Расскажите, что за новая мания отказа от циклов? Опять кто-то вброс какой-то сделал?
Re: Скриптинг курилка -
Romz - 27.10.2016
Quote:
Originally Posted by OKStyle
Расскажите, что за новая мания отказа от циклов? Опять кто-то вброс какой-то сделал?
|
вы о чём?
Re: Скриптинг курилка -
ZiGGi - 27.10.2016
Quote:
Originally Posted by Kolstin
вы о чём?
|
Возможно об
этом (новый командный процессор).
Quote:
Originally Posted by OKStyle
Расскажите, что за новая мания отказа от циклов? Опять кто-то вброс какой-то сделал?
|
Просто есть люди, для которых скорость выполнения важнее удобства и красоты кода, поэтому и извращаются подобным образом.
Re: Скриптинг курилка -
OneHitWonder - 27.10.2016
Ребят, я чёт тупой, как спавнить только те машины в которых никого нет?
Re: Скриптинг курилка -
stabker - 27.10.2016
Quote:
Originally Posted by OneHitWonder
Ребят, я чёт тупой, как спавнить только те машины в которых никого нет?
|
а) Бежишь по всем машинам, для каждой машины бежишь по игрокам, проверяя, сидит ли игрок в текущей машине. Если да, пропускаешь ее.
б) Создаешь массив, с количеством ячеек равным MAX_VEHICLES. Бежишь по всем игрокам, проверяешь, в какой машине игрок сидит и устанавливаешь соответствующей ячейке вышеуказанного массива true. Потом отдельно бежишь циклом по всем машинам, если в ячейке массива, соответствующей иду текущей машины стоит false - спавнишь ее.
Re: Скриптинг курилка -
Shram - 29.10.2016
Имеется массив пикапов, при загрузке вызываю через стример (работает всё нормально)
PHP код:
AddStaticPickup(Armdealers[id][PickupModel],1,Armdealers[id][Coord_X],Armdealers[id][Coord_Y],Armdealers[id][Coord_Z]+1,0);
Но не знаю как реализовать, чтобы при вхождении в пикап выдавало сообщение, о том что нужно нажать кнопку Y для вызова меню
Так же есть проверка на нахождение игрока в зоне досягаемости пикапа
PHP код:
public IsPlayerAtArmDealer(playerid)
{
for (new id=0;id<MAX_ARMDEALERS;id++)
{
if (IsPlayerInRangeOfPoint(playerid,1.0,Armdealers[id][Coord_X],Armdealers[id][Coord_Y],Armdealers[id][Coord_Z]))
{
return 1;
}
}
return 0;
}
Re: Скриптинг курилка -
Diman777 - 29.10.2016
Когда ты используешь
AddStaticPickup, то ты не сможешь узнать
ид созданного пикапа, сама ф-ия такая изначально. А ид нужно знать для того, чтобы что-то сделать когда игрок наступит на какой-то пикап, для этого есть колбэк
OnPlayerPickUpPickup. Если у тебя стример какой-то, то там по-любому есть все нужные тебе ф-ии для работы.
Re: Скриптинг курилка -
Shram - 29.10.2016
Quote:
Originally Posted by Diman777
Когда ты используешь AddStaticPickup, то ты не сможешь узнать ид созданного пикапа, сама ф-ия такая изначально. А ид нужно знать для того, чтобы что-то сделать когда игрок наступит на какой-то пикап, для этого есть колбэк OnPlayerPickUpPickup. Если у тебя стример какой-то, то там по-любому есть все нужные тебе ф-ии для работы.
|
Получается, только через CreatePickup можно реализовать?
Re: Скриптинг курилка -
Stepashka - 29.10.2016
Quote:
Originally Posted by Shram
Получается, только через CreatePickup можно реализовать?
|
Да, а что в этом плохого.
Re: Скриптинг курилка -
Shram - 30.10.2016
Каким образом можно запретить игрокам доставать оружие в интерьерах?
Re: Скриптинг курилка -
ZiGGi - 30.10.2016
Quote:
Originally Posted by Shram
Каким образом можно запретить игрокам доставать оружие в интерьерах?
|
PHP код:
public OnPlayerUpdate(playerid)
{
if (GetPlayerInterior(playerid) != 0 && GetPlayerWeapon(playerid) != 0) {
SetPlayerArmedWeapon(playerid, 0);
}
return 1;
}
Re: Скриптинг курилка -
Mutha_X - 30.10.2016
Quote:
Originally Posted by ZiGGi
PHP код:
public OnPlayerUpdate(playerid)
{
if (GetPlayerInterior(playerid) != 0 && GetPlayerWeapon(playerid) != 0) {
SetPlayerArmedWeapon(playerid, 0);
}
return 1;
}
|
PHP код:
public OnPlayerUpdate(playerid)
{
if (GetPlayerInterior(playerid) && GetPlayerWeapon(playerid)) {
SetPlayerArmedWeapon(playerid, 0);
}
return 1;
}
Re: Скриптинг курилка -
Diman777 - 30.10.2016
ахах, и в чём разница?) Разве что операторов стало меньше
Re: Скриптинг курилка -
OneHitWonder - 31.10.2016
Ребят, как чит слапающий этот проверить? Никто ач на эти слапы игроков не делал?
Re: Скриптинг курилка -
Romz - 31.10.2016
Quote:
Originally Posted by OneHitWonder
Ребят, как чит слапающий этот проверить? Никто ач на эти слапы игроков не делал?
|
что за чит?