SA-MP Forums Archive
Скриптинг курилка - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Русский/Russian (https://sampforum.blast.hk/forumdisplay.php?fid=32)
+---- Thread: Скриптинг курилка (/showthread.php?tid=111279)



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
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 выполняем нужные действия и опять запускаем движение.


Re: Скриптинг курилка - ZiGGi - 27.10.2016

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().


Re: Скриптинг курилка - OKStyle - 27.10.2016

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


Re: Скриптинг курилка - Romz - 27.10.2016

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


Re: Скриптинг курилка - ZiGGi - 27.10.2016

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

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


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) != && GetPlayerWeapon(playerid) != 0) {
        
SetPlayerArmedWeapon(playerid0);
    }
    return 
1;




Re: Скриптинг курилка - Mutha_X - 30.10.2016

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;




Re: Скриптинг курилка - Diman777 - 30.10.2016

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


Re: Скриптинг курилка - OneHitWonder - 31.10.2016

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


Re: Скриптинг курилка - Romz - 31.10.2016

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