Mechanikersystem - Fehler

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
  • HeyHoo,


    Ich habe mir ein simples Jobsystem (mit Duty usw) gebastelt.
    Allerdings, klappt mein /accept Befehl nicht so richtig...
    Hier der Code:

    Spoiler anzeigen

    ocmd:accept(playerid,params[])
    {
    new anfrage[128];
    if(sscanf(params,"s",anfrage))return SendClientMessage(playerid,Grau,"Benutze: /accept [Repair / Ticket / Refill / Taxi / Mechanic]");
    {
    new cmdtext[10];
    if(strcmp(cmdtext,"repair",true) == 0)
    {
    if(GetPVarInt(playerid,"Mechaniker"))
    {
    new Mecha = GetPVarInt(playerid,"Mechaniker");
    new Preis = GetPVarInt(playerid,"MechanikerPreis");
    if(GetPlayerMoney(playerid)> Preis)
    {
    new string[256],string1[128];
    format(string,sizeof(string),"* Der Spieler %s hat deine Reperaturanfrage akzeptiert. Du hast den Reperaturpreis von %d$ erhalten.",PlayerName(playerid),Preis);
    format(string,sizeof(string),"* Du hast dein Auto von Mechaniker %s für %d$ reparieren lassen.",PlayerName(Mecha),Preis);
    new pCar = GetPlayerVehicleID(playerid);
    GivePlayerMoney(playerid,-Preis);
    GivePlayerMoney(Mecha,Preis);
    RepairVehicle(pCar);
    SendClientMessage(Mecha,Weiss,string);
    SendClientMessage(playerid,Weiss,string1);
    return 1;
    }
    }
    }
    }
    return 1;
    }


    Errors bekomme Ich keine.
    Wenn ich InGame /accept repair eintippe, kommt nichts mehr.


    Bitte um Hilfe!


    lg
    DJ Deagle

  • if(strcmp(cmdtext,"repair",true) == 0)


    muss zu


    if(strcmp(anfrage,"repair",true) == 0)


    Mein CS:GO Server: 62.75.168.39:27016


    Ich bin so hungrig, dass ich vor lauter Durst nicht weiß, was ich rauchen soll - so müde bin ich!
    Freedom is just another word for 'Nothing left to lose'

  • if(strcmp(cmdtext, "repair", true) == 0)
    Hier liegt der Fehler...


    Du hast es bei Dir als String "anfrage" deklariert,
    also musst Du es so auch weiter verwenden.



    if(strcmp(anfrage, "repair", true) == 0)
    Dann klappt's auch.



    // Edit


    Mist, da war jmd schneller ;(

  • Tjoa, dann würd ich mal vorschlagen zu debuggen und nach jedem if/nach jeder zeile ein print("DEBUG #"); zu schreiben.
    Dann wissen wa zumindest wo er hängen bleibt.


    Mein CS:GO Server: 62.75.168.39:27016


    Ich bin so hungrig, dass ich vor lauter Durst nicht weiß, was ich rauchen soll - so müde bin ich!
    Freedom is just another word for 'Nothing left to lose'

  • Ich kenne mich mit sscanf zwar nicht gut aus,
    aber laut Dokumentation solltest Du es so versuchen:


    ocmd:accept(playerid,params[])
    {
    new anfrage[128];
    if(sscanf(params,"s",anfrage)) return SendClientMessage(playerid,Grau,"Benutze: /accept [Repair / Ticket / Refill / Taxi / Mechanic]");
    else
    {
    new cmdtext[10];
    if(strcmp(cmdtext,"repair",true) == 0)
    {
    if(GetPVarInt(playerid,"Mechaniker"))
    {
    new Mecha = GetPVarInt(playerid,"Mechaniker");
    new Preis = GetPVarInt(playerid,"MechanikerPreis");
    if(GetPlayerMoney(playerid)> Preis)
    {
    new string[256],string1[128];
    format(string,sizeof(string),"* Der Spieler %s hat deine Reperaturanfrage akzeptiert. Du hast den Reperaturpreis von %d$ erhalten.",PlayerName(playerid),Preis);
    format(string,sizeof(string),"* Du hast dein Auto von Mechaniker %s für %d$ reparieren lassen.",PlayerName(Mecha),Preis);
    new pCar = GetPlayerVehicleID(playerid);
    GivePlayerMoney(playerid,-Preis);
    GivePlayerMoney(Mecha,Preis);
    RepairVehicle(pCar);
    SendClientMessage(Mecha,Weiss,string);
    SendClientMessage(playerid,Weiss,string1);
    return 1;
    }
    }
    }
    }
    return 1;
    }

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen