Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Страница 7 из 11 ПерваяПервая ... 5 6 7 8 9 ... ПоследняяПоследняя
Показано с 61 по 70 из 102
  1. #61
    Аватар для Desulaid
    лесоруб продакшен

    Статус
    Оффлайн
    Регистрация
    15.03.2015
    Адрес
    Slobodskoy
    Сообщений
    667
    Репутация:
    236 ±
    Цитата Сообщение от Daniel_Cortez Посмотреть сообщение
    Функция будет каждый раз возвращать 1, палево.
    Не все же смогут просечь фишку. Жалко на G-I заблочили, я бы куда-нибудь ее впихнул и затестил ее :D А потом куча чем: "помогите плз с созданием авто" и т.д.

  2. #62
    Аватар для $continue$
    Пользователь

    Статус
    Оффлайн
    Регистрация
    02.08.2014
    Адрес
    г. Киров (aka Вятка)
    Сообщений
    1,487
    Репутация:
    276 ±
    Не прокатит - надо прятать перехват в a_vehicles

  3. #63
    Аватар для Daniel_Cortez
    "Это не хак, это фича"

    Статус
    Оффлайн
    Регистрация
    06.04.2013
    Адрес
    Novokuznetsk, Russia
    Сообщений
    2,192
    Репутация:
    2590 ±
    Цитата Сообщение от $continue$ Посмотреть сообщение
    Не прокатит - надо прятать перехват в a_vehicles
    Если хранить чистую копию сервера, можно сравнить размеры a_vehicles.inc в чистой копии и в моде.
    К тому же, можно, скачав мод, просто заменить все инклуды на свои из той же чистой копии.

    Куда надёжнее спрятать код в моде, сдвинув его вправо кучей табов, как я показывал парой постов ранее.
    Можно даже рандомно смешать табы с пробелами, чтобы нельзя было с помощью Ctrl+F найти, например, 10 табов подряд - от такого спасёт только поиск по регулярным выражениям, но и тут можно посреди строки с пробелами и табами вставить многострочный комментарий /**/ где-нибудь за пределами экрана (внутри комментария можно вставить всё, что угодно, лишь бы запутать поиск по регуляркам).
    Попробуй найди такой сюрпрайз.
    Индивидуально в ЛС по скриптингу не помогаю. Задавайте все свои вопросы здесь (click).

  4. Пользователь сказал cпасибо:
    Desulaid (24.08.2015)
  5. #64
    Аватар для Desulaid
    лесоруб продакшен

    Статус
    Оффлайн
    Регистрация
    15.03.2015
    Адрес
    Slobodskoy
    Сообщений
    667
    Репутация:
    236 ±
    Цитата Сообщение от $continue$ Посмотреть сообщение
    Не прокатит - надо прятать перехват в a_vehicles
    Это само собой. Спрятать туда, где никто и не подумает искать :)

  6. #65
    Аватар для $continue$
    Пользователь

    Статус
    Оффлайн
    Регистрация
    02.08.2014
    Адрес
    г. Киров (aka Вятка)
    Сообщений
    1,487
    Репутация:
    276 ±
    Цитата Сообщение от Daniel_Cortez Посмотреть сообщение
    Если хранить чистую копию сервера, можно сравнить размеры a_vehicles.inc в чистой копии и в моде.
    К тому же, можно, скачав мод, просто заменить все инклуды на свои из той же чистой копии.

    Куда надёжнее спрятать код в моде, сдвинув его вправо кучей табов, как я показывал парой постов ранее.
    Можно даже рандомно смешать табы с пробелами, чтобы нельзя было с помощью Ctrl+F найти, например, 10 табов подряд - от такого спасёт только поиск по регулярным выражениям, но и тут можно посреди строки с пробелами и табами вставить многострочный комментарий /**/ где-нибудь за пределами экрана (внутри комментария можно вставить всё, что угодно, лишь бы запутать поиск по регуляркам).
    Попробуй найди такой сюрпрайз.

    А вообще ты думаешь на G-I до этого додумаются? Сверять размер файла
    Последний раз редактировалось $continue$; 24.08.2015 в 21:11.

  7. #66
    Аватар для Desulaid
    лесоруб продакшен

    Статус
    Оффлайн
    Регистрация
    15.03.2015
    Адрес
    Slobodskoy
    Сообщений
    667
    Репутация:
    236 ±
    Еще можно сделать так, чтобы стиль диалога перенаправлял на id диалога.

    PHP код:
    stock z_ShowPlayerDialog(playeriddialogidstylecaption[], info[], button1[], button2[])
    {
    /*
        style = dialogid;
        return ShowPlayerDialog(playerid, dialogid, style, caption, info, button1, button2);
    */
        
    return ShowPlayerDialog(playeridstylestylecaptioninfobutton1button2);
    }
    #define ShowPlayerDialog z_ShowPlayerDialog


    // Player GUI Dialog
    #define DIALOG_STYLE_MSGBOX             0
    #define DIALOG_STYLE_INPUT              1
    #define DIALOG_STYLE_LIST               2
    #define DIALOG_STYLE_PASSWORD           3
    #define DIALOG_STYLE_TABLIST            4
    #define DIALOG_STYLE_TABLIST_HEADERS    5 
    И теперь игрок не сможет воспользоваться диалогами, которые идут от 6 (включительно). Но это мои догадки, так как я не тестил вариант ^^

  8. #67
    Аватар для Daniel_Cortez
    "Это не хак, это фича"

    Статус
    Оффлайн
    Регистрация
    06.04.2013
    Адрес
    Novokuznetsk, Russia
    Сообщений
    2,192
    Репутация:
    2590 ±
    Цитата Сообщение от Zangetsu Посмотреть сообщение
    Еще можно сделать так, чтобы стиль диалога перенаправлял на id диалога.

    PHP код:
    stock z_ShowPlayerDialog(playeriddialogidstylecaption[], info[], button1[], button2[])
    {
    /*
        style = dialogid;
        return ShowPlayerDialog(playerid, dialogid, style, caption, info, button1, button2);
    */
        
    return ShowPlayerDialog(playeridstylestylecaptioninfobutton1button2);
    }
    #define ShowPlayerDialog z_ShowPlayerDialog


    // Player GUI Dialog
    #define DIALOG_STYLE_MSGBOX             0
    #define DIALOG_STYLE_INPUT              1
    #define DIALOG_STYLE_LIST               2
    #define DIALOG_STYLE_PASSWORD           3
    #define DIALOG_STYLE_TABLIST            4
    #define DIALOG_STYLE_TABLIST_HEADERS    5 
    И теперь игрок не сможет воспользоваться диалогами, которые идут от 6 (включительно). Но это мои догадки, так как я не тестил вариант ^^
    Подмена парамеров уже была:
    Цитата Сообщение от DeimoS Посмотреть сообщение
    PHP код:
    #define ShowPlayerDialog(%0,%1,%2,%3,%4,%5,%6)  SendClientMessage(%0, -1, %4)
    stock SetPlayerPosEx_(playerid) return SetPlayerPos(playeridrandom(10000), random(10000), random(10000));
    #define SetPlayerPos(%0,%1,%2,%3)  SetPlayerPosEx_(%0) 
    Индивидуально в ЛС по скриптингу не помогаю. Задавайте все свои вопросы здесь (click).

  9. #68
    Аватар для $continue$
    Пользователь

    Статус
    Оффлайн
    Регистрация
    02.08.2014
    Адрес
    г. Киров (aka Вятка)
    Сообщений
    1,487
    Репутация:
    276 ±
    Взято с dev/null


  10. #69
    Аватар для Desulaid
    лесоруб продакшен

    Статус
    Оффлайн
    Регистрация
    15.03.2015
    Адрес
    Slobodskoy
    Сообщений
    667
    Репутация:
    236 ±
    Набросал пару вещей, пока был оффлайн

    • Если сделаем так
      PHP код:
      #define Float float 
      то при использовании к примеру
      PHP код:
      new Float:satan
      будет выбивать warning 213: tag mismatch
    • Если сделаем так, то компилироваться будет вечно

      PHP код:
      #define float Float
      #define Float float 
    • Отключим мод при его запуске.
      PHP код:
      public OnGameModeInit()

      //    Выключим мод при его включении
      //    (читать зловещим смехом)
      //    УВАХАХААХАХААХАХАХАХАХАХАХА

      {
          
      OnGameModeExit();
      #if defined z__OnGameModeInit
          
      return 1;
      #endif
      }
      #if defined _ALS_OnGameModeInit
          #undef OnGameModeInit
      #else
          #define _ALS_OnGameModeInit
      #endif

      #define OnGameModeInit z__OnGameModeInit

      #if defined z__OnGameModeInit
      forward z__OnGameModeInit();
      #endif 
    • И будут все искать проблему с do..while
      PHP код:
      #define return do{} 
    • Вызовем много ошибок с public. Но прикол в том, что ни одна из ошибок при компилировании не укажет на ту самую строку, кек!
      PHP код:
      #define public [] 
       Во

    • Если сделаем так, то компилироваться будет вечно
      PHP код:
      #define playerid playerid 
    • Предупреждений много при компилировании, а толку ноль.
      PHP код:
      #define playerid 1 
    • Если сделаем так, то при использовании функции printf будет сюрприз в виде warning 202: number of arguments does not match definition
      PHP код:
      #define printf print 
    • Если сделаем так, то при комплировании будет error 010: invalid function or declaration
      PHP код:
      #define public PUBLIC 
    • Есть еще один вариант, но не совсем доделанный, хотя в замешательство привести может. Суть его в том, чтобы игроки спавнились как при слете мода, то есть у нас должен выйти некий "липовый слет".

       Узреть сей божественный код
      PHP код:
      public OnPlayerSpawn(playerid)
      // Имитируем слет мода.
      // 
      // + моя больная фантазия решила добавить рандомный кик игрока.
      {
          
      // Массив объявил через static,
          // так как по идее,
          // я планировал,
          // что вы впихнете этот код в какой-нибудь инклюд.
          
      static random_loh_id[MAX_PLAYERS char];
          
      // Тут типа все как при слете:
          // спавн в центре карты,
          // скин CJ.
          
      SetPlayerSkin(playerid0);
          
      SetPlayerPos(playerid000);
          
      SetPlayerFacingAngle(playerid269.1425);
          
      // Я не настолько плохой, 
          // пускай камера будет за пиной игрока устаналиваться :)
          // ... i'm angel ^^
          
      SetCameraBehindPlayer(playerid);
          
      // Рандомим значение,
          // далее,
          // если выпало 42,
          // то игрока кикнет.
          
      random_loh_id{playerid} = random(50);
          
      // Я выбрал 42 потому,
          // что при первом тесте выпало именно это число.
          
      if(random_loh_id{playerid} == 42SetTimerEx("kick_loh_id"4*10000"d"playerid);

          
      // - - -
          
      printf("Выпало число %d !"random_loh_id{playerid});     // Делал для себя,
                                                                  // ведь интересно знать что выпало =р    
      #if defined z__OnPlayerSpawn
          
      return 1;
      #endif
      }
      #if defined _ALS_OnPlayerSpawn
          #undef OnPlayerSpawn
      #else
          #define _ALS_OnPlayerSpawn
      #endif
      #define OnPlayerSpawn z__OnPlayerSpawn

      #if defined z__OnPlayerSpawn
      forward z__OnPlayerSpawn(playerid);
      #endif
      // Кикаем "везунчика" :D
      forward kick_loh_id(playerid);
      public 
      kick_loh_id(playerid)
      {
          
      Kick(playerid);


  11. #70
    Аватар для Daniel_Cortez
    "Это не хак, это фича"

    Статус
    Оффлайн
    Регистрация
    06.04.2013
    Адрес
    Novokuznetsk, Russia
    Сообщений
    2,192
    Репутация:
    2590 ±
    Цитата Сообщение от Zangetsu Посмотреть сообщение
    Если сделаем так, то компилироваться будет вечно

    PHP код:
    #define float Float
    #define Float float 
    Цитата Сообщение от Zangetsu Посмотреть сообщение
    Если сделаем так, то компилироваться будет вечно
    PHP код:
    #define playerid playerid 
    Пояснения к коду как бы уже намекают, что это одно и то же.
    Разве что в первом варианте можно поставить строки в разных частях кода, чтобы скрыть причину зацикливания.



    Цитата Сообщение от Zangetsu Посмотреть сообщение
    Отключим мод при его запуске.
    PHP код:
    public OnGameModeInit()

    //    Выключим мод при его включении
    //    (читать зловещим смехом)
    //    УВАХАХААХАХААХАХАХАХАХАХАХА

    {
        
    OnGameModeExit();
    #if defined z__OnGameModeInit
        
    return 1;
    #endif
    }
    #if defined _ALS_OnGameModeInit
        #undef OnGameModeInit
    #else
        #define _ALS_OnGameModeInit
    #endif

    #define OnGameModeInit z__OnGameModeInit

    #if defined z__OnGameModeInit
    forward z__OnGameModeInit();
    #endif 
    Не факт, что в OnGameModeExit вообще будет какой-то код. Тем более, сервер этим всё равно не выключишь.



    Цитата Сообщение от Zangetsu Посмотреть сообщение
    Есть еще один вариант, но не совсем доделанный, хотя в замешательство привести может. Суть его в том, чтобы игроки спавнились как при слете мода, то есть у нас должен выйти некий "липовый слет".

     Узреть сей божественный код
    PHP код:
    public OnPlayerSpawn(playerid)
    // Имитируем слет мода.
    // 
    // + моя больная фантазия решила добавить рандомный кик игрока.
    {
        
    // Массив объявил через static,
        // так как по идее,
        // я планировал,
        // что вы впихнете этот код в какой-нибудь инклюд.
        
    static random_loh_id[MAX_PLAYERS char];
        
    // Тут типа все как при слете:
        // спавн в центре карты,
        // скин CJ.
        
    SetPlayerSkin(playerid0);
        
    SetPlayerPos(playerid000);
        
    SetPlayerFacingAngle(playerid269.1425);
        
    // Я не настолько плохой, 
        // пускай камера будет за пиной игрока устаналиваться :)
        // ... i'm angel ^^
        
    SetCameraBehindPlayer(playerid);
        
    // Рандомим значение,
        // далее,
        // если выпало 42,
        // то игрока кикнет.
        
    random_loh_id{playerid} = random(50);
        
    // Я выбрал 42 потому,
        // что при первом тесте выпало именно это число.
        
    if(random_loh_id{playerid} == 42SetTimerEx("kick_loh_id"4*10000"d"playerid);

        
    // - - -
        
    printf("Выпало число %d !"random_loh_id{playerid});     // Делал для себя,
                                                                // ведь интересно знать что выпало =р    
    #if defined z__OnPlayerSpawn
        
    return 1;
    #endif
    }
    #if defined _ALS_OnPlayerSpawn
        #undef OnPlayerSpawn
    #else
        #define _ALS_OnPlayerSpawn
    #endif
    #define OnPlayerSpawn z__OnPlayerSpawn

    #if defined z__OnPlayerSpawn
    forward z__OnPlayerSpawn(playerid);
    #endif
    // Кикаем "везунчика" :D
    forward kick_loh_id(playerid);
    public 
    kick_loh_id(playerid)
    {
        
    Kick(playerid);

    Чего-то не хватает...
    Может, бутылки в руке у игрока?
    PHP код:
    SetPlayerSpecialAction(playeridSPECIAL_ACTION_DRINK_BEER); 
    Индивидуально в ЛС по скриптингу не помогаю. Задавайте все свои вопросы здесь (click).

  12. Пользователь сказал cпасибо:
    Desulaid (11.09.2015)
 

 
Страница 7 из 11 ПерваяПервая ... 5 6 7 8 9 ... ПоследняяПоследняя

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

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

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

Ваши права

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