/repair problem

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
  • Moin Ich habe ein Problem ich habe ein Repair system und wenn ich /rep id preis mache dann sagt er immer wieder der spieler ist nicht online obwohl er es aber ist
    dabei ist derjeniger aber online :S kann mir wer helfen ?
    Code
    ocmd:rep(playerid,params[])
    {
    new veh,pID,Preis,string[128];
    if (SpielerInfo[playerid][Leader] == 1 || SpielerInfo[playerid][Member] == 1 || SpielerInfo[playerid][Leader] == 2 || SpielerInfo[playerid][Member] == 2)
    if(sscanf(params, "dd", pID,Preis)) return SendClientMessage(playerid,COLOR_RED,"/rep [playerid] [Preis]");
    if(Preis <= 0) return SendClientMessage(playerid,COLOR_RED,"Der Preis darf nicht unter 0$ liegen!");
    if(IsPlayerConnected(playerid)) return SendClientMessage(playerid,COLOR_RED,"Der Spieler ist nicht eingeloggt!");
    veh = GetPlayerVehicleID(pID);
    if(!IsPlayerInAnyVehicle(pID))return SendClientMessage(playerid,COLOR_RED,"Der Spieler ist in keinem Fahrzeug!");
    format(string,sizeof(string),"Mechaniker: %s hat dein Fahrzeug für %d repariert!",getName(playerid),Preis);
    SendClientMessage(pID,COLOR_YELLOW,string);
    RepairVehicle(veh);
    return 1;
    }


    Gruß Nille

  • if(IsPlayerConnected(playerid)) return SendClientMessage(playerid,COLOR_RED,"Der Spieler ist nicht eingeloggt!");

    Da liegt der Fehler :D
    Du fragst ab ob der Spieler connected ist und wenn ja, returnst Du das ganze.. :D


    Mach die Zeile mal so:


    if(!IsPlayerConnected(pID)) return SendClientMessage(playerid,COLOR_RED,"Der Spieler ist nicht eingeloggt!");
    Vorallem, DU fragst für den Spieler selber ab, nicht für den, der die Reparatur erhalten soll.


    Habe es Dir geändert, denke es funktioniert so. ;)


    Lg
    Hardcore

  • danke für die vielen antworten :D


    aber meinst du das dann so ?


    ocmd:rep(pID,params[])


    wenn ich das dann so mache dann bekomm ich glatt 7 errors


    C:\Users\Nils\Desktop\0.3x\gamemodes\selfmade1.pwn(2849) : warning 219: local variable "pID" shadows a variable at a preceding level
    C:\Users\Nils\Desktop\0.3x\gamemodes\selfmade1.pwn(2850) : error 017: undefined symbol "playerid"
    C:\Users\Nils\Desktop\0.3x\gamemodes\selfmade1.pwn(2851) : error 017: undefined symbol "playerid"
    C:\Users\Nils\Desktop\0.3x\gamemodes\selfmade1.pwn(2852) : error 017: undefined symbol "playerid"
    C:\Users\Nils\Desktop\0.3x\gamemodes\selfmade1.pwn(2853) : error 001: expected token: ";", but found "return"
    C:\Users\Nils\Desktop\0.3x\gamemodes\selfmade1.pwn(2853) : error 017: undefined symbol "playerid"
    C:\Users\Nils\Desktop\0.3x\gamemodes\selfmade1.pwn(2854) : warning 225: unreachable code
    C:\Users\Nils\Desktop\0.3x\gamemodes\selfmade1.pwn(2855) : error 017: undefined symbol "playerid"
    C:\Users\Nils\Desktop\0.3x\gamemodes\selfmade1.pwn(2856) : error 017: undefined symbol "playerid"
    C:\Users\Nils\Desktop\0.3x\gamemodes\selfmade1.pwn(4557) : warning 219: local variable "string" shadows a variable at a preceding level
    C:\Users\Nils\Desktop\0.3x\gamemodes\selfmade1.pwn(6147) : warning 225: unreachable code
    C:\Users\Nils\Desktop\0.3x\gamemodes\selfmade1.pwn(6324) : warning 225: unreachable code
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    7 Errors.

  • Wieso machst Du es Dir so schwer?
    Habe DIr doch den Fehler gepostet...


    Hier, nimm einfach den kompletten Code...


    ocmd:rep(playerid,params[]){ if(SpielerInfo[playerid][Leader] == 1 || SpielerInfo[playerid][Member] == 1 || SpielerInfo[playerid][Leader] == 2 || SpielerInfo[playerid][Member] == 2) new veh,pID,Preis,string[128]; if(sscanf(params, "ud", pID,Preis)) return SendClientMessage(playerid,COLOR_RED,"/rep [playerid] [Preis]"); if(Preis <= 0) return SendClientMessage(playerid,COLOR_RED,"Der Preis darf nicht unter 0$ liegen!"); if(!IsPlayerConnected(pID)) return SendClientMessage(playerid,COLOR_RED,"Der Spieler ist nicht eingeloggt!"); veh = GetPlayerVehicleID(pID); if(!IsPlayerInAnyVehicle(pID))return SendClientMessage(playerid,COLOR_RED,"Der Spieler ist in keinem Fahrzeug!"); format(string,sizeof(string),"Mechaniker: %s hat dein Fahrzeug für %d repariert!",getName(playerid),Preis); SendClientMessage(pID,COLOR_YELLOW,string); RepairVehicle(veh); return 1;}

  • habe ich bekomme jedoch diesen error
    C:\Users\Nils\Desktop\selfmade1.pwn(2853) : error 001: expected token: ";", but found "return"


    Tut mir leid für die umstände mach das noch nicht so lange.


    //edit


    jtz sagt er immer wieder


    Der preis darf nicht unter 0 liegen aber ich gebe nen anderen preis ein..