•Помогите с /fill•
#1

Здравствуйте , у меня в моде есть сис-ма заправки , но она заправляет постоянно по 99 литров , а я хочу сделать по литрам , если например чел напишет /fill 5 то авто заправится на 5 литров , если 10 то на 10 литров , помогите сделать это , вот моя команда (уже с проверкой):
PHP код:
if(strcmp(cmd"/fill"true) == 0)   
    {   
     if(
IsPlayerConnected(playerid))   
        {   
        
tmp strtok(cmdtextidx);   
       if(!
strlen(tmp))   
    {   
    
SendClientMessage(playeridCOLOR_SYSTEM" Команда: - /fill [кол-во]");   
    return 
1;   
    }   
    new 
value strval(tmp);   
      if(
IsAtGasStation(playerid))   
      {   
          if(
Gas[idcar] <= 99)   
          {   
           
TogglePlayerControllable(playerid0);   
           
GameTextForPlayer(playerid,"~w~~n~~n~~n~~n~~n~~n~~n~~n~~n~Re-Fueling Vehicle, please wait",2000,3);   
        
SetTimer("Fillup",RefuelWait,0);   
        
Refueling[playerid] = 1;   
       }   
       else   
       {   
           
GameTextForPlayer(playerid,"~r~~n~~n~~n~~n~~n~~n~~n~~n~~n~Gas can is full",2000,3);   
       }   
      }   
      else   
      {   
       
SendClientMessage(playerid,COLOR_GREY,"   Вы не на заправке!");   
      }   
     }   
        return 
1;   
    } 
а вот public FillUp
PHP код:
public Fillup() 

    for(new 
i=0i<MAX_PLAYERSi++) 
       { 
           if(
IsPlayerConnected(i)) 
           { 
            new 
VID
            new 
FillUp
            new 
string[256]; 
            
VID GetPlayerVehicleID(i); 
            
FillUp GasMax Gas[VID]; 
            if(
Refueling[i] == 1
            { 
                if(
IsACopCar(VID) || IsAnFbiCar(VID) || IsAnAmbulance(VID) || IsNgCar(VID) || IsAGovernmentCar(VID) || IsAHspdCar(VID)) 
                { 
                    
Gas[VID] += FillUp
                    
FillUp FillUp SBizzInfo[3][sbEntranceCost]; 
                    
format(string,sizeof(string),"* Автомобиль заправлен за: $%d.",FillUp); 
                    
SendClientMessage(i,COLOR_WHITE,string); 
                    
GameTextForPlayer(i"~w~Government has paid for a gas."50001); 
                    
SBizzInfo[3][sbTill] += FillUp
                    
ExtortionSBiz(3FillUp); 
                    
Refueling[i] = 0
                    
TogglePlayerControllable(i1); 
                } 
                else 
                { 
                    if(
UAS_GetValPlayerMoney(i) >= FillUp+4
                    { 
                        
Gas[VID] += FillUp
                        
FillUp FillUp SBizzInfo[3][sbEntranceCost]; 
                        
format(string,sizeof(string),"* Автомобиль заправлен за: $%d.",FillUp); 
                        
SendClientMessage(i,COLOR_WHITE,string); 
                        
SafePlayerMoney(i, - FillUp); 
                        
SBizzInfo[3][sbTill] += FillUp
                        
ExtortionSBiz(3FillUp); 
                        
Refueling[i] = 0
                        
TogglePlayerControllable(i1); 
                    } 
                       else 
                       { 
                           
format(string,sizeof(string),"*Заправщик: Нет денег для того чтобы заправить машину, нужно  $%d для запрваки вашей машины",FillUp); 
                        
SendClientMessage(i,COLOR_WHITE,string); 
                        
TogglePlayerControllable(i1); 
                       } 
                } 
             } 
        } 
    } 
    return 
1

помогите пожалуйста , с меня +
Reply
#2

Тут нету рейтинговой системы. Ты хочешь что бы за тебя написали код? Ну, мне делать нечего... так и быть, напишу.
pawn Код:
if(strcmp(cmd, "/fill", true) == 0)
{
    if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid,COLOR_GREY,"Вы не в машине!");
    if(!IsAtGasStation(playerid)) return SendClientMessage(playerid,COLOR_GREY,"Вы не на заправке!");
    tmp = strtok(cmdtext, idx);
    new var = strval(tmp);
    if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_SYSTEM, "Команда: - /fill [кол-во]");
    if(Gas[GetPlayerVehicleID(playerid)] > 99) return GameTextForPlayer(playerid,"~r~~n~~n~~n~~n~~n~~n~~n~~n~~n~Gas can is full",2000,3);
    if(var + Gas[GetPlayerVehicleID(playerid)] > 100) return SendClientMessage(playerid, COLOR_SYSTEM, "Слишком много!");
    if(var < 0) return SendClientMessage(playerid, COLOR_SYSTEM, "Слишком мало!");
    if(UAS_GetValPlayerMoney(playerid) < var * SBizzInfo[3][sbEntranceCost])
    {
        new ts[256];
        format(ts, 256, "У вас нехватает денег, кужно %d$", var * SBizzInfo[3][sbEntranceCost]);
        return SendClientMessage(playerid, COLOR_SYSTEM, ts);
    }
    TogglePlayerControllable(playerid, 0);
    GameTextForPlayer(playerid,"~w~~n~~n~~n~~n~~n~~n~~n~~n~~n~Re-Fueling Vehicle, please wait",2000,3);
    SetTimerEx("FillupEx", RefuelWait, 0, "ii", playerid, var);
    return 1;
}

forward FillupEx(playerid, count);
public FillupEx(playerid, count)
{
    if(!IsAtGasStation(playerid)) return SendClientMessage(playerid,COLOR_GREY,"Вы уехали с заправки!");
    new VID = GetPlayerVehicleID(playerid), cash = count * SBizzInfo[3][sbEntranceCost], string[256];
    Gas[VID] += count;
    SBizzInfo[3][sbTill] += cash;
    TogglePlayerControllable(playerid, 1);
    ExtortionSBiz(3, cash);
    if(IsACopCar(VID) || IsAnFbiCar(VID) || IsAnAmbulance(VID) || IsNgCar(VID) || IsAGovernmentCar(VID) || IsAHspdCar(VID))
    {
        format(string, 256, "* Автомобиль заправлен за: $%d.",cash);
        GameTextForPlayer(playerid, "~w~Government has paid for a gas.", 5000, 1);
    }
    else
    {
        format(string, 256, "* Автомобиль заправлен за: $%d.", cash);
        SafePlayerMoney(i, - cash);
    }
    SendClientMessage(playerid, COLOR_WHITE, string);
    return 1;
}
P.S. Расставляй грамотно запятые. Меня бесит, когда их ставят неправильно =\
Reply
#3

спасибо большое братан , я там чток еще подредактил , а так все пашет , ток вот эт херня вылезла
Quote:

C:\Documents and Settings\Admin\Мои документы\Копия (2) server(0.3c1.06)\gamemodes\GMRP.pwn(10564) : warning 209: function "FillupEx" should return a value

ну и еще деньги не забирает (((
Reply
#4

все ответ получен , проблема решена) спс большое еще раз)
Reply
#5

Пжлст. В конце дописал бы return 1, и все. Насчет денег - ты уж сам думаю догадался.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)