Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Показано с 1 по 4 из 4
  1. #1
    Аватар для Skyline
    Пользователь

    Статус
    Оффлайн
    Регистрация
    31.01.2014
    Адрес
    Россия
    Сообщений
    304
    Репутация:
    2 ±

    Не обновляются деньги.

    Здравствуйте, когда сажаешь игрока через команду, ни у меня ни у игрока не отнимаются сразу деньги, только при перезаходе, почему, не могу понять. Подскажите.

     Код
    PHP код:
    CMD:arrest(playeridparams[])
    {
        if(!
    player_is_authorized{playerid})
            return 
    SendClientMessage(playeridCOLOR_GREY, !"Вы не авторизировались.");

        if(!
    IsACop(playerid))
            return 
    SendClientMessage(playeridCOLOR_GREY, !"Ты не можешь использовать эту команду.");
            
        new 
    id,
            
    price,
            
    time,
             
    name_rang[15];
            
        if(
    sscanf(params"udddd"idpricetime))
            return 
    SendClientMessage(playeridCOLOR_GREY, !" Использование: /arrest [ID/Ник] [Штраф] [Время]");
            
        if(
    IsPlayerInRangeOfPoint(playerid,4.01527.5050, -1683.87165.8906) || IsPlayerInRangeOfPoint(playerid,4.0, -1600.0990675.6537, -5.2422) || IsPlayerInRangeOfPoint(playerid,4.02241.79612434.489010.8203) || IsPlayerInRangeOfPoint(playerid,4.0,-1514.3807478.71997.1809) || IsPlayerInRangeOfPoint(playerid,4.02585.85282780.494410.8203))
        {
            if(
    GetPlayerVehicleID(playerid) != GetPlayerVehicleID(id))
                return 
    SendClientMessage(playeridCOLOR_GREY, !"Этот игрок не в твоей машине.");
                
            if(
    id == playerid)
                return 
    SendClientMessage(playeridCOLOR_GREY, !"Невозможное действие.");
                
               if(
    == PlayerBesideTheOther(4.0playeridid))
                return 
    SendClientMessage(playeridCOLOR_GREY, !"Игрок слишком далеко от тебя.");
                
            if(
    IsACop(id))
                return 
    SendClientMessage(playeridCOLOR_GREY, !"Ты не можешь посадить законника.");
                
            if(
    pInfo[id][pWanted] == 0)
                return 
    SendClientMessage(playeridCOLOR_GREY, !"Игрок не в розыске.");
                
            if(
    price 500 || price 10000)
                return 
    SendClientMessage(playeridCOLOR_GREY, !"Штраф от 500 до 10000.");

            if(
    time 10 || time 60)
                return 
    SendClientMessage(playeridCOLOR_GREY, !"Время от 10 до 60.");
                
            switch(
    pInfo[playerid][pMember])
            {
                case 
    1name_rang "Сотрудник LSPD";
                case 
    2name_rang "Агент F.B.I.";
                case 
    3name_rang "Служащий Армии";
                case 
    10name_rang "Сотрудник LVPD";
            }
            switch(
    pInfo[playerid][pMember])
            {
                case 
    1pInfo[id][pJail] = 1;
                case 
    2pInfo[id][pJail] = 2;
                case 
    3pInfo[id][pJail] = 3;
                case 
    10pInfo[id][pJail] = 10;
            }
            
    pInfo[id][pJail_Time] = time*60;

            if(
    pInfo[id][pSex] == 1SetPlayerSkin(id268);
            else 
    SetPlayerSkin(id63);

            static const 
    fmt_str[] = "« %s %s арестовал%s подозревае%s %s на %d минут »";
            new 
    string[sizeof(fmt_str) -12 + (MAX_PLAYER_NAME*2) - 6];
            
    format(stringsizeof stringfmt_strname_rangpInfo[playerid][pName], pInfo[playerid][pSex] == ? ("") : ("a"), pInfo[id][pSex] == ? ("мого") : ("мую"), pInfo[id][pName], time);
            
    SendClientMessageToAll(0x2641FEAAstring);

            
    pInfo[id][pWanted] = 0;
            
    SetPlayerWantedLevel(idpInfo[id][pWanted]);

            
    format(stringsizeof string"Вас посадили в тюрьму на %d минут. Залог: Невозможен."time);
            
    SendClientMessage(idCOLOR_LBLUEstring);

            
    GivePlayerMoney(id, -price);
            
    pInfo[id][pMoney] -= price;

            
    GivePlayerMoney(idprice);
            
    pInfo[playerid][pMoney] += price;
            
            
    format(stringsizeof(string), "UPDATE `accounts` SET `money` = '%i',  `jail` = '%i', `jail_time` = '%i' WHERE `id` = '%i'",
                                            
    pInfo[id][pMoney], pInfo[id][pJail], pInfo[id][pJail_Time], pInfo[id][pID]);
              
    mysql_tquery(mysql_connect_IDstring"""");
              
    SpawnPlayer(id);
        }
        else return 
    SendClientMessage(playeridCOLOR_GREY, !"Вы не у места арреста.");
        return 
    true;


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

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    PHP код:
            GivePlayerMoney(id, -price); 
            
    pInfo[id][pMoney] -= price

            
    GivePlayerMoney(idprice); 
            
    pInfo[playerid][pMoney] += price
    ====>
    PHP код:
            GivePlayerMoney(id, -price); 
            
    pInfo[id][pMoney] -= price

            
    GivePlayerMoney(playeridprice); 
            
    pInfo[playerid][pMoney] += price
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

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

    Steve Pavlina

  3. Пользователь сказал cпасибо:
    Skyline (15.07.2018)
  4. #3
    Аватар для Skyline
    Пользователь

    Статус
    Оффлайн
    Регистрация
    31.01.2014
    Адрес
    Россия
    Сообщений
    304
    Репутация:
    2 ±
    Тюфу, точно. Невнимателен. Спасибо.

    Если можно, еще вопрос, по одной команде, чтобы тему лишний раз не создавать.
    PHP код:
    CMD:tazer(playerid)
    {
        if(!
    player_is_authorized{playerid})
            return 
    SendClientMessage(playeridCOLOR_GREY, !"Вы не авторизировались.");

        if(!
    IsACop(playerid))
            return 
    SendClientMessage(playeridCOLOR_GREY, !"Ты не законник.");
            
        if(
    IsPlayerInAnyVehicle(playerid))
            return 
    SendClientMessage(playeridCOLOR_GREY, !"В данный момент недоступно.");
        new
            
    suspect,
            
    string[(MAX_PLAYER_NAME*2)+20];

        if(
    Player_Tazer[suspect] > true)
            return 
    true;
            
        if(
    IsPlayerNearPlayer(playeridsuspect2))
        {
            if(
    IsACop(suspect))
                return 
    true;
                
              if(
    animation[suspect] ==  true)
                return 
    true;
                
            if(
    Player_Tazer[suspect] == true)
                return 
    SendClientMessage(playeridCOLOR_GREY, !"Игрок уже в тазере.");
                
            if(
    IsPlayerInAnyVehicle(suspect))
                return 
    SendClientMessage(playeridCOLOR_GREY, !"Игрок в транспорте.");
                
            
    format(stringsizeof(string), "%s бахнул тазером %s." ,pInfo[playerid][pName], pInfo[suspect][pName]);
            
    ProxDetector(15.0playeridstringCOLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
            
    ApplyAnimation(suspect"CRACK""crckdeth2"4.010000);
            
    Player_Tazer[suspect] = true;
            
    Player_Tazer_Time[suspect] = 10;
        }
        return 
    1;

    Срабатывает только на ID 0.

    Ну и в сек таймере:
    PHP код:
    if(Player_Tazer_Time[i] > 0)
            {
                
    Player_Tazer_Time[i]--;
                if(
    Player_Tazer_Time[i] <= 0)
                {
                    
    Player_Tazer[i] = false;
                    
    Player_Tazer_Time[i] = 0;
                      new 
    Floathealt;
                    
    GetPlayerHealth(ihealt);
                    if(
    healt <= 14.0)
                    {
                        
    animation[i] = true;
                        
    ApplyAnimation(i"CRACK""crckdeth2"4.010000);
                    }
                    else 
    ApplyAnimation(i"CARRY""crry_prtial"4.000000);
                    
                }
            } 
    Ударить могу только ID 0

  5. #4
    Аватар для Paradox
    Пользователь

    Статус
    Оффлайн
    Регистрация
    08.06.2015
    Адрес
    Запорожье
    Сообщений
    117
    Репутация:
    1 ±
    Правильно ибо у тебя suspect ровняется нулю.
    Присваивай в suspect самого ближнего игрока, там уж смотри сам, какая у тебя функция отвечает за это.
    И будет все работать.
    Последний раз редактировалось Paradox; 15.07.2018 в 01:36.

  6. Пользователь сказал cпасибо:
    Skyline (15.07.2018)
 

 

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

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

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

Ваши права

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