/tanken befehl geht nicht..

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Hay,
    Ich habe ein Problem unzwar das bei mir /tanken nicht geht...
    Vielleicht könnt ihr ja helfen.
    Befehl:
    if(strcmp(cmd, "/tanke", true) == 0 || strcmp(cmd, "/tanken", true) == 0)
    {
    if(IsAtGasStation(playerid))
    {
    if(IsPlayerConnected(playerid))
    {
    if(IsAtGasStation(playerid))
    {
    if(IsANoTachoVehicle(GetPlayerVehicleID(playerid)))
    {
    ShowInfoDialog(playerid,"Tank Information","Du kannst kein Fahrrad betanken!");
    }
    ShowPlayerDialog(playerid,DIALOG_TANKE,DIALOG_STYLE_LIST,"Tankstelle","Fahrzeug volltanken\nBenzin Kannister kaufen","Kaufen","Abbrechen");
    }
    return 1;
    }
    }
    }


    Function IsAtGasStation(playerid)
    {
    if(IsPlayerConnected(playerid))
    {// Hinter dem LSPD
    if(IsPlayerInRangeOfPoint(playerid,6.0,1779.9427,-1784.9698,13.5305) || IsPlayerInRangeOfPoint(playerid,6.0,1775.6558,-1781.2843,13.5313) || IsPlayerInRangeOfPoint(playerid,6.0,1771.3665,-1778.5056,13.5316))
    {
    return 1;
    }
    else if(IsPlayerInRangeOfPoint(playerid,6.0,1004.0070,-939.3102,42.1797) || IsPlayerInRangeOfPoint(playerid,6.0,1944.3260,-1772.9254,13.3906))
    {//LS
    return 1;
    }
    else if(IsPlayerInRangeOfPoint(playerid,6.0,-90.5515,-1169.4578,2.4079) || IsPlayerInRangeOfPoint(playerid,6.0,1475.5549,-1730.1250,13.3828) || IsPlayerInRangeOfPoint(playerid,6.0,-1609.7958,-2718.2048,48.5391))
    {//LS
    return 1;
    }
    else if(IsPlayerInRangeOfPoint(playerid,6.0,-2029.4968,156.4366,28.9498) || IsPlayerInRangeOfPoint(playerid,6.0,-1682.4819,418.1697,7.1797) || IsPlayerInRangeOfPoint(playerid,6.0,-2408.7590,976.0934,45.4175))
    {//SF
    return 1;
    }
    else if(IsPlayerInRangeOfPoint(playerid,6.0,-2243.9629,-2560.6477,31.8841) || IsPlayerInRangeOfPoint(playerid,6.0,-1676.6323,414.0262,6.9484))
    {//Between LS and SF
    return 1;
    }
    else if(IsPlayerInRangeOfPoint(playerid,6.0,2202.2349,2474.3494,10.5258) || IsPlayerInRangeOfPoint(playerid,6.0,614.9333,1689.7418,6.6968) || IsPlayerInRangeOfPoint(playerid,6.0,1694.1862,104.3128,37.5988))
    {//LV
    return 1;
    }
    else if(IsPlayerInRangeOfPoint(playerid,6.0,-1328.8250,2677.2173,49.7665) || IsPlayerInRangeOfPoint(playerid,6.0,70.3882,1218.6783,18.5165) || IsPlayerInRangeOfPoint(playerid,10.0,2149.0142,2748.4934,10.8203))
    {//LV
    return 1;
    }
    else if(IsPlayerInRangeOfPoint(playerid,6.0,2113.7390,920.1079,10.5255) || IsPlayerInRangeOfPoint(playerid,6.0,-1327.7218,2678.8723,50.0625) || IsPlayerInRangeOfPoint(playerid,6.0,1597.1254,2198.1113,10.8203))
    {//LV
    return 1;
    }
    else if(IsPlayerInRangeOfPoint(playerid, 30.0, -1483.2017,-552.7019,14.1484) || IsPlayerInRangeOfPoint(playerid,15.0,-1675.1643,414.1799,7.1797) || IsPlayerInRangeOfPoint(playerid,15.0,-2409.8362,973.7567,45.3653))
    {//LS Airport
    return 1;
    }
    for(new i = 8; i < 17; i++)
    {
    if(IsPlayerInRangeOfPoint(playerid,12.0,SBizzInfo[i][sbEntranceX],SBizzInfo[i][sbEntranceY],SBizzInfo[i][sbEntranceZ]))
    {
    return 1;
    }
    }
    if(IsPlayerInRangeOfPoint(playerid,12.0,2202.2349,2474.3494,10.5258) || IsPlayerInRangeOfPoint(playerid,12.0,614.9333,1689.7418,6.6968))
    {//LV
    return 1;
    }
    else if(IsPlayerInRangeOfPoint(playerid,12.0,-1328.8250,2677.2173,49.7665) || IsPlayerInRangeOfPoint(playerid,12.0,70.3882,1218.6783,18.5165))
    {//LV
    return 1;
    }
    else if(IsPlayerInRangeOfPoint(playerid,12.0,2113.7390,920.1079,10.5255) || IsPlayerInRangeOfPoint(playerid,12.0,-1327.7218,2678.8723,50.0625))
    {//LV
    return 1;
    }
    else if(IsPlayerInRangeOfPoint(playerid, 30.0, 2002.8409,-2382.0603,13.5469))
    {//LS Airport
    return 1;
    }
    else if(IsPlayerInRangeOfPoint(playerid, 12.0, 1482.8306,-1695.1400,13.0190))
    {//LS LSPD
    return 1;
    }
    }
    return 0;
    }



    MfG

  • Ich glaub da fehlt was :x oder so... weil es öffnet sich nur ein Dialog wenn man den anklickt geht der weg & nnichts passiert..

  • Du musst uns dazu den Code unter OnDialogResponse zeigen :rolleyes:

  • Der hier?


    if(dialogid == DIALOG_TANKE)
    {
    if(response)
    {
    if(listitem == 0)
    {
    if(!IsPlayerInAnyVehicle(playerid)) return ShowInfoDialog(playerid,"Tankstelle"," Du musst dazu in einem Fahrzeug sitzen!");
    SetTimer("Fillup",RefuelWait,0);
    Refueling[playerid] = 1;
    FreezePlayer(playerid);
    ShowInfoDialog(playerid,"Tankstelle"," Dein Fahrzeug wird betankt, Bitte warten....");
    }
    if(listitem == 1)
    {
    new price = 20 * SPRITPREIS;
    new string[128];
    format(string, sizeof(string), "* Du hast dir einen Benzinkanister für $%d gekauft (20 Liter). Du kannst ihn mit /fillcar benutzen",price);
    SendClientMessage(playerid, COLOR_GRAD1, string);
    PlayerInfo[playerid][pFuel] += 20;
    GivePlayerMoney(playerid, - price);
    return 1;
    }
    if(listitem == 2)
    {
    new Float:health;
    GetPlayerHealth(playerid,health);
    SetPlayerHealth(playerid, health+15);
    GivePlayerMoney(playerid,-15);
    SendClientMessage(playerid,COLOR_GRAD1,"Du hast dir einen Snack für $15 gekauft!");
    }
    }
    }

  • if(dialogid == DIALOG_TANKE){
    if(!response)return 1;
    if(!listitem){
    if(!IsPlayerInAnyVehicle(playerid))return ShowInfoDialog(playerid,"Tankstelle"," Du musst dazu in einem Fahrzeug sitzen!");
    SetTimerEx("Fillup",RefuelWait,0,"d",playerid);//Forward & Callback ändern!
    Refueling[playerid] = 1;
    FreezePlayer(playerid);
    return ShowInfoDialog(playerid,"Tankstelle","Dein Fahrzeug wird betankt, Bitte warten....");
    }
    else if(listitem==1){
    new string[128];
    format(string,128,"* Du hast dir einen Benzinkanister für $%d gekauft (20 Liter). Du kannst ihn mit /fillcar benutzen!",20*SPRITPREIS),SendClientMessage(playerid,COLOR_GRAD1,string);
    return PlayerInfo[playerid][pFuel] += 20,GivePlayerMoney(playerid,- 20*SPRITPREIS);
    }
    else if(listitem==2){
    new Float:health;GetPlayerHealth(playerid,health),SetPlayerHealth(playerid,health+15);
    return GivePlayerMoney(playerid,-15),SendClientMessage(playerid,COLOR_GRAD1,"Du hast dir einen Snack für $15 gekauft!");
    }
    }
    Der einzige Fehler war das mit SetTimer, das muss zu SetTimerEx.
    Änder das bitte im Forward und im public (Callback) um.

  • Jetzt ist man gefreezet und es wird die ganze zeit auch wenn der Tank voll ist "Dein Fahrzeug wird betankt, bitte warten...." angezeigt..

  • Function Fillup()
    {
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    new DieTanke = AnWelchemTankSbiz(i);
    new VID;
    new FillUp;
    new string[256];
    VID = GetPlayerVehicleID(i);
    FillUp = GetGasMax(GetVehicleModel(VID)) - Tank[VID];

    if(Refueling[i] == 1)
    {
    if(GetMoneyEx(i) >= FillUp+4)
    {
    Tank[VID] += FillUp;
    FillUp = SBizzInfo[DieTanke][sbEntranceCost] * FillUp;
    format(string,sizeof(string),"* Du hast dein Fahrzeug für $%d aufgetankt.",FillUp);
    SendClientMessage(i,COLOR_LIGHTBLUE,string);
    GiveMoneyEx(i, - FillUp);
    AddToBizzTill(DieTanke,FillUp);
    ExtortionSBiz(DieTanke, FillUp);
    Refueling[i] = 0;
    }
    else
    {
    UnFreezePlayer(i);
    new cost = SBizzInfo[DieTanke][sbEntranceCost];
    format(string,sizeof(string),"* Nicht genug Geld zum Auffüllen, du benötigst $%d zum Auffüllen deines Autos.",cost);
    SendClientMessage(i,COLOR_LIGHTBLUE,string);
    }
    }
    }
    }
    return 1;
    }

  • if(dialogid == DIALOG_TANKE){
    if(!response)return 1;
    if(!listitem){
    if(!IsPlayerInAnyVehicle(playerid))return ShowInfoDialog(playerid,"Tankstelle"," Du musst dazu in einem Fahrzeug sitzen!");
    SetTimerEx("Fillup",RefuelWait,0,"d",playerid);//Forward & Callback ändern!
    Refueling[playerid] = 1;
    FreezePlayer(playerid);
    return ShowInfoDialog(playerid,"Tankstelle","Dein Fahrzeug wird betankt, Bitte warten....");
    }
    else if(listitem==1){
    new string[128];
    format(string,128,"* Du hast dir einen Benzinkanister für $%d gekauft (20 Liter). Du kannst ihn mit /fillcar benutzen!",20*SPRITPREIS),SendClientMessage(playerid,COLOR_GRAD1,string);
    return PlayerInfo[playerid][pFuel] += 20,GivePlayerMoney(playerid,- 20*SPRITPREIS);
    }
    else if(listitem==2){
    new Float:health;GetPlayerHealth(playerid,health),SetPlayerHealth(playerid,health+15);
    return GivePlayerMoney(playerid,-15),SendClientMessage(playerid,COLOR_GRAD1,"Du hast dir einen Snack für $15 gekauft!");
    }
    }
    Function Fillup(playerid){
    new DieTanke = AnWelchemTankSbiz(playerid),vid=GetPlayerVehicleID(playerid),fillupp=GetGasMax(GetVehicleModel(vid)) - Tank[vid],string[256];
    if(Refueling[playerid]){
    if(GetMoneyEx(playerid) >= fillupp+4){
    Tank[vid] += fillupp;
    fillupp = SBizzInfo[DieTanke][sbEntranceCost] * fillupp;
    format(string,256,"Du hast dein Fahrzeug für $%d aufgetankt!",fillupp),SendClientMessage(playerid,COLOR_LIGHTBLUE,string);
    return GiveMoneyEx(i,-fillupp),AddToBizzTill(DieTanke,fillupp),ExtortionSBiz(DieTanke,fillupp),Refueling[playerid] = 0,UnFreezePlayer(playerid);
    }
    return UnFreezePlayer(playerid),format(string,256,"Nicht genug Geld zum Auffüllen, du benötigst $%d zum Auffüllen deines Autos!",SBizzInfo[DieTanke][sbEntranceCost]),SendClientMessage(playerid,COLOR_LIGHTBLUE,string);
    }
    return 1;
    }
    So sollte das ganze nun aussehen.
    Hast du beim auffüllen nicht das Unfreezen vergessen, oder muss das nicht? :D

    Einmal editiert, zuletzt von AirM4X ()