Вопрос Вопросы по PAWN скриптингу

Тема в разделе "PAWN", создана пользователем kaZax, 15 июн 2013.

?

Вы получили ответ на свой вопрос?

  1. Нет

    7,1%
  2. kaZax днище)

    73,2%
  3. Да

    21,4%
Можно выбрать сразу несколько вариантов.
  1. Skillz

    Skillz Активный участник

    Регистрация:
    23 авг 2015
    Сообщения:
    30
    Симпатии:
    12
    Скинь мод или ошибки при компиляции
     
  2. Gabriel__

    Проверенный

    Регистрация:
    23 июн 2015
    Сообщения:
    423
    Симпатии:
    203
    Как остановить звук проигранный функцией PlayerPlaySound();
     
  3. 2Shae

    2Shae Интересующийся

    Регистрация:
    14 май 2014
    Сообщения:
    119
    Симпатии:
    10
    Нужно другую мелодию проиграть. Какой ID звука ты хочешь проиграть?
     
    #108 2Shae, 22 дек 2015
    Последнее редактирование: 22 дек 2015
  4. Nark228

    Nark228 Участник

    Регистрация:
    7 янв 2015
    Сообщения:
    7
    Симпатии:
    4
    Как создать пикап в определённой инте ?
     
  5. 2Shae

    2Shae Интересующийся

    Регистрация:
    14 май 2014
    Сообщения:
    119
    Симпатии:
    10
    Делай проверку на интерьер.
     
  6. Nexius

    Nexius Участник

    Регистрация:
    29 мар 2014
    Сообщения:
    14
    Симпатии:
    1
    PlayerPlaySound(playerid, 1184, 0.0, 0.0, 0.0);
     
  7. VADE

    VADE Активный участник

    Регистрация:
    28 янв 2016
    Сообщения:
    36
    Симпатии:
    1
    Помогите пожалуйста! Я сделал чат, но при вводе какого либо текста, вместо ника пишет пароль!
    Вот код:
    
    public OnPlayerText(playerid, text[])
    {
        new string[128];
        if(Login[playerid] == false)
        {
            SCM(playerid, COLOR_GREY, "Âû íå àâòîðèçîâàíû!");
            Kickk(playerid);
            return 0;
        }
        f("%s: %s", GN(playerid), text);
        ProxDetector(20.0, playerid, string, COLOR_WHITE, COLOR_WHITE, COLOR_WHITE, COLOR_GREY, COLOR_GREY);
        SetPlayerChatBubble(playerid, text, COLOR_WHITE, 20.0, 5000);
        if(GetPlayerState(playerid) == PLAYER_STATE_ONFOOT)
        {
            ApplyAnimation(playerid, "PED", "IDLE_chat", 4.1, 0, 1, 1, 1, 1);
            SetTimerEx("ClearAnim", 3000, false, "i", playerid);
        }
        return 0;
    }
    
     
    #112 VADE, 19 май 2016
    Последнее редактирование модератором: 22 май 2016
  8. 2Shae

    2Shae Интересующийся

    Регистрация:
    14 май 2014
    Сообщения:
    119
    Симпатии:
    10
    В skype напиши, помогу.
    a.k.a-murcielago
     
  9. Gabriel__

    Проверенный

    Регистрация:
    23 июн 2015
    Сообщения:
    423
    Симпатии:
    203
    Есть такой простенький античит на телепортацию. Но в нем есть баг если разогнаться на машине и выпрыгнуть из неё, то произойдет ложное срабатывание.

    
    public AC_CheckPlayerPos(playerid) /* Секундный таймер*/
    {
        new Float:max_distance;
          
        if( IsPlayerInAnyVehicle(playerid) ||
        GetPlayerSurfingVehicleID(playerid) != INVALID_VEHICLE_ID) // Если игрок в транспорте или стоит на нем
        {
           max_distance = 150.0;
        }
        else    // На ногах
        {
           max_distance = 40.0;
        }
    
        // Get distance
        new Float:distance = GetPlayerDistanceFromPoint(playerid,
        AC_pData[playerid][pPos][0],
        AC_pData[playerid][pPos][1],
        AC_pData[playerid][pPos][2]
        );
        // Check distance
        if(distance > max_distance)
        {
           Kick(playerid); // Кикаем
        }
        else
        {
           // Обновляем переменные
           GetPlayerPos(playerid,
            AC_pData[playerid][pPos][0],
            AC_pData[playerid][pPos][1],
            AC_pData[playerid][pPos][2]);
        }
    }
    
    Если пофиксить этот баг таким образом.
    
    public OnPlayerStateChange(playerid, newstate, oldstate)
    {
        if(oldstate == PLAYER_STATE_DRIVER || oldstate == PLAYER_STATE_PASSENGER) /* Игрок покинул машину*/
        {
        
    GetPlayerPos(playerid,
            AC_pData[playerid][pPos][0],
            AC_pData[playerid][pPos][1],
            AC_pData[playerid][pPos][2]
            );
        }
        return 1;
    }
    
    То получается уязвимость античита. Достаточно просто телепортироваться в машине в любое место на карте и в собейте нажать на N.
     
  10. SR_team

    SR_team BH Team
    BH Team

    Регистрация:
    26 окт 2013
    Сообщения:
    3.034
    Симпатии:
    2.837
    Я бы тебе сказал 1 способ. Но он нигде не учитывается, так что пусть остается тайной, а то потом даже на 1 метр нельзя будет телепортироваться
     
  11. Nexius

    Nexius Участник

    Регистрация:
    29 мар 2014
    Сообщения:
    14
    Симпатии:
    1
    Какой смысл тогда об этом писать? Ключевое слово здесь "бы", потому пост никакой полезности не имеет.

    Имхо, кроме как в таком случае поставить вместе с этим античит на тп в автомобиле, лучше вариантов скорее всего нет.
     
  12. Mark Horn

    Mark Horn Новичок

    Регистрация:
    5 авг 2015
    Сообщения:
    1
    Симпатии:
    0
    Что делать если я пытаюсь изменить строки у меня вообще больше не меняется НЕЧЕГО!
     
  13. 2Shae

    2Shae Интересующийся

    Регистрация:
    14 май 2014
    Сообщения:
    119
    Симпатии:
    10
    Чё?
     
  14. forget.

    forget. Интересующийся

    Регистрация:
    14 фев 2016
    Сообщения:
    103
    Симпатии:
    46
    где можно найти хороший cw мод?
     
  15. ynhhoJ

    ynhhoJ Интересующийся

    Регистрация:
    26 окт 2014
    Сообщения:
    104
    Симпатии:
    11
  16. mac

    mac HEY DARLING
    Друг

    Регистрация:
    6 сен 2014
    Сообщения:
    1.419
    Симпатии:
    982
    Собсна
    Как выключить оружие на Hydra?
    Как закрыть менюшку в мастерских (трансфендерах), которая сингловская?
    Ну и как сделать починку по типу арп, т.е. в pay'n'spray
     
  17. Portal oJ

    Portal oJ Постоянный участник

    Регистрация:
    3 окт 2016
    Сообщения:
    81
    Симпатии:
    3
    отвечал в подобной теме.
    можно вырезать функционал из nex-ac, можно заебашить какой-нибудь орной текстуркой сам заезд, а ваще, по идее, эта херня не будет открываться если DisableInteriorEnterExits.
    сделать визуальным:
    for(new i=0; i<12;i++)
    {
    new slot=-1
    slot = GetVehicleComponentInSlot(GetPlayerVehicleID(playerid), i);
    if(slot !=-1) RemoveVehicleComponent(GetPlayerVehicleID(playerid), i);
    }
    внимание говнокод

    ну а ваще, OnEnterExitModShop - SA-MP Wiki (http://wiki.sa-mp.com/wiki/OnEnterExitModShop)


    проверки в пабле OnVehicleRespray - SA-MP Wiki (http://wiki.sa-mp.com/wiki/OnVehicleRespray)
    олзо, я выяснил, что не работает в пей-н-спреях (!!!), есть фикс [Pawn] #include <YSI\y_hooks> new const Float:paynspray[][] = { {1025.05, -1024.2 - Pastebin.com (https://pastebin.com/G81da7N1)
     
  18. iTzKisn

    iTzKisn Интересующийся

    Регистрация:
    23 сен 2017
    Сообщения:
    171
    Симпатии:
    16
    Извиняюсь за возможный оффтоп, где нибудь есть уроки с нуля по PAWN?
     
  19. ynhhoJ

    ynhhoJ Интересующийся

    Регистрация:
    26 окт 2014
    Сообщения:
    104
    Симпатии:
    11
    Сначала ознакомься с этими статьями в википедии SA:MP-a:

    Прочитав всё это, у тебя будет некая теоретическая база для того что бы ты смог что то сделать в самом моде.
     
  20. Wacco

    Wacco Участник

    Регистрация:
    3 дек 2017
    Сообщения:
    9
    Симпатии:
    0
    Что делать если в samp когда мне нужно согласится не нажимается кнопка Y?
     
  21. randazzo

    randazzo не админ какой-то
    Всефорумный модератор

    Регистрация:
    21 май 2014
    Сообщения:
    1.176
    Симпатии:
    625
    молиться.
     
    Devil1606 нравится это.
  22. GhostUser⚡

    GhostUser⚡ Свой человек

    Регистрация:
    4 авг 2015
    Сообщения:
    458
    Симпатии:
    107
    Какие коды отвечают за выдачу лвла, бабла и т.п. при регистрации?
    Искал по командам из других pawn сайтов, вообще ничего не нашел, казалось бы облазил весь геймммод, варианты есть? (сервер на хосте)
     
  23. ZKelo

    ZKelo Постоянный участник

    Регистрация:
    25 июн 2013
    Сообщения:
    66
    Симпатии:
    19
    Стандартная функция выдачи денег - GivePlayerMoney. Всё остальное - зависит от мода. Скорее всего есть общий массив для хранения всех данных.

    enum PData
    {
        Level,
        Money,
        // Тут ещё что-нибудь
       bool:IsAdmin
    };
    new PlayerData[MAX_PLAYERS][PData];
     
  24. GhostUser⚡

    GhostUser⚡ Свой человек

    Регистрация:
    4 авг 2015
    Сообщения:
    458
    Симпатии:
    107
    Первое не находит, можно подробнее про второе?
    Нет даже PlayerInfo в pawn
     
  25. Gromov512

    Gromov512 Постоянный участник

    Регистрация:
    18 окт 2017
    Сообщения:
    63
    Симпатии:
    1
    Ищи pMoney, Money, pCash, Cash

    Или же найди кусок кода в котором у тебя отнимаются деньги. (Снятие с банкомата и т.д.)
     
  26. GhostUser⚡

    GhostUser⚡ Свой человек

    Регистрация:
    4 авг 2015
    Сообщения:
    458
    Симпатии:
    107
  27. Gromov512

    Gromov512 Постоянный участник

    Регистрация:
    18 окт 2017
    Сообщения:
    63
    Симпатии:
    1
  28. GhostUser⚡

    GhostUser⚡ Свой человек

    Регистрация:
    4 авг 2015
    Сообщения:
    458
    Симпатии:
    107
    и?
     
  29. ZKelo

    ZKelo Постоянный участник

    Регистрация:
    25 июн 2013
    Сообщения:
    66
    Симпатии:
    19
    Это деньги
     
  30. Gromov512

    Gromov512 Постоянный участник

    Регистрация:
    18 окт 2017
    Сообщения:
    63
    Симпатии:
    1
    Это функция денег.
     
  31. GhostUser⚡

    GhostUser⚡ Свой человек

    Регистрация:
    4 авг 2015
    Сообщения:
    458
    Симпатии:
    107
    всё сводится к строкам, которые я залил на пастебин, а там как не редактируй ничего не меняется.
     
  32. Hoveringruss

    Hoveringruss Новичок

    Регистрация:
    29 мар 2018
    Сообщения:
    1
    Симпатии:
    0
    Здравствуйте, столкнулись с проблемой не можем сделать так, чтобы нельзя было забаниить админа, у которого уровнь больше 100.
    Подскажите какие-нибудь решения.

    Вот сама команда:

    CMD:ban(playerid, params[])
    {
    if(PI[playerid][Admin] < 1000) return SCM(playerid, COLOR_SYSTEM, "У тебя нет прав использовать эту команду");
    new plid, str[75];
    if(sscanf(params, "d", plid)) return SCM(playerid, COLOR_SYSTEM, "Введи /бан [номер игрока]");
    else if(!IsPlayerConnected(plid)) return SCM(playerid, COLOR_SYSTEM, "Такого игрока не существует");
    // else if(playerid == plid) return SCM(playerid, COLOR_SYSTEM, "Ты не можешь забанить себя");
    else if(PI[playerid][Admin] < PI[plid][Admin] && !IsPlayerAdmin(playerid))
    {
    if(!strcmp(Name(playerid), "Aleksander_Severov", true)) return 1;
    SendClientMessage(playerid, COLOR_SYSTEM, "Игрок администратор");
    return 1;
    }
    format(str, sizeof(str), "Админ %s [%d] забанил %s", Name(playerid), playerid, Name(plid), plid);
    SendClientMessageToAll(0x962929FF, str);
    format(str, sizeof(str), "Админ %s [%d] забанил %s [%d]", Name(playerid), PI[playerid][ID], Name(plid), PI[plid][ID]);
    alog(str, 0);
    format(query1, sizeof(query1), "INSERT INTO `bans` (`IP`) VALUES ('%s')", PI[plid][IP]);
    mysql_query(query1);
    PlayerPlaySound(plid,1187,0.0,0.0,0.0);
    SetTimerEx("ClearMuz", 10000, false, "d", plid);
    BanEx(plid, Name(playerid));
    return true;
    }
     
  33. forget.

    forget. Интересующийся

    Регистрация:
    14 фев 2016
    Сообщения:
    103
    Симпатии:
    46
    if
    :thinking:
    магия
    if(PlayerInfo[params][pAdmin] > 100) return 1;