Undefined Symbol..

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
  • Kann mir bei den Errors evtl jemand helfen?


    C:\Dokumente und Einstellungen\xy\Desktop\registersystem.pwn(211) : warning 217: loose indentation
    C:\Dokumente und Einstellungen\xy\Desktop\registersystem.pwn(214) : warning 225: unreachable code
    C:\Dokumente und Einstellungen\xy\Desktop\registersystem.pwn(214) : error 017: undefined symbol "dcmd_kick"
    C:\Dokumente und Einstellungen\xy\Desktop\registersystem.pwn(215) : error 017: undefined symbol "dcmd_kick"
    C:\Dokumente und Einstellungen\xy\Desktop\registersystem.pwn(217) : error 017: undefined symbol "params"
    C:\Dokumente und Einstellungen\xy\Desktop\registersystem.pwn(221) : error 017: undefined symbol "params"


    Codestellen:
    #define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, "")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1


    dcmd(kick,4,cmdtext);
    dcmd_kick(playerid,params[]) {


    if(!strlen(params)) {
    return SendClientMessage(playerid,0xFFFF00AA,"Benutzung: /kick [playerid]");
    }
    new
    pID=strval(params);
    if(!IsPlayerConnected(pID)) {
    return SendClientMessage(playerid,0xFFFF00AA,"Dieser Spieler ist nicht Online!");
    }
    Kick(pID);
    SendClientMessage(playerid,0xFFFF00AA,"Erfolgreich Spieler vom Server gekickt!");
    return 1;
    }
    }


    return 0;
    }

  • Das #define ganz oben rein (wie gewohnt xD)



    #define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, "")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1


    Unter OnPlayerCommandText:



    dcmd(kick, 4, cmdtext);


    und i-wo im script



    dcmd_kick(playerid,params[])
    {
    if(IsPlayerConnected(playerid))
    {
    new sGrund[128], pID;
    if(sscanf(params, "ds", pID, sGrund))
    {
    return SendClientMessage(playerid, Farbe_Grad1, "SERVER: /kick >SpielerID< >Grund<");
    }
    if(!IsPlayerConnected(pID))
    {
    return SendClientMessage(playerid, Farbe_Grad5, "Kein Spieler mit angegebener ID Online");
    }
    new ThePlayer[MAX_PLAYER_NAME], string[128];
    GetPlayerName(pID, ThePlayer, sizeof(ThePlayer));
    format(string, sizeof(string), "%s >ID %d< wurde vom Server gekickt! Grund: %s", ThePlayer, pID, sGrund);
    SendClientMessageToAll(Farbe_Gelb, string);
    Kick(pID);
    }
    return 1;
    }


    such ma meins zu nehmen. da hab ich alles schon "ordentlich" hingemacht ;)


    MY SELFMADE GAMEMODE "NoName"

    Spoiler anzeigen


    - AccountSystem: 100%
    - LizenzenSystem: 5%
    - TelefonSystem: 5%
    - JobSystem: 3%
    - GeldSystem: 80%
    - AutoSystem: 75%
    - FahndungsSystem: [color=#ff6600]10%
    [color=#000000]- HausSystem: [color=#ff0000]0%

    [color=#000000]- GeschäftsSystem: [color=#ff0000]0%

    [color=#000000]- ZahlTag System: [color=#ff0000]0%

    [color=#000000]- WetterSystem: [color=#ff0000]0%

    [color=#000000]- AntiCheatSystem: [color=#ff0000]0%

    Spoiler anzeigen
    GameModeName: [GM]MyGamemode
    Filterscripts: None
    Benutze Includes: [Inc]MyInclude
    Voraussichtliche Fertigstellung: Unbekannt
    Voraussichtliche Servereröffnung: Unbekannt
    Voraussichtliche Veröffentlichung des Scripts: Wahrscheinlich NIE
    Voraussichtliche Veröffentlichung des Scripts: Wahrscheinlich NIE
    Sonstige Anmerkungen: Selfmade

  • ach ja das mit dem SSCANF hatte ich auch. du musst das definieren


    Hier ist der link


    MY SELFMADE GAMEMODE "NoName"

    Spoiler anzeigen


    - AccountSystem: 100%
    - LizenzenSystem: 5%
    - TelefonSystem: 5%
    - JobSystem: 3%
    - GeldSystem: 80%
    - AutoSystem: 75%
    - FahndungsSystem: [color=#ff6600]10%
    [color=#000000]- HausSystem: [color=#ff0000]0%

    [color=#000000]- GeschäftsSystem: [color=#ff0000]0%

    [color=#000000]- ZahlTag System: [color=#ff0000]0%

    [color=#000000]- WetterSystem: [color=#ff0000]0%

    [color=#000000]- AntiCheatSystem: [color=#ff0000]0%

    Spoiler anzeigen
    GameModeName: [GM]MyGamemode
    Filterscripts: None
    Benutze Includes: [Inc]MyInclude
    Voraussichtliche Fertigstellung: Unbekannt
    Voraussichtliche Servereröffnung: Unbekannt
    Voraussichtliche Veröffentlichung des Scripts: Wahrscheinlich NIE
    Voraussichtliche Veröffentlichung des Scripts: Wahrscheinlich NIE
    Sonstige Anmerkungen: Selfmade

  • Das Script ist ja ein richtiges Chaos.
    Hier hast die gefixxte Version. -> Klick mich
    Das Callback von OnPlayerCommandText() war nicht richtig geschlossen weil du an die falsche Stelle dcmd_kick eingefügt hast.


    Nebenbei,das OnPlayerUpdate() - Callback ist nicht dazu gedacht großen Code auszuführen.Es wird ~30x pro Sekunden (Wenn man nicht gerade AFK ist) aufgerufen.Das ist totaler blödsinn hier immer wieder die Spielerstatistik zu speichern.Es reicht völlig wenn man alles speichert beim Verlassen des Servers.
    Das es dabei zu laggs kommt sollte klar sein.Mit jedem Spieler wird es schlimmer auf deinem Server.

  • Das Login/Register und Stats hab ich ausm samp forum.. wollte daran eig üben und aufbauen.. wusste net das es son chaos is naja danke :D
    // Edit:
    Eine kleine Sache hätte ich noch.
    Es sieht ja jetzt so aus:
    dcmd_kick(playerid,params[]) {


    if(!strlen(params)) {
    return SendClientMessage(playerid,0xFFFF00AA,"Benutzung: /kick [playerid]");
    }
    new
    pID=strval(params);
    if(!IsPlayerConnected(pID)) {
    return SendClientMessage(playerid,0xFFFF00AA,"Dieser Spieler ist nicht Online!");
    }
    Kick(pID);
    SendClientMessage(playerid,0xFFFF00AA,"Der Spieler wurde erfolgreich gekickt!");
    return 1;
    }


    Wie mach ich das noch geguckt wird ob der Spieler Admin ist?
    So?
    dcmd_kick(playerid,params[]) {


    if(!strlen(params)) {
    return SendClientMessage(playerid,0xFFFF00AA,"Benutzung: /kick [playerid]");
    }
    new
    pID=strval(params);
    if(!IsPlayerConnected(pID)) {
    if (PlayerInfo[playerid][pAdmin] >= 1) {
    return SendClientMessage(playerid,0xFFFF00AA,"Dieser Spieler ist nicht Online!");
    }
    return SendClientMessage(playerid,0xFFFF00AA,"Du bist kein Admin!");
    }
    Kick(pID);
    SendClientMessage(playerid,0xFFFF00AA,"Der Spieler wurde erfolgreich gekickt!");
    return 1;
    }
    Oder wie? Sry für die fragen xD

    Einmal editiert, zuletzt von Maggo ()

  • so hier dcmd_kick(playerid,params[])
    {
    if (PlayerInfo[playerid][pAdmin] >= 1)
    {
    if(!strlen(params))
    {
    return SendClientMessage(playerid,0xFFFF00AA,"Benutzung: /kick [playerid]");
    }
    new
    pID=strval(params);
    if(!IsPlayerConnected(pID))
    {
    return SendClientMessage(playerid,0xFFFF00AA,"Dieser Spieler ist nicht Online!");
    }
    Kick(pID);
    SendClientMessage(playerid,0xFFFF00AA,"Der Spieler wurde erfolgreich gekickt!");
    return 1;
    }
    else return SendClientMessage(playerid,farbe,"Nur für Admins!!");
    }