hilfe

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
  • hey soweit bin ich jetzt
    ich habe ocmd für die ränge und /f


    und jetzt will ich das kombinieren


    hier ma beides


    ocmd:rang(playerid,params[])
    {
    if(!isPlayerAnLeader(playerid,4)) return SendClientMessage(playerid,ROT,"Du bist nicht der Leader dieser Fraktion.");
    new pID,rID;
    new string[128],rangid[64];
    if(sscanf(params,"ui",pID,rID)) return SendClientMessage(playerid,GRAU,"/rang [ID/Teil des Namens] [Rang]");
    switch(rID)
    {
    case 0:{rangid="Knecht";}
    case 1:{rangid="Dealer";}
    case 2:{rangid="Unterboss";}
    case 3:{rangid="Boss";}
    }
    format(string,sizeof(string),"Dein Rang wurde von %s auf %s erhöht.",Spielername(playerid),rangid);
    SendClientMessage(playerid,TURKIS,string);
    SetPVarInt(pID,"Rang",rID);
    return 1;
    }



    ocmd:f(playerid,params[])
    {
    new text[128],rangid[64];
    new rID,pID;
    if(sscanf(params,"%s",text))return SendClientMessage(playerid,ROT,"/f [TEXT]");
    switch(rID)
    {
    case 0:{rangid="Knecht";}
    case 1:{rangid="Dealer";}
    case 2:{rangid="Unterboss";}
    case 3:{rangid="Boss";}
    }
    format(text,sizeof(text),"%s %s: %s",rangid,Spielername(playerid),text);
    SetPVarInt(pID,"Rang",rID);
    for(new i=0; i {
    if(IsPlayerConnected(i))
    {
    if(isPlayerInFrakt(i,GetPVarInt(playerid,"Fraktion")))
    {
    SendClientMessage(i,TURKIS,text);
    }


    }


    }
    return 1;
    }


    was mache ich da falsch ?


    //edit ingame steht zwar ein rang aber es bleibt immer so z.B Knecht Sascha: hey

    SUCHE SCRIPT LEHRER :P

  • Der Fehler liegt beim Befehl '/f':
    ocmd:f(playerid,params[])
    {
    new text[128],rangid[64];
    new rID,pID; // Hier erstellst du die Variable rID (und pID), beim Erstellen nimmt die Variable automatisch den Wert 0 an
    if(sscanf(params,"%s",text))return SendClientMessage(playerid,ROT,"/f [TEXT]");
    switch(rID) // Da der Wert der Variablen rID bisher 0 beträgt trifft immer Fall 0 ein
    {
    case 0:{rangid="Knecht";}
    case 1:{rangid="Dealer";}
    case 2:{rangid="Unterboss";}
    case 3:{rangid="Boss";}
    }
    format(text,sizeof(text),"%s %s: %s",rangid,Spielername(playerid),text);
    SetPVarInt(pID,"Rang",rID); // kann rausgenommen werden, da du durch '/f' ja nicht den Rang setzen willst, sondern durch '/rang'
    for(new i=0; i {
    if(IsPlayerConnected(i))
    {
    if(isPlayerInFrakt(i,GetPVarInt(playerid,"Fraktion")))
    {
    SendClientMessage(i,TURKIS,text);
    }


    }


    }
    return 1;
    }


    Korrigiert würde der Befehl '/f' also so aussehen:
    ocmd:f(playerid,params[])
    {
    new text[128],rangid[64];
    if(sscanf(params,"s",text))return SendClientMessage(playerid,ROT,"/f [TEXT]");
    switch(GetPVarInt(playerid,"Rang"))
    {
    case 0:{rangid="Knecht";}
    case 1:{rangid="Dealer";}
    case 2:{rangid="Unterboss";}
    case 3:{rangid="Boss";}
    }
    format(text,sizeof(text),"%s %s: %s",rangid,Spielername(playerid),text);
    for(new i=0; i {
    if(IsPlayerConnected(i))
    {
    if(isPlayerInFrakt(i,GetPVarInt(playerid,"Fraktion")))
    {
    SendClientMessage(i,TURKIS,text);
    }


    }


    }
    return 1;
    }


    // Edit: Fehler ausgebessert

    Einmal editiert, zuletzt von Piranha ()