Angepinnt [SAMMELTHREAD] Kleine Scripting Fragen

  • PAWN-Quellcode

    1. C:\Users\Patri\Desktop\GO-Reallife Script\gamemodes\GOReallife.pwn(70286) : error 028: invalid subscript (not an array or too many subscripts): "noooc"
    2. C:\Users\Patri\Desktop\GO-Reallife Script\gamemodes\GOReallife.pwn(70286) : warning 215: expression has no effect
    3. C:\Users\Patri\Desktop\GO-Reallife Script\gamemodes\GOReallife.pwn(70286) : error 001: expected token: ";", but found "]"
    4. C:\Users\Patri\Desktop\GO-Reallife Script\gamemodes\GOReallife.pwn(70286) : error 029: invalid expression, assumed zero
    5. C:\Users\Patri\Desktop\GO-Reallife Script\gamemodes\GOReallife.pwn(70286) : fatal error 107: too many error messages on one line



    Quellcode

    1. ocmd:noooc(playerid, params[])
    2. {
    3. if(IsPlayerConnected(playerid))
    4. {
    5. if(PlayerInfo[playerid][pAdmin] >= 5 && (!noooc))
    6. {
    7. noooc = 1;
    8. BroadCast(COLOR_GRAD2, "Der öffentliche Chat wurde eingeschaltet.");
    9. }
    10. else if (PlayerInfo[playerid][pAdmin] >= 5 && (noooc))
    11. {
    12. noooc = 0;
    13. BroadCast(COLOR_GRAD2, "Der öffentliche Chat wurde ausgeschaltet.");
    14. }
    15. else
    16. {
    17. SendClientMessage(playerid, COLOR_GRAD1, " Tu das Lieber nicht!");
    18. }
    19. }
    20. return 1;
    21. }
    22. ocmd:ooc(playerid, params[])
    23. {
    24. new string[128], text[96], query[256], uhrzeit[32];
    25. if(PlayerInfo[playerid][pLevel] < 2)return SendClientMessage(playerid, COLOR_GREY, "Du musst mindestens Level 2 sein.");
    26. if(sscanf(params, "s", text))return SendClientMessage(playerid, COLOR_GREY, "Benutze (/o)oc [Nachricht]");
    27. if(PlayerInfo[playerid][pMuted]> 0)return SendClientMessage(playerid, COLOR_GREY, "Du bist gemuted!");
    28. if(PlayerInfo[playerid][pAdmin] > 0)
    29. {
    30. for(new i=0;i<GetMaxPlayers();i++)
    31. {
    32. if(noooc[i] == 1) //70286
    33. {
    34. format(string, sizeof(string), "(( %s: %s ))", GetName(playerid), text);
    35. SendClientMessage(i, COLOR_BLUE, string);
    36. }
    37. }
    38. }
    39. else
    40. {
    41. if(noooc == 0)return SendClientMessage(playerid, COLOR_GREY, "Der temporär OOC wurde abgeschaltet.");
    42. for(new i=0;i<GetMaxPlayers();i++)
    43. {
    44. if(noooc[i] == 1)
    45. {
    46. format(string, sizeof(string), "(( %s: %s ))", GetName(playerid), text);
    47. SendClientMessage(i, COLOR_WHITE, string);
    48. }
    49. }
    50. }
    51. return 1;
    52. }
    Alles anzeigen

    Hallo habe ein Problem mit dem /o chat warum meckert der da rum?
  • KinGRaPTiiC schrieb:

    Hey ich habe eine Frage und zwar habe ich mal bei irgendeinem Script gesehen das wenn jemand ADUTY geht er z.B den Servertag [xXx] vor dem Namen stehen hat und wenn er wieder aus dem Dienst geht es wieder weg ist wie bekomme ich sowas hin?

    Also wenn er nicht Aduty ist heißt er z.B so:

    Günter

    Und wenn er Aduty ist:

    [xXx]Günter

    PAWN-Quellcode

    1. new bool:AdminDuty[MAX_PLAYERS];
    2. ocmd:aduty(playerid, params[])
    3. {
    4. if(!AdminDuty[playerid]) // Spieler geht in den Admin-Dienst
    5. {
    6. new AdminTagName[32];
    7. format(AdminTagName, 20, "[xXx]%s", SpielerName(playerid));
    8. SetPlayerName(playerid, AdminTagName);
    9. AdminDuty[playerid] = true;
    10. return 1;
    11. }
    12. // Er geht aus dem Admindienst
    13. SetPlayerName(playerid, SpielerName(playerid));
    14. AdminDuty[playerid] = false;
    15. return 1;
    16. }
    Alles anzeigen
    Wichtig ist noch, dass SpielerName(playerid) den Spielernamen bei OnPlayerConnect o.Ä. speichert und SpielerName(playerid) dann auch später gespeichert wird, so dass du keine Probleme beim Ausloggen etc. bekommst
  • public OnPlayerConnect(playerid)
    {
    new Spieler[64];
    new Sname[MAX_PLAYER_NAME];
    GetPlayerName(playerid,Sname,sizeof(Sname));
    format(Spieler,sizeof(Spieler),"/Spieler/%s.txt",Sname);
    if(dini_Exists(Spieler))
    {
    SendClientMessage(playerid,0xFFAA00FF,"[Server]: Welcome back");
    ShowPlayerDialog(playerid,LOGIN,DIALOG_STYLE_PASSW ORD,"Login","Your Account was found. Login.","Login","Cancel");
    return 1;
    }
    else
    {
    SendClientMessage(playerid,0x00B9FFFF,"Welcome to "ClanTag" DEATHMATCH /killme to Respawn!");
    ShowPlayerDialog(playerid,REGISTER,DIALOG_STYLE_IN PUT,"Register","Choose a Password to register","Register","Cancel");
    return 1;
    }
    if(sSpieler[playerid][Deaktiviert] == 1) // Zeile 138 "Unreachable code"
    {
    Kick(playerid);
    return 1;
    }
    return 1;
    } (ende von onplayerconnect)


    // "Deaktiviert" ist ein Befehl für einen administrator, bestimmte accouns zu deaktivieren, der spieler soll gekickt werden,
    wenn "deaktiviert" positiv ist


    (138) : warning 225: unreachable code


    Wie kann ich das beheben ?
  • Spoiler anzeigen


    Quellcode

    1. COMMAND:setsteuern(playerid,params[])
    2. {
    3. if(ImTutorial[playerid] != 0)return SendClientMessage(playerid,GRAU,"Du kannst keine Befehle nutzen,da du im Tutorial bist.");
    4. if(GetPVarInt(playerid,"Eingeloggt") == 0)return SendClientMessage(playerid,GRAU,"Du bist nicht eingeloggt!");
    5. if(Spieler[playerid][pAWAYFROMKEYBOARD] == 1)return SendClientMessage(playerid,WRONGCMD,"Du bist im AFK-Modus und kannst somit keine Befehle nutzen."),SendClientMessage(playerid,WRONGCMD,"BENUTZE: /back");
    6. if(Spieler[playerid][pInPrison] == 1)return SendClientMessage(playerid,GRAU,"Du bist im Prison.");
    7. if(Spieler[playerid][pDeath] == 1)return SendClientMessage(playerid,GRAU,"Du bist verletzt.");
    8. if(Spieler[playerid][pJailed] != 0)return SendClientMessage(playerid,GRAU,"Du bist im Gefängnis.");
    9. if(Spieler[playerid][pTazerd] == 1)return SendClientMessage(playerid,GRAU,"Du bist K.O/getazert.");
    10. if(Spieler[playerid][pCuffed] == 1)return SendClientMessage(playerid,GRAU,"Du bist gefesselt.");
    11. new string[1450];
    12. if(isPlayerInFrakt(playerid,16) || isPlayerAnAdmin(playerid,6) && Spieler[playerid][pAdminOnduty] == true)
    13. {
    14. if(!IsPlayerInRangeOfPoint(playerid,1.5,362.7142,171.4543,1025.7891))return SendClientMessage(playerid,GRAU,"Du bist nicht am Steuer-Verwaltungs Computer.");
    15. strcat(string,"Lohnsteuer\nKirchensteuer\nMehrwertsteuer\nGrundsteuer\nOrdnungsamtstandgebühr\nSolidaritätssteuer\nReichensteuer\nFahrzeuganmeldegebühr\nArbeitslosengeld\nBlitzertoleranz\nSan Andreas Police Department\n");
    16. strcat(string,"Federal Bueral of Investigation\nSan Andreas Fire Department\nSan Andreas Army\nPublic Order of San Andreas\nGoverment of San Andreas\nJobsperre Freikaufpreis\nAngelschein\nPersonalausweis\nWaffenschein\nParkgebühr\nSteuer Konzept");
    17. ShowPlayerDialog(playerid,DIALOG_STEUERN,DIALOG_STYLE_LIST,""#SERVERFARBE"Steuer{FFFFFF}: Allgemein",string,"Auswählen","Abbrechen");
    18. return 1;
    19. }
    20. return SendClientMessage(playerid,GRAU,"Du bist nicht in der jeweiligen Fraktion./Du bist nicht im Admindienst.");
    21. }
    Alles anzeigen



    Hallo,

    Ich habe beim Dialog ein Problem das es nur bis San ANdreas Fire Department angezeigt wird beim nexten nur Sa der rest wird nicht angezeigt warum?

  • Neu

    Ich erhalte Fehler, sehe aber keinen:

    PAWN-Quellcode

    1. C:\Users\palwal\Documents\v2\gamemodes\gvr.pwn(25206) : error 075: input line too long (after substitutions)
    2. C:\Users\palwal\Documents\v2\gamemodes\gvr.pwn(25207) : error 037: invalid string (possibly non-terminated string)
    3. C:\Users\palwal\Documents\v2\gamemodes\gvr.pwn(25207) : error 017: undefined symbol "Dsso"
    4. C:\Users\palwal\Documents\v2\gamemodes\gvr.pwn(25207) : error 017: undefined symbol "Tankstelle"
    5. C:\Users\palwal\Documents\v2\gamemodes\gvr.pwn(25207) : fatal error 107: too many error messages on one line


    PAWN-Quellcode

    1. if(listitem == 2) //Tankstellen
    2. {
    3. ShowPlayerDialog(playerid, DIALOG_GPS_TANKE, DIALOG_STYLE_LIST, "GPS", "Dsso Tankstelle Los Santos\nJet Tankstelle Los Santos\nGasso Dillimore\nAgip Tankstelle Montgomery\nbft Las Venturas\nbft Las Venturas West\nTotal Las Venturas\nDDsso Tankstelle Las Venturas\npalwalGo Tankstelle Las Venturas\nAral Tankstelle Bone County\nbft Tankstelle Fort Carson\nJet Tankstelle Tierra Robada\nAral Tankstelle El Quebrados\nTotal Tankstelle San Fierro\nGif Tankstelle San Fierro\nAral Tankstelle Los Santos Nord\nGvR Tankstelle Whetstone", "Auswählen", "Abbrechen");
    4. }

    Need Help :/

    @Jeffry
  • Neu

    Cireyses schrieb:

    Kürze deinen String, indem du entweder nach einigen Zeichen am Ende ein "\" setz
    Das bringt nichts, der Compiler interpretiert das dann trotzdem als eine Zeile leider :/

    Man muss den via strcat, strins, format oder ähnlichem zusammenfügen, ist leider ein Compiler Bug :)



    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :pinch:
  • Neu

    @palwal
    Anstatt dafür jetzt extra den String zu kürzen bzw zusammenzufügen kannst du es auch so schreiben:

    PAWN-Quellcode

    1. ShowPlayerDialog(playerid, DIALOG_GPS_TANKE, DIALOG_STYLE_LIST, "GPS","Dsso Tankstelle Los Santos\nJet Tankstelle Los Santos\nGasso Dillimore\nAgip Tankstelle Montgomery\nbft Las Venturas\nbft Las Venturas West\nTotal Las Venturas\nDDsso Tankstelle Las Venturas\npalwalGo Tankstelle Las Venturas\nAral Tankstelle Bone County\nbft Tankstelle Fort Carson\nJet Tankstelle Tierra Robada\nAral Tankstelle El Quebrados\nTotal Tankstelle San Fierro\nGif Tankstelle San Fierro\nAral Tankstelle Los Santos Nord\nGvR Tankstelle Whetstone", "Auswählen", "Abbrechen");

    Dann siehts zwar nicht mehr ganz so schön aus, du brauchst aber keine extra Funktionen. (Geht natürlich nur in diesem Fall. Wenn dein String noch länger wird, wirds auch mit der Methode knapp)
  • Neu

    PAWN-Quellcode

    1. forward Spieler(playerid);
    2. public Spieler(playerid)
    3. {
    4. if(Players == 1)
    5. {
    6. SendClientMessageToAll(GRAU,"[OOC] Es sind nicht genug Spieler zum Starten da!");
    7. for(new i=0; i<MAX_PLAYERS; i++)
    8. {
    9. TogglePlayerControllable(i,0);
    10. }
    11. }
    12. if(Players > 1)
    13. {
    14. SendClientMessageToAll(GRAU,"[OOC] Es sind genug Spieler zum Starten da!");
    15. for(new i=0; i<MAX_PLAYERS; i++)
    16. {
    17. TogglePlayerControllable(i,1);
    18. }
    19. }
    20. return 1;
    21. }
    Alles anzeigen

    PAWN-Quellcode

    1. forward countdown(sekunden);
    2. public countdown(sekunden)
    3. {
    4. if(sekunden < 0)
    5. {
    6. TextDrawHideForAll(textid); //Hier für alle dann verschwinden lassen
    7. TextDrawDestroy(textid); //Und dann ggf zerstören
    8. for(new i = 0; i != MAX_PLAYERS; i++)
    9. {
    10. if(!IsPlayerConnected(i)) continue;
    11. AddStaticVehicle(603,1996.3143,2107.4868,10.5815,270.9597,75,77); // car 1
    12. AddStaticVehicle(597,2217.6785,-1144.3297,25.5638,246.3326,0,1); // car cop
    13. AddPlayerClass(0,2217.9575,-1142.6348,25.8046,246.3701,0,0,0,0,0,0); // person cop
    14. AddStaticVehicle(597,2225.3459,-1147.9573,25.5848,241.1193,0,1); // car cop 1
    15. AddPlayerClass(0,2225.7766,-1146.2927,25.8052,241.1622,0,0,0,0,0,0); // person cop 1
    16. AddStaticVehicle(598,2231.1885,-1147.3685,25.5765,226.9986,0,1); // car cop 1
    17. AddPlayerClass(0,2232.0166,-1145.8538,25.7969,227.0359,0,0,0,0,0,0); // person cop 2
    18. AddPlayerClass(0,2207.8762,-1131.3096,25.6250,252.5959,0,0,0,0,0,0); // cop person 3
    19. AddStaticVehicle(599,2207.8901,-1133.1573,25.8234,252.5959,0,1); // car cop 4
    20. }
    21. return 0;
    22. }
    23. new string[64];
    24. format(string,sizeof(string),"Die Runde startet in %d Sekunden",sekunden);
    25. TextDrawSetString(textid, string);
    26. sekunden--; //und dann jeweils Sekunden verringern
    27. SetTimerEx("countdown", 1000, 0, "i", sekunden); //Aufrufen, solange Sekunden >= 0 sind
    28. return 1;
    29. }
    Alles anzeigen


    Warum spawnt der Spieler nicht nach 10 Sekunden?
  • Neu

    PHP-Typ schrieb:

    Warum spawnt der Spieler nicht nach 10 Sekunden?
    Ich verstehe nicht, was du da versuchst.

    AddPlayerClass gibt die Möglichkeit einen Skin zu wählen in der ClassSelection.

    Da musst du ihn auch mal rein setzen, das könntest du mit ForceClassSelection und SpawnPlayer tun.

    Allerdings ist bei AddPlayerClass der erste Parameter die Modelid, wo du überall 0 hast.

    Was hat das für einen Sinn? Er würde immer den CJ Skin angezeigt bekommen.

    Und du erstellst überall Autos für jeden Spieler...die verwenden aufeinander gestapelt xD

    Bei 20 Spielern, macht das 100 Autos und jeweils 20 aufeinander xD gg



    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :pinch:

    Beitrag von reaL. ()

    Dieser Beitrag wurde vom Autor gelöscht ().