/makeleader Befehl umändern

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
  • Hi Leute!,
    ich habe einen makeleader Bbefehl ohne Paramtern! Ich will den Befehl jetzt mit 2 Parametern haben, leider tuh ich michdamit schwer deswegen hoffe ich das ihr mir den Befehl mit Erklärungen wie es geht umändern könnt!


    Hier der Befehl /makeleader:



    if(!strcmp(strget(cmdtext,0),"/makeleader"))
    {
    if(pInfo[playerid][alevel] == 5)
    {
    new teamid = strval(strget(cmdtext,2));
    {
    if(IsPlayerConnected(playerid))
    {
    gLeader[ziel] = teamid;
    if(teamid==0) { SetPlayerSkin(ziel,101);}
    if(teamid==1) { dini_IntSet(save,"COP",1);SetPlayerSkin(ziel,281);}
    if(teamid==2) { dini_IntSet(save,"FBI",1);SetPlayerSkin(ziel,286);}
    if(teamid==3) { dini_IntSet(save,"ARMY",1);SetPlayerSkin(ziel,287);}
    if(teamid==4) { dini_IntSet(save,"SANNEWS",1);SetPlayerSkin(ziel,227);}
    if(teamid==5) { dini_IntSet(save,"TAXI",1);SetPlayerSkin(ziel,185);}
    if(teamid==6) { dini_IntSet(save,"YAKUZA",1);SetPlayerSkin(ziel,120);}
    if(teamid==7) { dini_IntSet(save,"LCN",1);SetPlayerSkin(ziel,113);}
    if(teamid==8) { dini_IntSet(save,"HITMAN",1);SetPlayerSkin(ziel,124);}
    if(teamid==9) { dini_IntSet(save,"STADTREINIGUNG",1);SetPlayerSkin(ziel,158);}
    if(teamid==10) { dini_IntSet(save,"FAHRLEHRER",1);SetPlayerSkin(ziel,17);}
    SendClientMessage(ziel,dunkelblau,"Herzlichen Glückwunsch, du bist nun Mitglied einer Fraktion!");
    }
    else
    {
    SendClientMessage(ziel,dunkelblau,"Du bist kein Administrator Level [5]!");
    }
    }
    }
    return 1;
    }


    Ich will jetzt das der Befehl in /makeleader [ID/NAME] [TEAMID 1-10] umgeändert wird!
    Mit einer Erklärung wie es gemacht wurde wäre ich euch doppelt dankbar!


    MfG ~Luka~

  • if(!strcmp(strget(cmdtext,0),"/makeleader"))
    {
    if(pInfo[playerid][alevel] == 5)
    {
    if(!strlen(strget(cmdtext,2))) return SendClientMessage(playerid,FARBE,"/makeleader [ID/NAME] [TEAMID]");
    new save[128]=strget(cmdtext,1)), i, st, ziel;
    for(st=strlen(save); i<st; i++) {
    if((save[i]<0 ||save[i]>9) && save[i]!=' ') {
    ziel++;
    i=st; }}
    if(ziel) {
    new name[MAX_PLYER_NAME];
    for(i=0; i<MX_PLAYERS; i++) {
    if(IsPlayerConnected(i)) {
    GetPlayerName(i,name,sizeof(name));
    if(strfind(name,save,true)==0) {
    ziel=i; }}}}
    else { ziel=strval(save); }
    if(IsPlayerConnected(ziel))
    {
    new teamid = strval(strget(cmdtext,2));
    if(teamid>=0 && teamid<=10) {
    GetPlayerName(ziel,save,sizeof(save));
    format(save,sizeof(save),"%s.ini",save);//ich weiß ja nicht, ob die accoun ts bei dir in nem speziellen ordner sind und ob du überhaupt ini verwendest, musst also vllt ändern
    gLeader[ziel] = teamid;
    if(teamid==0) { SetPlayerSkin(ziel,101);}
    if(teamid==1) { dini_IntSet(save,"COP",1);SetPlayerSkin(ziel,281);}
    if(teamid==2) { dini_IntSet(save,"FBI",1);SetPlayerSkin(ziel,286);}
    if(teamid==3) { dini_IntSet(save,"ARMY",1);SetPlayerSkin(ziel,287);}
    if(teamid==4) { dini_IntSet(save,"SANNEWS",1);SetPlayerSkin(ziel,227);}
    if(teamid==5) { dini_IntSet(save,"TAXI",1);SetPlayerSkin(ziel,185);}
    if(teamid==6) { dini_IntSet(save,"YAKUZA",1);SetPlayerSkin(ziel,120);}
    if(teamid==7) { dini_IntSet(save,"LCN",1);SetPlayerSkin(ziel,113);}
    if(teamid==8) { dini_IntSet(save,"HITMAN",1);SetPlayerSkin(ziel,124);}
    if(teamid==9) { dini_IntSet(save,"STADTREINIGUNG",1);SetPlayerSkin(ziel,158);}
    if(teamid==10) { dini_IntSet(save,"FAHRLEHRER",1);SetPlayerSkin(ziel,17);}
    SendClientMessage(ziel,dunkelblau,"Herzlichen Glückwunsch, du bist nun Mitglied einer Fraktion!");
    }
    else { SendClientMessage(playerid,FARBE,"Teamid muss zwischen 0 und 10 sein"); }}
    else { SendClientMessage(playerid,FARBE,"ID nicht vergeben"); }}
    else
    {
    SendClientMessage(ziel,dunkelblau,"Du bist kein Administrator Level [5]!");
    }
    return 1;
    }

  • lol 1000 dank kannst du mri dann noch vltl erklären wie du das gemacht hast? Mit den Parametern usw..


    MfG ~Luka~


    PS: Errors



    C:\Users\Markus Schneider\Desktop\Deluxe-Reallife\gamemodes\deluxe.pwn(1340) : warning 219: local variable "save" shadows a variable at a preceding level
    C:\Users\Markus Schneider\Desktop\Deluxe-Reallife\gamemodes\deluxe.pwn(1340) : error 008: must be a constant expression; assumed zero
    C:\Users\Markus Schneider\Desktop\Deluxe-Reallife\gamemodes\deluxe.pwn(1340) : error 029: invalid expression, assumed zero
    C:\Users\Markus Schneider\Desktop\Deluxe-Reallife\gamemodes\deluxe.pwn(1340) : warning 215: expression has no effect
    C:\Users\Markus Schneider\Desktop\Deluxe-Reallife\gamemodes\deluxe.pwn(1341) : error 017: undefined symbol "st"
    C:\Users\Markus Schneider\Desktop\Deluxe-Reallife\gamemodes\deluxe.pwn(1341) : error 017: undefined symbol "i"
    C:\Users\Markus Schneider\Desktop\Deluxe-Reallife\gamemodes\deluxe.pwn(1341) : warning 215: expression has no effect
    C:\Users\Markus Schneider\Desktop\Deluxe-Reallife\gamemodes\deluxe.pwn(1341) : error 001: expected token: ")", but found ";"
    C:\Users\Markus Schneider\Desktop\Deluxe-Reallife\gamemodes\deluxe.pwn(1341) : fatal error 107: too many error messages on one line


    Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    6 Errors.


    Einmal editiert, zuletzt von Markus ()

  • Einfach nur strget angewendet^^
    strget(text,nummer des leerzeichens)
    Bei dem Text "Seife schmeckt nicht", würde in "strget(text,0)" nur "Seife" drinne stehen, bei "strget(text,1)" würde "schmeckt" drinne stehen
    Wenn ich jetzt den Text "/makeleader 1 1" habe, dann steht bei "strget(text,1)" eine "1" drinne und ich kann sie per strval auslesen (in ein Integer umwandeln)


    PS: Wäre nett, wenn du die Errorzeilen mal markierst

  • Hi , sry okay



    Zeile 1340: if(!strlen(strget(cmdtext,2))) return SendClientMessage(playerid,rot,"/makeleader [ID/NAME] [TEAMID]");
    Zeile 1341: new save[128]=strget(cmdtext,1)), i, st, ziel;
    Zeile 1342: for(st=strlen(save); i<st; i++) {
    Zeile 1343: if((save[i]<0 ||save[i]>9) && save[i]!=' ') {


    MfG ~Luka~

  • Hatte eine ")" zu viel in Zeile 1341
    new save[128]=strget(cmdtext,1), i, st, ziel;
    Aber in 1340 ist eigentlich nichts falsch, zumindest sehe ich keinen Fehler


    PS: Und du hast "save" bereits deklariert, irgendwo anders (vllt am Anfang des publics? oder global?)

  • Hi,
    jetzt habe ich noch einen Error uns zwar in Zeile 1341 1340


    Error:



    C:\Users\Markus Schneider\Desktop\Deluxe-Reallife\gamemodes\deluxe.pwn(1340) : error 008: must be a constant expression; assumed zero


    Zeile 1340:



    new save[128]=strget(cmdtext,1), i, st, ziel;


    MfG ~Luka~


    P.S EDIT: Sry habe mich in der Zeile vertan es ist Zeile 1340!

    Einmal editiert, zuletzt von Markus ()

  • Das einzige, was mir jetzt noch einfallen würde, wäre es so zu machen:
    new save[128], i, st, ziel;
    save=strget(cmdtext,1);
    //oder:
    format(save,sizeof(save),"%s",strget(cmdtext,1));
    Es dürfte zwar eigentlich nichts ändern, aber ein Versuch ist es wert

  • lol ich habe jetzt das


    new save[128], i, st, ziel;
    save=strget(cmdtext,1);


    genommen und es funzt DANKE DANKE DANKE 1000 DANK


    EDIT: Noch 1 Sache : Ich brauche ein Paydaysystem was wie im GF jede volle Stunde 10000$ gibt und ein Scorepunkt dazu!


    So weit bin ich:


    Oben

    forward payday(playerid);


    BeiOnGameModeInit

    SetTimer("payday",3600000,1);


    Unten

    public payday(playerid)
    {
    GivePlayerMoney(playerid,10000);
    SetPlayerScore(playerid, 1);
    GameTextForAll("ZAHLTAG",5000,3);


    MfG ~Luka~


    P.S Kann sein das ein Fehler drin is tweil ich es gerade hier geschrieben habe!

    Einmal editiert, zuletzt von Markus ()

  • public payday()//beim forward auch das playerid entfernen
    {
    for(new i; i<MAX_PLAYERS; i++) {
    if(IsPlayerConnected(i)) {
    GivePlayerMoney(i,10000);
    SetPlayerScore(i,GetPlayerScore(i)+1);
    GameTextForPlayer(i,"ZAHLTAG",5000,3);
    }}
    return 1;
    }

  • Hi,
    es funzt fast 1 Warning:



    C:\Users\Markus Schneider\Desktop\Deluxe-Reallife\gamemodes\deluxe.pwn(1595) : warning 235: public function lacks forward declaration (symbol "payday")
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    1 Warning.


    Zeile: 1595:



    public payday()


    MfG ~Luka~