probleme bei einem Befehl..

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
  • Hallo

    also ich habe ein kleines problem bei meinen Befehlen ( /jobs & /quitjob ) irgend wie sind die Abfragen ob der spieler ein job hat falsch? glaub ich ?


    Also..


    QUITJOB soll er nur machen können wenn er auch wirklich nur einen job hat..

    ocmd:quitjob(playerid,params[])
    {
    if(!HatPlayerAnNebenJob(playerid,1))return SendClientMessage(playerid,DUNKELROT,"Du hast bereits einen Job !");
    if(!IsPlayerInRangeOfPoint(playerid,2.0,358.4476,180.6003,1008.3828))return SendClientMessage(playerid,DUNKELROT,"Du bist nicht am tresen bei /quitjob");
    {
    ShowPlayerDialog(playerid,DIALOG_QUITJOB,DIALOG_STYLE_MSGBOX,"Job Kündigen","Willst du deinen Job Wirklich Kündigen ?","Ja","Nein");
    }
    return 1;
    }



    JOBS kann er nur 1mal machen wenn er es nochmal eingibt sollte diese nachricht kommen "Du hast bereits einen Job !"


    ocmd:jobs(playerid,params[])
    {
    if(!HatPlayerAnNebenJob(playerid,0))return SendClientMessage(playerid,DUNKELROT,"Du hast bereits einen Job !");
    if(!IsPlayerInRangeOfPoint(playerid,2.0,358.3224,184.6619,1008.3828))return SendClientMessage(playerid,DUNKELROT,"Du bist nicht am /jobs Tresen");
    {
    ShowPlayerDialog(playerid,DIALOG_JOBS,DIALOG_STYLE_LIST,"Job Liste","Taxifahrer\nMüllman","Auswählen","Schließen");
    }
    return 1;
    }



    Der stock

    stock HatPlayerAnNebenJob(playerid,jobnumer)
    {
    if(GetPVarInt(playerid,"Jobstatus")>=jobnumer)return 1;
    return 0;
    }



    Der Dialog von QUITJOB

    // =====| Quitjob |=====
    if(dialogid==DIALOG_QUITJOB)
    {
    if(response == 0)
    {
    PlayerPlaySound(playerid, 1053, 0.0, 0.0, 0.0);
    }
    if(response == 1)
    {
    SetPVarInt(playerid,"Jobstatus",0);
    SetPVarInt(playerid,"Job",0);
    SendClientMessage(playerid,GELB,"Du hast deinen Job Erfolgreich gekündigt !");
    PlayerPlaySound(playerid, 1052, 0.0, 0.0, 0.0);
    }
    }



    Der DIalog von JOBS

    if(dialogid==DIALOG_JOBS && response==1)
    {
    if(listitem == 0)
    {
    if(!HatPlayerAnNebenJob(playerid,0))return SendClientMessage(playerid,DUNKELROT,"Du hast bereits einen Job !");
    {
    SendClientMessage(playerid,GRUN,"Du hast nun den Neben Job Taxifahrer !");
    SetPVarInt(playerid,"Jobstatus",1);
    SetPVarInt(playerid,"Job",3);
    SpielerSpeichern(playerid);
    }
    }



    Also was ich will ist einfahr nur das wenn er /jobs macht kann er sich einen Job auswählen, aber wenn er es noch ma eingibt soll eine Fehler meldung kommen das er bereits einen Job hat, Und wenn er /quitjob macht kündigt er seinen Job und kann wieder einen Neuen Beginnen.. ich hoffe ich habe mich deutlich ausgedrückt :S, ich bin schon seit über 2 wochen an diese Befehle festkekettet und weiß einfahr nicht wo der Fehler drine liegt, Weil wenn ich /jobs mache kann ich Beliebig oft /jobs und einne job auswählen anklicken .. :whistling: ich hoffe ihr könnt mir hier helfen da kann ja nur eine Abfrage falsch sein oder so :S





    MfG Equ

  • Achsooo meisnt du das.



    ocmd:quitjob(playerid,params[])
    {
    if(!IsPlayerInRangeOfPoint(playerid,2.0,358.4476,180.6003,1008.3828))return SendClientMessage(playerid,DUNKELROT,"Du bist nicht am tresen bei /quitjob");
    if(HatPlayerAnNebenJob(playerid,1))
    {
    ShowPlayerDialog(playerid,DIALOG_QUITJOB,DIALOG_STYLE_MSGBOX,"Job Kündigen","Willst du deinen Job Wirklich Kündigen ?","Ja","Nein");
    }
    return 1;
    }


    lg :thumbup:


    #E: So jetzt hab ichs xD.

    RTL - Das N steht für Niveau!
    MfG,
    StreetS


    Jegliche Freundesanfragen, die für mich keinen Sinn ergeben, werden professionell Ignoriert. (Gleiche mit Skype!)
    Wer es nicht kapiert wird in Breadfish & Skype blockiert.


    - Stolzer PAWN Scripter der Klasse Beherrscht

  • Also erstmal benutze doch bitte kein ocmd wenn du auch keine Parameter benutzt, wäre nämlich sinnfrei.


    Ich denke du bist generell bisschen durcheinander geraten in deinen Zeilen. Allein bei /quitjob die Meldung "Du hast bereits einen Job" ist seltsam ^^


    Ich würde den Stock erstmal ändern:
    stock HatPlayerAnNebenJob(playerid)
    {
    if(GetPVarInt(playerid,"Jobstatus")>=1)return 1;
    return 0;
    }

    Dann würde ich Quitjob erstmal in das ändern:
    if(!strcmp(cmdtext,"/quitjob"))
    {
    if(!HatPlayerAnNebenJob(playerid)return SendClientMessage(playerid,DUNKELROT,"Du bist bereits arbeitslos.");
    if(!IsPlayerInRangeOfPoint(playerid,2.0,358.4476,180.6003,1008.3828))return SendClientMessage(playerid,DUNKELROT,"Du bist nicht am tresen bei /quitjob");
    {
    ShowPlayerDialog(playerid,DIALOG_QUITJOB,DIALOG_STYLE_MSGBOX,"Job Kündigen","Willst du deinen Job Wirklich Kündigen ?","Ja","Nein");
    }
    return 1;
    }


    Und bei /jobs:
    if(!strcmp(cmdtext,"/quitjob"))
    {
    if(HatPlayerAnNebenJob(playerid)return SendClientMessage(playerid,DUNKELROT,"Du hast bereits einen Job!");
    if(!IsPlayerInRangeOfPoint(playerid,2.0,358.3224,184.6619,1008.3828))return SendClientMessage(playerid,DUNKELROT,"Du bist nicht am /jobs Tresen");
    {
    ShowPlayerDialog(playerid,DIALOG_JOBS,DIALOG_STYLE_LIST,"Job Liste","Taxifahrer\nMüllman","Auswählen","Schließen");
    }
    return 1;
    }


    Wäre einfacher denk ich