Hilfe beim Befehl /Scripterduty

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
  • Huhu ihr fleißigen breadfish'ler :D
    Ich möchte gerne einen Befehl machen mit dem man als scripter on Duty gehen kann, das ist ja auch kein Problem, nur ich möchte gerne so machen, dass wenn man 2x /scripterduty oder /sd eingibt, dass man einmal On Duty geht, und einmal Off-Duty - im moment gehts nur so, dass ich 2 Befehle dafür brauche, aber das ist irgendwie dumm :D.


    Hier der Code:
    if(strcmp(cmdtext,"/son",true)==0 || strcmp(cmdtext,"/scripteron",true)==0)
    {
    if(isPlayerAnAdmin(playerid,1850))
    {
    new string[128];
    new spieler[MAX_PLAYER_NAME];
    GetPlayerName(playerid,spieler,sizeof spieler);


    format(string,sizeof string,"%s ist nun Gamemode-Scripter / SuperAdmin on Duty!",spieler);
    SendClientMessageToAll(GOLD,string);
    SetPlayerColor(playerid,GOLD);
    return 1;
    }
    SendClientMessage(playerid,0x646464FF,"Du bist kein Server Scripter");
    return 1;
    }


    Mit freundlichen Grüßen, DraggyxXx

  • Oben im Script


    new Duty[MAX_PLAYERS];



    if(strcmp(cmdtext,"/son",true)==0 || strcmp(cmdtext,"/scripteron",true)==0)
    {
    if(isPlayerAnAdmin(playerid,1850))
    {
    new string[128];new spieler[MAX_PLAYER_NAME];
    if(Duty[playerid] == 1) return GetPlayerName(playerid,spieler,sizeof spieler);
    format(string,sizeof string,"%s ist nicht mehr on Duty!",spieler);
    SendClientMessageToAll(GOLD,string);
    SetPlayerColor(playerid,farbe);
    else return GetPlayerName(playerid,spieler,sizeof spieler);
    format(string,sizeof string,"%s ist nun on Duty!",spieler);
    SendClientMessageToAll(GOLD,string);
    SetPlayerColor(playerid,GOLD);
    return 1;
    }else{
    SendClientMessage(playerid,0x646464FF,"Du bist kein Server Scripter");
    return 1;
    }


    Weiß aber nicht ob es funktioniert.

  • Hum :o,
    Danke erstmal dass du hier geschrieben hast =D
    Leider spuckt mir mein Pawno 2 Errors und 2 Warnings raus :o
    Hier die Errors :o :
    D:\Users\Alex\Desktop\samp server\gamemodes\gdrdm.pwn(1039) : error 029: invalid expression, assumed zero
    D:\Users\Alex\Desktop\samp server\gamemodes\gdrdm.pwn(1039 -- 1040) : warning 215: expression has no effect
    D:\Users\Alex\Desktop\samp server\gamemodes\gdrdm.pwn(1040) : error 001: expected token: ";", but found "return"
    D:\Users\Alex\Desktop\samp server\gamemodes\gdrdm.pwn(1041) : warning 225: unreachable code
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    2 Errors.


    Zeile 1039 bis 1042:
    else
    return GetPlayerName(playerid,spieler,sizeof spieler);
    format(string,sizeof string,"%s ist nun on Duty!",spieler);
    SendClientMessageToAll(GOLD,string);


    Lg Draggy^^

  • Mein fehler...


    if(strcmp(cmdtext,"/son",true)==0 || strcmp(cmdtext,"/scripteron",true)==0)
    {
    if(isPlayerAnAdmin(playerid,1850))
    {
    new string[128];new spieler[MAX_PLAYER_NAME];
    if(Duty[playerid] == 1) return GetPlayerName(playerid,spieler,sizeof spieler);
    format(string,sizeof string,"%s ist nicht mehr on Duty!",spieler);
    SendClientMessageToAll(GOLD,string);
    SetPlayerColor(playerid,farbe);
    else return GetPlayerName(playerid,spieler,sizeof spieler);
    format(string,sizeof string,"%s ist nun on Duty!",spieler);
    SendClientMessageToAll(GOLD,string);
    SetPlayerColor(playerid,GOLD);
    return 1;
    }else{
    SendClientMessage(playerid,0x646464FF,"Du bist kein Server Scripter");
    return 1;
    }
    }

  • Ya =) es ging auf nen Warning runter, vllt bekommt ihr den auch noch weg (hab grade versucht das neu zu machen, dann war der warning allerdings immer noch da^^)
    D:\Users\Alex\Desktop\samp server\gamemodes\gdrdm.pwn(1040) : warning 225: unreachable code
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    1 Warning.


    Zeile 1040 und 1041:
    format(string,sizeof string,"%s ist nun on Duty!",spieler);
    SendClientMessageToAll(GOLD,string);


    Liebe Güße Draggy D:

  • Okay habs gemacht danke dir^^
    Jetzt kommt kein Warning mehr habe jetzt allerdings das Problem, dass wenn ich /sd bzw. /scripterduty eingebe, da steht " ist nun nicht mehr On Duty" und gleich danach "DraggyxXx ist nun on Duty!".
    wenn ich's 2 mal eingebe hintereinander, gehe ich trotzdem nicht aussem On-Duty Modus?
    Hier der Code:o :
    if(strcmp(cmdtext,"/scripterduty",true)==0 || strcmp(cmdtext,"/sd",true)==0)
    {
    if(isPlayerAnAdmin(playerid,1850))
    {
    new string[128];
    new spieler[MAX_PLAYER_NAME];
    if(Duty[playerid] == 1) return GetPlayerName(playerid,spieler,sizeof spieler);
    format(string,sizeof string,"%s ist nicht mehr on Duty!",spieler);
    SendClientMessageToAll(GOLD,string);
    SetPlayerColor(playerid,WEISS);
    GetPlayerName(playerid,spieler,sizeof spieler);
    format(string,sizeof string,"%s ist nun on Duty!",spieler);
    SendClientMessageToAll(GOLD,string);
    SetPlayerColor(playerid,GOLD);
    return 1;
    }
    else
    {
    SendClientMessage(playerid,0x646464FF,"Du bist kein Server Scripter");
    }
    return 1;
    }


    LG Draggy :D

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • if(strcmp(cmdtext,"/scripterduty",true)==0 || strcmp(cmdtext,"/sd",true)==0)
    {
    if(isPlayerAnAdmin(playerid,1850))
    {
    new string[128];
    new spieler[MAX_PLAYER_NAME];
    if(Duty[playerid] == 1)
    {
    GetPlayerName(playerid,spieler,sizeof spieler);
    format(string,sizeof string,"%s ist nicht mehr on Duty!",spieler);
    SendClientMessageToAll(GOLD,string);
    SetPlayerColor(playerid,WEISS);
    }
    else
    {
    GetPlayerName(playerid,spieler,sizeof spieler);
    format(string,sizeof string,"%s ist nun on Duty!",spieler);
    SendClientMessageToAll(GOLD,string);
    SetPlayerColor(playerid,GOLD);
    return 1;
    }
    }
    else
    {
    SendClientMessage(playerid,0x646464FF,"Du bist kein Server Scripter");
    }
    return 1;
    }


    Versuchs mal so.

  • Sonst mach es einfach so...


    if(strcmp(cmdtext,"/scripterduty",true)==0 || strcmp(cmdtext,"/sd",true)==0)
    {
    if(isPlayerAnAdmin(playerid,1850))
    {
    new string[128];
    new spieler[MAX_PLAYER_NAME];
    if(Duty[playerid] == 1)
    {
    GetPlayerName(playerid,spieler,sizeof spieler);
    format(string,sizeof string,"%s ist nicht mehr on Duty!",spieler);
    SendClientMessageToAll(GOLD,string);
    SetPlayerColor(playerid,WEISS);
    GetPlayerName(playerid,spieler,sizeof spieler);
    return 1;
    }
    else
    {
    format(string,sizeof string,"%s ist nun on Duty!",spieler);
    SendClientMessageToAll(GOLD,string);
    SetPlayerColor(playerid,GOLD);
    return 1;
    }
    }
    else
    {
    SendClientMessage(playerid,0x646464FF,"Du bist kein Server Scripter");
    return 1;
    }
    return 1
    }

  • Ich seh schon, das kann alles nicht funktionieren, Duty wird auch gar nicht zurückgesetzt. Am einfachsten, wir nehmen ne PVar.


    if(strcmp(cmdtext,"/scripterduty",true)==0 || strcmp(cmdtext,"/sd",true)==0)
    {
    if(isPlayerAnAdmin(playerid,1850))
    {
    new string[128];
    new spieler[MAX_PLAYER_NAME];
    if(GetPVarInt(playerid,"Duty") == 1)
    {
    GetPlayerName(playerid,spieler,sizeof spieler);
    format(string,sizeof string,"%s ist nicht mehr on Duty!",spieler);
    SendClientMessageToAll(GOLD,string);
    SetPlayerColor(playerid,WEISS);
    GetPlayerName(playerid,spieler,sizeof spieler);
    SetPVarInt(playerid,"Duty",0);
    return 1;
    }
    else
    {
    format(string,sizeof string,"%s ist nun on Duty!",spieler);
    SendClientMessageToAll(GOLD,string);
    SetPlayerColor(playerid,GOLD);
    SetPVarInt(playerid,"Duty",1);
    return 1;
    }
    }
    else
    {
    SendClientMessage(playerid,0x646464FF,"Du bist kein Server Scripter");
    return 1;
    }
    return 1
    }


    So müssts passen.

  • Yay =D Danke, an sich gehts jetzt, nur kommt noch'n Warning und es steht nur da " ist nun On Duty" (wenn man's 2x hintereinander eingibt, geht ja jetzt dank euch so, dass man einmal on duty und einmal off duty ist :D)
    Hier der Warning:
    D:\Users\Alex\Desktop\samp server\gamemodes\gdrdm.pwn(1058) : warning 225: unreachable code
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    1 Warning.

    Zeile 1053-1059:
    else
    {
    SendClientMessage(playerid,0x646464FF,"Du bist kein Server Scripter");
    return 1;
    }
    return 1;
    }


    Mit freundlichen Grüßen Draggy^^ (apropos, wie mache ich jetzt dass es da auch anzeigt "[SPIELERNAME] ist nun on duty!" da ja nur da steht " ist nun On duty!" (beim Off duty gehen klappts ja :D))^^


    //EDIT: Das problem hab ich jetzt gefixt dass jetzt auch bein On Duty gehen angezeigt wird wer das war^^

  • Warum haste return unten drinne wenn du es doch schon nach jedem Ereignis machst ?

  • Nicht aufgeben :D

    if(strcmp(cmdtext,"/scripterduty",true)==0 || strcmp(cmdtext,"/sd",true)==0)
    {
    if(isPlayerAnAdmin(playerid,1850))
    {
    new string[128];
    new spieler[MAX_PLAYER_NAME];
    if(GetPVarInt(playerid,"Duty") == 1)
    {
    GetPlayerName(playerid,spieler,sizeof spieler);
    format(string,sizeof string,"%s ist nicht mehr on Duty!",spieler);
    SendClientMessageToAll(GOLD,string);
    SetPlayerColor(playerid,WEISS);
    GetPlayerName(playerid,spieler,sizeof spieler);
    SetPVarInt(playerid,"Duty",0);
    return 1;
    }
    else
    {
    format(string,sizeof string,"%s ist nun on Duty!",spieler);
    SendClientMessageToAll(GOLD,string);
    SetPlayerColor(playerid,GOLD);
    SetPVarInt(playerid,"Duty",1);
    return 1;
    }
    }
    else if(isPlayerAnAdmin(playerid,<1849))
    {
    SendClientMessage(playerid,0x646464FF,"Du bist kein Server Scripter");
    return 1;
    }
    }


    So vllt?

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