Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.

Реклама


**Как получить V.I.P** (Перейти)
Чтобы заказать рекламу на Pro-Pawn.Ru, обращайтесь в Skype.
Баннерная реклама 200руб/мес, Текстовая 100руб/мес.
Страница 1 из 4 123 ... ПоследняяПоследняя
Показано с 1 по 10 из 40

Тема: Макросы

  1. #1
    Аватар для Salvacore
    Инжунер-погромист

    Статус
    Оффлайн
    Регистрация
    10.05.2013
    Адрес
    Аҧсуа бызшәа
    Сообщений
    2,282
    Репутация:
    417 ±

    Макросы

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

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

     Инкремент переменной игрока (PVar)
    PHP код:
    #define GivePVarInt(%1,%2,%3) SetPVarInt(%1, %2, GetPVarInt(%1, %2) + %3) 

     Возвращение модуля числа
    PHP код:
    #define ABS(%0) (%0 < 0) ? (-(%0)) : (%0) 

     Создание паблика без указания forwardа
    PHP код:
    #define function %1(%2) forward %1(%2); public %1(%2) 

     Запуск таймера с указанием времени в секундах
    PHP код:
    #define SetTimerSec(%1,%2,%3) SetTimer(%1, 1000 * %2, %3) 

     Получение дня недели
    PHP код:
    #define DayOfWeek(%0,%1,%2) \ 
        
    (7000 + (%+ (%-= (14 - %1) / 12) + %- %100 + %400 + (31 * (%12 * (14 - %1) / 12 2)) / 12)) % 
    Пример использования
    PHP код:
    static const 
        
    DayNames[][] = 
        { 
            
    "Sunday"
            
    "Monday"
            
    "Tuesday"
            
    "Wednesday"
            
    "Thursday"
            
    "Friday"
            
    "Saturday" 
        



    new 
        
    year
        
    month
        
    day 


    getdate(yearmonthday); 

    print(
    DayNames[DayOfWeek(yearmonthday)]); 


     Ограничение количества патронов на оружие
    PHP код:
    #define WeaponRestrict(%0,%1,%2) \
        
    GetPlayerWeapon(%0) == %&& GetPlayerAmmo(%0) > %&& GivePlayerWeapon(%0, %1, -GetPlayerAmmo(%0) + %2
    Пример
    PHP код:
    if(WeaponRestrict(playerid38500))
        
    SendClientMessage(playerid, -1"Запрещено носить с собой более чем 500 патронов от минигана.");

    if(
    WeaponRestrict(playeridWEAPON_DEAGLE120))
        
    SendClientMessage(playerid, -1"Запрещено носить с собой более чем 120 патронов от пустынного орла."); 






     Спасибо
    Последний раз редактировалось Salvacore; 14.11.2014 в 17:09. Причина: HideSPD

  2. Пользователь сказал cпасибо:
    Unreal (14.11.2014)
  3. #2
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    3,908
    Репутация:
    1497 ±
    По-моему, это дело сугубо индивидуальное. Кому-то удобнее писать "SCM", вместе "SendClientMessage", а кому-то наоборот (например, мне. Ибо в первом случае теряется вся читабельность)
    Связаться со мной можно в личных сообщениях этой группы

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

  4. #3
    Аватар для wAx
    ¯\_(ツ)_/¯

    Статус
    Оффлайн
    Регистрация
    13.12.2013
    Сообщений
    373
    Репутация:
    143 ±
    PHP код:
    #define give_int(%1,%2,%3) SetPVarInt(%1,%2,GetPVarInt(%1,%2)+%3) 
    Прибавляет к pvar типа integer, указанное значение.

  5. Пользователь сказал cпасибо:
    Salvacore (15.05.2014)
  6. #4
    Аватар для wAx
    ¯\_(ツ)_/¯

    Статус
    Оффлайн
    Регистрация
    13.12.2013
    Сообщений
    373
    Репутация:
    143 ±
    PHP код:
    #define SFCM(%0,%1,%2) do{new _s[256];format(_s,256,%2);SendClientMessage(%0,%1,_s) ;}while(false) 
    Позволяет форматировать сообщения для игрока в 1 строку!
    P.S довольно старый, но полезный макрос

    Пример:
    PHP код:
    SFCM(playerid, -1"У вас на руках: $%d"GetPlayerMoney(playerid)); 
    Последний раз редактировалось wAx; 14.05.2014 в 14:43.

  7. #5
    Аватар для wAx
    ¯\_(ツ)_/¯

    Статус
    Оффлайн
    Регистрация
    13.12.2013
    Сообщений
    373
    Репутация:
    143 ±
    PHP код:
    #define swap(%0,%1) %0^=%1;%1^=%0;%0^=%1; 
    Макрос для обмена значений переменных

  8. #6
    Аватар для Seregamil
    Проверенный

    Статус
    Оффлайн
    Регистрация
    21.11.2013
    Сообщений
    561
    Репутация:
    272 ±
    new FALSE = false;
    зачем?
    #define SFCM(%0,%1,%2) do{new _s[256];format(_s,256,%2);SendClientMessage(%0,%1,_s) ;}while(FALSE)
    а потом удивляемся, откуда берутся быдлокодеры.

  9. Пользователь сказал cпасибо:
    Unreal (14.11.2014)
  10. #7
    Аватар для wAx
    ¯\_(ツ)_/¯

    Статус
    Оффлайн
    Регистрация
    13.12.2013
    Сообщений
    373
    Репутация:
    143 ±
    Цитата Сообщение от wAx Посмотреть сообщение
    PHP код:
    #define SFCM(%0,%1,%2) do{new _s[256];format(_s,256,%2);SendClientMessage(%0,%1,_s) ;}while(false) 
    Где? ;)

  11. #8
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    3,908
    Репутация:
    1497 ±
    Цитата Сообщение от wAx Посмотреть сообщение
    PHP код:
    #define SFCM(%0,%1,%2) do{new _s[256];format(_s,256,%2);SendClientMessage(%0,%1,_s) ;}while(false) 
    Позволяет форматировать сообщения для игрока в 1 строку!
    P.S довольно старый, но полезный макрос

    Пример:
    PHP код:
    SFCM(playerid, -1"У вас на руках: $%d"GetPlayerMoney(playerid)); 
    Эмм, при каждом использовании подробного макроса будет создаваться массив в 256 ячеек... Да и вообще, вряд ли Pawn прожуёт подобный код и не начнёт матюгаться


    Цитата Сообщение от wAx Посмотреть сообщение
    PHP код:
    #define swap(%0,%1) %0^=%1;%1^=%0;%0^=%1; 
    Макрос для обмена значений переменных
    Ну давайте теперь все инклюды от Y_Less'a разберём по строке
    Связаться со мной можно в личных сообщениях этой группы

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

  12. #9
    Аватар для Salvacore
    Инжунер-погромист

    Статус
    Оффлайн
    Регистрация
    10.05.2013
    Адрес
    Аҧсуа бызшәа
    Сообщений
    2,282
    Репутация:
    417 ±
    Update.

  13. #10
    Аватар для DOS-Protection
    Пользователь

    Статус
    Оффлайн
    Регистрация
    10.01.2014
    Сообщений
    30
    Репутация:
    6 ±
    Delete.
    Последний раз редактировалось DOS-Protection; 14.05.2014 в 22:18.

 

 
Страница 1 из 4 123 ... ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •