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: Скриптинг курилка - ZiGGi - 04.03.2015

OstGot, ты уверен, что использование макросов в твоём случае необходимо? Их нужно использовать с умом и мне что-то подсказывает, что в твоём случае без них код будет выглядеть лучше. Хотя я почти ничего не понял, ты лучше код покажи, конкретные примеры.


Re: Скриптинг курилка - Makar007 - 04.03.2015

Quote:
Originally Posted by Makar007
Посмотреть сообщение
Как определить есть ли на заданных координатах x,y,z машина?
Срочно нужна помощь

Т.е мне нужно узнать свободно ли место для размещении там машины

Сейчас код выглядит так

PHP код:
for (new 0sizeof(arrCarImpoundPos); ++)
{
    for (new 
0!= MAX_DYNAMIC_CARS++) if (CarData[i][carExists]) {
               
тут хочу проверять среди всех машин свободно или нет
            
continue;
    }
        
тут код если место свободно 
    
break;




Re: Скриптинг курилка - [Saint] - 04.03.2015

Quote:
Originally Posted by Makar007
Посмотреть сообщение
Срочно нужна помощь
https://sampwiki.blast.hk/wiki/GetVehiclePos


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

Quote:
Originally Posted by Makar007
Посмотреть сообщение
Срочно нужна помощь

Т.е мне нужно узнать свободно ли место для размещении там машины

Сейчас код выглядит так

PHP код:
for (new 0sizeof(arrCarImpoundPos); ++)
{
    for (new 
0!= MAX_DYNAMIC_CARS++) if (CarData[i][carExists]) {
               
тут хочу проверять среди всех машин свободно или нет
            
continue;
    }
        
тут код если место свободно 
    
break;

PHP код:
stock GetVehicleIdByCoord(Float:xFloat:yFloat:z)
{
    new 
Float:veh_pos[3];
    for (new 
1<= MAX_VEHICLESi++) {
        if (
GetVehiclePos(iveh_pos[0], veh_pos[1], veh_pos[2])) {
            if (
GetDistanceBetweenPoints(veh_pos[0], veh_pos[1], veh_pos[2], xyz) < 2.0) {
                return 
1;
            }
        }
    }
    return 
0;
}
stock Float:GetDistanceBetweenPoints(Float:x1Float:y1Float:z1Float:x2Float:y2Float:z2)
{
    return 
VectorSize(x1-x2y1-y2z1-z2);

Наверное можно использовать GetVehicleDistanceFromPoint, но я не знаю что оно возвратит, если транспорта с этим ID нет.


Re: Скриптинг курилка - OstGot - 04.03.2015

Quote:
Originally Posted by ZiGGi
Посмотреть сообщение
OstGot, ты уверен, что использование макросов в твоём случае необходимо? Их нужно использовать с умом и мне что-то подсказывает, что в твоём случае без них код будет выглядеть лучше. Хотя я почти ничего не понял, ты лучше код покажи, конкретные примеры.
Ай, долгая история)

Я хотел реализовать что-то типо такого:
Если помимо моего "проекта" в моде задефайнены аналоги, с которыми возможен конфликт - нужно предупредить пользователя при запуске сервера.
Идею реализовывал примерно так:
pawn Код:
#define Prohibition "Для использования ***-** удалите следующий скрипт: %s"
#if defined _JB_included
    #define Prohibition_1 "JunkBuster"
#elseif defined _aat_included
    #define Prohibition_2 "Anti-Attack plugin"
//И ещё очень много подобного
#endif

public OnGameModeInit()
{
    #if defined Prohibition_1
        printf(Prohibition, Prohibition_1);
    #elseif defined Prohibition_2
        printf(Prohibition, Prohibition_2);
    #endif
    //Тут так же, очень много подобных условий
    return 1;
}
Мне самому не очень нравится такая реализация, вот и стал искать способ "улучшения" своего кода.


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

Quote:
Originally Posted by OstGot
Посмотреть сообщение
Ай, долгая история)

Я хотел реализовать что-то типо такого:
Если помимо моего "проекта" в моде задефайнены аналоги, с которыми возможен конфликт - нужно предупредить пользователя при запуске сервера.
Идею реализовывал примерно так:
pawn Код:
#define Prohibition "Для использования ***-** удалите следующий скрипт: %s"
#if defined _JB_included
    #define Prohibition_1 "JunkBuster"
#elseif defined _aat_included
    #define Prohibition_2 "Anti-Attack plugin"
//И ещё очень много подобного
#endif

public OnGameModeInit()
{
    #if defined Prohibition_1
        printf(Prohibition, Prohibition_1);
    #elseif defined Prohibition_2
        printf(Prohibition, Prohibition_2);
    #endif
    //Тут так же, очень много подобных условий
    return 1;
}
Мне самому не очень нравится такая реализация, вот и стал искать способ "улучшения" своего кода.
Ты выводишь по одной ошибке? Тогда твой код можно представить в таком виде:
PHP код:
#define Prohibition "Для использования ***-** удалите следующий скрипт: %s"
#if defined _JB_included
    #define Prohibition_System "JunkBuster"
#elseif defined _aat_included
    #define Prohibition_System "Anti-Attack plugin"
#endif
public OnGameModeInit()
{
    
#if defined Prohibition_System
        
printf(ProhibitionProhibition_System);
    
#endif
    
return 1;

Но вот зачем выводить сообщение об ошибке при запуске сервера?
Лучше выводить ошибку при компиляции:
PHP код:
#if defined _JB_included
    #error Remove "JunkBuster" for use ***
#elseif defined _aat_included 
    #error Remove "Anti-Attack plugin" for use ***
#endif 



Re: Скриптинг курилка - OstGot - 04.03.2015

Quote:
Originally Posted by ZiGGi
Посмотреть сообщение
Но вот зачем выводить сообщение об ошибке при запуске сервера?
Лучше выводить ошибку при компиляции:
PHP код:
#if defined _JB_included
    #error Remove "JunkBuster" for use ***
#elseif defined _aat_included 
    #error Remove "Anti-Attack plugin" for use ***
#endif 
Не так всё просто) У меня мультиязычный проект, и как можно больше текста нужно сделать доступным на разных языках..
П.с. А за подсказку спасибо, я понимал, что можно сократить код, но как, чего-то додумать не мог)


Re: Скриптинг курилка - Urukhay - 07.03.2015

Как лучше осуществлять взаимодействие игрока с недвижимостью (3 штуки всего): создавать для покупки каждой недвижимости индивидуальный диалог или создавать общий диалог с распознаванием недвижимости?


Re: Скриптинг курилка - SoNikMells - 07.03.2015

Знающие и те, кто опробовал sampgdk, вы бы не могли написать Урок по установке и настройке с скриншотами или видео + приложить к посту готовый пустой проект?
Очень буду благодарен, а то сам что то допереть не в состоянии, как правильно подключить данную библиотеку. На страничке Zeex не очень понял из-за плохой дружбы с английским.


Re: Скриптинг курилка - MarkoD - 07.03.2015

hi.all.
Парни проверьте у себя такой баг/крашер.
При выходе с водительского места, меняешь скин и крашит всех кто находиться рядом.
Есть ли у вас такой баг? сообщали ли об этот SA:MP Team?


Re: Скриптинг курилка - SoNikMells - 08.03.2015

Эх, а я так привык к PLID


Re: Скриптинг курилка - eXtAbLE - 08.03.2015

Почему то,когда создаю макрос SendMes,не компилируется,при этом я удаляю сток,можно ли написать это через сток,только как в макросе,без всяких #emit?
Кстати,я когда создаю pawn.cfg с -d3,при использовании команды в которой есть SendMes сервер крашится,без pawn.cfg нет.Долго искал в чем проблема


Re: Скриптинг курилка - SoNikMells - 08.03.2015

http://forum.sa-mp.com/showpost.php?...12813&langid=4


Re: Скриптинг курилка - eXtAbLE - 08.03.2015

Ой спасибо,в прошлые разы дефайнил,и не компилило,а твой рабочий!


Re: Скриптинг курилка - Urukhay - 09.03.2015

Можно ли прикрепить к объекту несколько объектов, а потом этот объект с другими объектами прикрепить на персонажа?


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

Попробуй и расскажешь.


Re: Скриптинг курилка - eXtAbLE - 09.03.2015

MoveObject(gate, posx+8.49414, posy-17.94568, posz+2.5054, 0.001, posrx, posry, posrz);//âîðîòà
Почему ворота не двигаются плавно? С другими всё нормально было


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

Попробуй увеличить 0.001 до 0.025, например.


Re: Скриптинг курилка - eXtAbLE - 09.03.2015

0.1 делал даже,ничего не помогает


Re: Скриптинг курилка - Makar007 - 09.03.2015

Возможно ли без создания еще одно TD сделать обводку у бокса?
Есть текстовый TD с использованием коробки, возможно ли добавить обводку у коробки?