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

    Статус
    Оффлайн
    Регистрация
    27.05.2014
    Сообщений
    133
    Репутация:
    1 ±

    Помогите решить проблему с деньгами..

    Суть выписываю штраф.. Все нормально, только когда человек оплачивает штраф тот который я выписал, деньги забирает у меня, хотя должно у того кому выписали, проверку на ид сделал.


    new pdproverkafine; // ПД проверка fine запоминаем ид кто выписал штраф.

    PHP код:
    if(strcmp(cmd"/fine"true) == 0)
    {
        if(
    IsPlayerConnected(playerid))
        {
            if(
    Player[playerid][pOrganization] != 4) return SendClientMessage(playerid, -1"Вы не полицейский!");
            
    tmp strtok(cmdtextidx);
            if(!
    strlen(tmp)) return    SendClientMessage(playerid, -1"Введите: /fine [id] [цена] [причина]");
            
    giveplayerid ReturnUser(tmp);
            
    tmp strtok(cmdtextidx);
            if(!
    strlen(tmp)) return    SendClientMessage(playerid, -1"Введите: /fine [id] [цена] [причина]");
            new 
    moneys strval(tmp);
            if(
    moneys || moneys 2000) { SendClientMessage(playerid, -1"Нельзя меньше 1 и больше 20000 $"); return true; }
            if(
    IsPlayerConnected(giveplayerid))
            {
                if(
    giveplayerid != INVALID_PLAYER_ID)
                {
                    
    //if(Player[giveplayerid][pMoney] < 2000)  return SendClientMessage(playerid, -1, "У игрока недостаточно денег");
                    //if(Player[giveplayerid][pMoney] < 1999)
                    //if(Player[giveplayerid][pMoney] > 1999)
                    //{
                    //new moneyfine = GetPlayerMoney(giveplayerid,Player[giveplayerid][pMoney]);
                    //if(Player[giveplayerid][pMoney] < 2000) return SendClientMessage(playerid, -1, "У игрока недостаточно денег");
                    //if(giveplayerid == playerid) { SendClientMessage(playerid, -1, "Вы указали свой ID"); return true; }
                    
    new giveplayer[MAX_PLAYER_NAME];
                    new 
    sendername[MAX_PLAYER_NAME];
                    
    GetPlayerName(giveplayeridgiveplayersizeof(giveplayer));
                    
    GetPlayerName(playeridsendernamesizeof(sendername));
                    new 
    length strlen(cmdtext);
                    while ((
    idx length) && (cmdtext[idx] <= ' '))
                    {
                        
    idx++;
                    }
                    new 
    offset idx;
                    new 
    result[256];
                    while ((
    idx length) && ((idx offset) < (sizeof(result) - 1)))
                    {
                        
    result[idx offset] = cmdtext[idx];
                        
    idx++;
                    }
                    
    result[idx offset] = EOS;
                    if(!
    strlen(result))
                    {
                        
    SendClientMessage(playerid, -1"Введите: /fine [id] [цена] [причина]");
                        return 
    true;
                    }
                    
    Player[giveplayerid][pPdproverka] = 1;
                    
    //Player[giveplayerid][pFine] = moneys;
                    
    moneys Player[giveplayerid][pFine] = moneys;
                    
    pdproverkafine playerid;
                    
    format(stringsizeof(string), "*    Вы выписали штраф в размере "W"("W""W"%d$"W")"W". Причина: %s",Player[giveplayerid][pFine], (result));
                    
    SendClientMessage(playerid0x6495EDFFstring);
                    
    format(stringsizeof(string), "*    Офицер %s выписал вам штраф в размере "W"("W""W"%d$"W")"W". Причина: %s"sendernamePlayer[giveplayerid][pFine], (result));
                    
    SendClientMessage(giveplayerid0x6495EDFFstring);
                    
    SendClientMessage(giveplayerid, -1"((Введите: /afine, чтобы оплатить штраф))");
                    return 
    true;
                    
    //}
                
    }
            }

        }
        else return 
    SendClientMessage(playerid, -1"Игрок не найден");
        return 
    true;



    PHP код:
    CMD:afine(playeridparams[])
    {
        if(
    Player[playerid][pPdproverka] == 1)
        {
            
    SendClientMessage(playerid0x0091FFFF"Вы оплатили штраф");
            
            
    GivePlayerMoney(pdproverkafine, -Player[playerid][pFine]); // Дадим деньги  тот кто  прописал команду.

            //ResetPlayerMoney(playerid); // Спишим деньги
            
            //GivePlayerMoney(playerid, Player[playerid][pMoney]);
            
            
    Player[playerid][pFine] = 0;
            
    SavePlayer(playerid);
        }
        if(
    Player[playerid][pPdproverka] == 0)
        {
            
    SendClientMessage(playerid0x0091FFFF"Вам не выдавали штраф!");
        }
        return 
    1;


  2. #2
    Аватар для Айболит
    Пользователь

    Статус
    Оффлайн
    Регистрация
    27.05.2014
    Сообщений
    133
    Репутация:
    1 ±
    Все решил проблему....


    Сделал 2 переменных с записью ида, 1 игрока и 2.. Так же удалял деньги.

    И такую функцию.


    PHP код:
        Player[pdproverkafine][pMoney] += Player[pdproverkafine2][pFine];
    Player[pdproverkafine2][pMoney] -= Player[playerid][pFine];

    ResetPlayerMoney(pdproverkafine); // Спишим деньги
    ResetPlayerMoney(pdproverkafine2); // Спишим деньги

    GivePlayerMoney(pdproverkafinePlayer[pdproverkafine][pMoney]); // Дадим деньги  тот кто  прописал команду.
    GivePlayerMoney(pdproverkafine2Player[pdproverkafine2][pMoney]); // Дадим деньги  тот кто  прописал команду. 

 

 

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

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

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

Ваши права

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