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

Есть ли решение с багом функций CreateActor, Актеры почему то через некоторое время, тпшутся на другую координату. Подскажите, пожалуйста
Reply

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

Всем привет! У меня есть движущийся объект и мне нужно что бы ровно на пол пути вызвался колбек. Я делаю примерно вот так:
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 вызывается намного раньше центра. Как мне добиться заданной цели что бы не зависимо от хостинга оно вызывалось в центре пути?
Reply

Quote:
Originally Posted by Kolstin
View Post
Всем привет! У меня есть движущийся объект и мне нужно что бы ровно на пол пути вызвался колбек. Я делаю примерно вот так:
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 выполняем нужные действия и опять запускаем движение.
Reply

Quote:
Originally Posted by Kolstin
View Post
Всем привет! У меня есть движущийся объект и мне нужно что бы ровно на пол пути вызвался колбек. Я делаю примерно вот так:
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
View Post
Первое что приходит в голову это разделить движение на два этапа, т.е. двигаем объект до средины пути, в OnObjectMoved выполняем нужные действия и опять запускаем движение.
Но если не устроит (мало-ли будет заметен рывок или что-то ещё), то нужно использовать что-то поточнее, чем таймер (у таймеров погрешность ~25%). Можно воспользоваться timerfix плагином, или создать таймер, в котором сверять время через gettime().
Reply

Расскажите, что за новая мания отказа от циклов? Опять кто-то вброс какой-то сделал?
Reply

Quote:
Originally Posted by OKStyle
View Post
Расскажите, что за новая мания отказа от циклов? Опять кто-то вброс какой-то сделал?
вы о чём?
Reply

Quote:
Originally Posted by Kolstin
View Post
вы о чём?
Возможно об этом (новый командный процессор).

Quote:
Originally Posted by OKStyle
View Post
Расскажите, что за новая мания отказа от циклов? Опять кто-то вброс какой-то сделал?
Просто есть люди, для которых скорость выполнения важнее удобства и красоты кода, поэтому и извращаются подобным образом.
Reply

Ребят, я чёт тупой, как спавнить только те машины в которых никого нет?
Reply

Quote:
Originally Posted by OneHitWonder
Посмотреть сообщение
Ребят, я чёт тупой, как спавнить только те машины в которых никого нет?
а) Бежишь по всем машинам, для каждой машины бежишь по игрокам, проверяя, сидит ли игрок в текущей машине. Если да, пропускаешь ее.
б) Создаешь массив, с количеством ячеек равным MAX_VEHICLES. Бежишь по всем игрокам, проверяешь, в какой машине игрок сидит и устанавливаешь соответствующей ячейке вышеуказанного массива true. Потом отдельно бежишь циклом по всем машинам, если в ячейке массива, соответствующей иду текущей машины стоит false - спавнишь ее.
Reply

Имеется массив пикапов, при загрузке вызываю через стример (работает всё нормально)
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

Reply

Когда ты используешь AddStaticPickup, то ты не сможешь узнать ид созданного пикапа, сама ф-ия такая изначально. А ид нужно знать для того, чтобы что-то сделать когда игрок наступит на какой-то пикап, для этого есть колбэк OnPlayerPickUpPickup. Если у тебя стример какой-то, то там по-любому есть все нужные тебе ф-ии для работы.
Reply

Quote:
Originally Posted by Diman777
Посмотреть сообщение
Когда ты используешь AddStaticPickup, то ты не сможешь узнать ид созданного пикапа, сама ф-ия такая изначально. А ид нужно знать для того, чтобы что-то сделать когда игрок наступит на какой-то пикап, для этого есть колбэк OnPlayerPickUpPickup. Если у тебя стример какой-то, то там по-любому есть все нужные тебе ф-ии для работы.
Получается, только через CreatePickup можно реализовать?
Reply

Quote:
Originally Posted by Shram
Посмотреть сообщение
Получается, только через CreatePickup можно реализовать?
Да, а что в этом плохого.
Reply

Каким образом можно запретить игрокам доставать оружие в интерьерах?
Reply

Quote:
Originally Posted by Shram
Посмотреть сообщение
Каким образом можно запретить игрокам доставать оружие в интерьерах?
PHP код:
public OnPlayerUpdate(playerid)
{
    if (
GetPlayerInterior(playerid) != && GetPlayerWeapon(playerid) != 0) {
        
SetPlayerArmedWeapon(playerid0);
    }
    return 
1;

Reply

Quote:
Originally Posted by ZiGGi
Посмотреть сообщение
PHP код:
public OnPlayerUpdate(playerid)
{
    if (
GetPlayerInterior(playerid) != && GetPlayerWeapon(playerid) != 0) {
        
SetPlayerArmedWeapon(playerid0);
    }
    return 
1;

PHP код:
public OnPlayerUpdate(playerid)
{
    if (
GetPlayerInterior(playerid) && GetPlayerWeapon(playerid)) {
        
SetPlayerArmedWeapon(playerid0);
    }
    return 
1;

Reply

ахах, и в чём разница?) Разве что операторов стало меньше
Reply

Ребят, как чит слапающий этот проверить? Никто ач на эти слапы игроков не делал?
Reply

Quote:
Originally Posted by OneHitWonder
Посмотреть сообщение
Ребят, как чит слапающий этот проверить? Никто ач на эти слапы игроков не делал?
что за чит?
Reply


Forum Jump:


Users browsing this thread: 19 Guest(s)