Beiträge von Kaliber

    Geht der Code eventuell besser und ressourcenschonender ?


    Du solltest es vermeiden Variablen in Schleifen zu deklarieren...denn dann werden sie bei jedem Durchlauf neu deklariert :rolleyes:


    So kannst du es besser machen:


    public OnRconLoginAttempt(ip[],password[],success) {
    if(success) return 1;
    new string[128],pip[16];
    for(new i; i<MAX_PLAYERS; i++) {
    GetPlayerIp(i,pip,sizeof(pip));
    if(strcmp(ip,pip) != 0) continue;
    Ban(i),gettime(string[0],string[1],string[2]);
    format(string,sizeof(string),"Sicherheitsban der IP %s. Verwendetes Passwort: %s. %02d:%02d:%02d.",ip,password,string[0],string[1],string[2]);
    return LogCommand(string);
    }
    return 1;
    }


    mfg. :thumbup:

    Für den Server die Befehle konnte ich alle (fast fehlerfrei ohne Hilfe)


    Wieso scheitert es dann, trotz Wiki an diesen 4 Zeilen:


    if(!strcmp(cmdtext, "/Infernus")) {
    if(IsPlayerInAnyVehicle(playerid)) DestroyVehicle(GetPlayerVehicleID(playerid));
    new Float:p[4],vID;
    GetPlayerPos(playerid,p[0],p[1],p[2]),GetPlayerFacingAngle(playerid,p[3]);
    return vID = CreateVehicle(411,p[0],p[1],p[2],p[3],-1,-1,-1),PutPlayerInVehicle(playerid,vID,0),1;
    }


    Wenn du nur eine Hydra zerstören willst, dann bräuchten wir entweder den Code, wie du sie erstellst bzw eine Variable oder du fügst noch was mit Admin-Rechten hinzu...
    Halt so wie du es willst :rolleyes:


    mfg. :thumbup:

    hier, wäre auch etwas fahrlässig wenn man das deaktivieren könnte.


    Man kann die RCON Konsole deaktivieren, entweder wenn man InGame /rcon password 0 eingibt oder schon direkt in der server.cfg das passwort auf 0 stellt.


    Dann kann sich keiner mehr als RCON-Admin einloggen.


    mfg. :thumbup:

    Da ich absolut kein Leben habe...habe ich dir mal deinen Befehl neu geschrieben.


    Schaus dir mal an und ich hoffe du erkennst die Unterschiede und lernst etwas daraus ;)


    ocmd:configplayer(playerid, params[]) {
    if(SpielerInfo[playerid][pAdmin] < 3) return SendClientMessage(playerid,-1,"Du besitzt keine Rechte diesen Befehl zu verwenden!");
    new ppID, syntax[32], wert, string[145];
    if(sscanf(params,"usi",ppID,syntax,wert)) {
    SendClientMessage(playerid, COLOR_WHITE, "{19FF00}Verwende: {0041FF}/configplayer [SpielerID] [Syntax] [Wert]");
    SendClientMessage(playerid, 0x7D0000FF, "| ======== [ Verfügbare Syntaxen ] ======== |");
    SendClientMessage(playerid, 0x7D0000FF, "Level Geschlecht Exp Cash Bankkonto Verbrechen Kills Tode Knast WantedTode");
    SendClientMessage(playerid, 0x7D0000FF, "Job JobGehalT Fraktion Rank Skin Handynummer ARG Spielminuten Verwarnungen HandyGeld");
    SendClientMessage(playerid, 0x7D0000FF, "Zigaretten Handyvertrag Perso Coins Duty Gehalt Wanted");
    return SendClientMessage(playerid, 0x7D0000FF, "| ======== [ Verfügbare Syntaxen ] ======== |");
    }
    if(!IsPlayerConnected(ppID)) return SendClientMessage(playerid,-1,"Ein Spieler mit dieser SpielerID ist nicht online!");
    if(!strcmp(syntax, "Level", true)) {
    SetPlayerScore(ppID, wert),SpielerInfo[ppID][pAge] = wert;
    format(string, sizeof string, "[CONFIG] Du hast das Level von %s auf %d gesettet!", GetName(ppID), wert);
    SendClientMessage(playerid, 0x00B9FFFF, strin);
    format(string, sizeof string, "[CONFIG] Admin %s hat dir das Level auf %d gesettet!", GetName(playerid), wert);
    return SendClientMessage(ppID, 0x00B9FFFF, string);
    } else if(!strcmp(syntax, "Geschlecht", true)) {
    if(wert != 1) return SendClientMessage(playerid, COLOR_RED, "Der Wert darf nicht unter 1 und über 2 sein!");
    new sex[9];strcat(sex,(wert == 1) ? ("Männlich") : ("Weiblich"),9);
    SpielerInfo[ppID][pSex] = wert;
    format(string, sizeof string, "[CONFIG] Du hast das Geschlecht von %s auf %s gesettet!", GetName(ppID), sex);
    SendClientMessage(playerid, 0x00B9FFFF, string);
    format(string, sizeof string, "[CONFIG] Admin %s hat dir das Bargeld auf %s gesettet!", GetName(playerid), sex);
    return SendClientMessage(ppID, 0x00B9FFFF, string);
    } else if(!strcmp(syntax, "Exp", true)) {
    SpielerInfo[ppID][pExp] = wert;
    format(string, sizeof string, "[CONFIG] Du hast die Respektpunkte von %s auf %d gesettet!", GetName(ppID), wert);
    SendClientMessage(playerid, 0x00B9FFFF, string);
    format(string, sizeof string, "[CONFIG] Admin %s hat dir die Respektpunkte auf %d gesettet!", GetName(playerid), wert);
    return SendClientMessage(ppID, 0x00B9FFFF, string);
    } else if(!strcmp(syntax, "Cash", true)) {
    ResetPlayerMoney(ppID),SpielerInfo[ppID][pCash] = wert;
    format(string, sizeof string, "[CONFIG] Du hast das Bargeld von %s auf %d$ gesettet!", GetName(ppID), wert);
    SendClientMessage(playerid, 0x00B9FFFF, string);
    format(string, sizeof string, "[CONFIG] Admin %s hat dir das Bargeld auf %d$ gesettet!", GetName(playerid), wert);
    return SendClientMessage(ppID, 0x00B9FFFF, string),GivePlayerMoney(ppID, wert);
    } else if(!strcmp(syntax, "Bankkonto", true)) {
    SpielerInfo[ppID][pAccount] = wert;
    format(string, sizeof string, "[CONFIG] Du hast das Bankguthaben von %s auf %d$ gesettet!", GetName(ppID), wert);
    SendClientMessage(playerid, 0x00B9FFFF, string);
    format(string, sizeof string, "[CONFIG] Admin %s hat dir das Bankguthaben auf %d$ gesettet!", GetName(playerid), wert);
    return SendClientMessage(ppID, 0x00B9FFFF, string);
    } else if(!strcmp(syntax, "Verbrechen", true)) {
    SpielerInfo[ppID][pCrimes] = wert;
    format(string, sizeof string, "[CONFIG] Du hast die Verbrechen von %s auf %d gesettet!", GetName(ppID), wert);
    SendClientMessage(playerid, 0x00B9FFFF, string);
    format(string, sizeof string, "[CONFIG] Admin %s hat dir deine Verbrechen auf %d gesettet!", GetName(playerid), wert);
    return SendClientMessage(ppID, 0x00B9FFFF, string);
    } else if(!strcmp(syntax, "Kills", true)) {
    SpielerInfo[ppID][pKills] = wert;
    format(string, sizeof string, "[CONFIG] Du hast die Kills von %s auf %d gesettet!", GetName(ppID), wert);
    SendClientMessage(playerid, 0x00B9FFFF, string);
    format(string, sizeof string, "[CONFIG] Admin %s hat dir deine Kills auf %d gesettet!", GetName(playerid), wert);
    return SendClientMessage(ppID, 0x00B9FFFF, string);
    } else if(!strcmp(syntax, "Tode", true)) {
    SpielerInfo[ppID][pDeaths] = wert;
    format(string, sizeof string, "[CONFIG] Du hast die Tode von %s auf %d gesettet!", GetName(ppID), wert);
    SendClientMessage(playerid, 0x00B9FFFF, string);
    format(string, sizeof string, "[CONFIG] Admin %s hat dir deine Tode auf %d gesettet!", GetName(playerid), wert);
    return SendClientMessage(ppID, 0x00B9FFFF, string);
    } else if(!strcmp(syntax, "Knast", true)) {
    SpielerInfo[ppID][pArrested] = wert;
    format(string, sizeof string, "[CONFIG] Du hast die Knastanzahl von %s auf %d gesettet!", GetName(ppID), wert);
    SendClientMessage(playerid, 0x00B9FFFF, string);
    format(string, sizeof string, "[CONFIG] Admin %s hat dir deine Knastanzahl auf %d gesettet!", GetName(playerid), wert);
    return SendClientMessage(ppID, 0x00B9FFFF, string);
    } else if(!strcmp(syntax, "WantedTode", true)) {
    SpielerInfo[ppID][pWantedDeaths] = wert;
    format(string, sizeof string, "[CONFIG] Du hast die WantedTode von %s auf %d gesettet!", GetName(ppID), wert);
    SendClientMessage(playerid, 0x00B9FFFF, string);
    format(string, sizeof string, "[CONFIG] Admin %s hat dir deine WantedTode auf %d gesettet!", GetName(playerid), wert);
    return SendClientMessage(ppID, 0x00B9FFFF, string);
    } else if(!strcmp(syntax, "Job", true)) {
    SpielerInfo[ppID][sJob] = wert;
    format(string, sizeof string, "[CONFIG] Du hast den Job von %s auf %d gesettet!", GetName(ppID), wert);
    SendClientMessage(playerid, 0x00B9FFFF, string);
    format(string, sizeof string, "[CONFIG] Admin %s hat dir dein Job auf %d gesettet!", GetName(playerid), wert);
    return SendClientMessage(ppID, 0x00B9FFFF, string);
    } else if(!strcmp(syntax, "JobGehalt", true)) {
    SpielerInfo[ppID][pJobGehalt] = wert;
    format(string, sizeof string, "[CONFIG] Du hast den Job Gehalt von %s auf %d gesettet!", GetName(ppID), wert);
    SendClientMessage(playerid, 0x00B9FFFF, string);
    format(string, sizeof string, "[CONFIG] Admin %s hat dir dein Job Gehalt auf %d gesettet!", GetName(playerid), wert);
    return SendClientMessage(ppID, 0x00B9FFFF, string);
    } else if(!strcmp(syntax, "Fraktion", true)) {
    SpielerInfo[ppID][sMember] = wert;
    format(string, sizeof string, "[CONFIG] Du hast die Fraktion von %s auf %d gesettet!", GetName(ppID), wert);
    SendClientMessage(playerid, 0x00B9FFFF, string);
    format(string, sizeof string, "[CONFIG] Admin %s hat dir deine Fraktion auf %d gesettet!", GetName(playerid), wert);
    return SendClientMessage(ppID, 0x00B9FFFF, string);
    } else if(!strcmp(syntax, "Rank", true)) {
    SpielerInfo[ppID][pRank] = wert;
    format(string, sizeof string, "[CONFIG] Du hast den Fraktionsrank von %s auf %d gesettet!", GetName(ppID), wert);
    SendClientMessage(playerid, 0x00B9FFFF, string);
    format(string, sizeof string, "[CONFIG] Admin %s hat dir dein Fraktionsrank auf %d gesettet!", GetName(playerid), wert);
    return SendClientMessage(ppID, 0x00B9FFFF, string);
    } else if(!strcmp(syntax, "Skin", true)) {
    SpielerInfo[ppID][pChar] = wert,SetPlayerSkin(ppID, wert);
    format(string, sizeof string, "[CONFIG] Du hast den Skin von %s auf %d gesettet!", GetName(ppID), wert);
    SendClientMessage(playerid, 0x00B9FFFF, string);
    format(string, sizeof string, "[CONFIG] Admin %s hat dir dein Skin auf %d gesettet!", GetName(playerid), wert);
    return SendClientMessage(ppID, 0x00B9FFFF, string);
    } else if(!strcmp(syntax, "Handynummer", true)) {
    SpielerInfo[ppID][pPnumber] = wert;
    format(string, sizeof string, "[CONFIG] Du hast die Handynummer von %s auf %d gesettet!", GetName(ppID), wert);
    SendClientMessage(playerid, 0x00B9FFFF, string);
    format(string, sizeof string, "[CONFIG] Admin %s hat dir deine Handynummer auf %d gesettet!", GetName(playerid), wert);
    return SendClientMessage(ppID, 0x00B9FFFF, string);
    } else if(!strcmp(syntax, "ARG", true)) {
    SpielerInfo[ppID][pARG] = wert;
    format(string, sizeof string, "[CONFIG] Du hast das Arbeitslosengeld von %s auf %d$ gesettet!", GetName(ppID), wert);
    SendClientMessage(playerid, 0x00B9FFFF, string);
    format(string, sizeof string, "[CONFIG] Admin %s hat dir dein ArbeitslosenGeld auf %d$ gesettet!", GetName(playerid), wert);
    return SendClientMessage(ppID, 0x00B9FFFF, string);
    } else if(!strcmp(syntax, "Spielminuten", true)) {
    SpielerInfo[ppID][pGesamtMinutes] = wert;
    format(string, sizeof string, "[CONFIG] Du hast die Spielminuten von %s auf %d gesettet!", GetName(ppID), wert);
    SendClientMessage(playerid, 0x00B9FFFF, string);
    format(string, sizeof string, "[CONFIG] Admin %s hat dir deine Spielminuten auf %d gesettet!", GetName(playerid), wert);
    return SendClientMessage(ppID, 0x00B9FFFF, string);
    } else if(!strcmp(syntax, "Verwarnugen", true)) {
    SpielerInfo[ppID][pWarns] = wert;
    format(string, sizeof string, "[CONFIG] Du hast die Admin Verwarnungen von %s auf %d gesettet!", GetName(ppID), wert);
    SendClientMessage(playerid, 0x00B9FFFF, string);
    format(string, sizeof string, "[CONFIG] Admin %s hat dir deine Admin Verwarnungen auf %d gesettet!", GetName(playerid), wert);
    return SendClientMessage(ppID, 0x00B9FFFF, string);
    } else if(!strcmp(syntax, "Spielminuten", true)) {
    SpielerInfo[ppID][pHandyGeld] = wert;
    format(string, sizeof string, "[CONFIG] Du hast das HandGeld von %s auf %d$ gesettet!", GetName(ppID), wert);
    SendClientMessage(playerid, 0x00B9FFFF, string);
    format(string, sizeof string, "[CONFIG] Admin %s hat dir dein HandyGeld auf %d$ gesettet!", GetName(playerid), wert);
    return SendClientMessage(ppID, 0x00B9FFFF, string);
    } else if(!strcmp(syntax, "Zigaretten", true)) {
    SpielerInfo[ppID][pZig] = wert;
    format(string, sizeof string, "[CONFIG] Du hast die Zigaretten von %s auf %d gesettet!", GetName(ppID), wert);
    SendClientMessage(playerid, 0x00B9FFFF, string);
    format(string, sizeof string, "[CONFIG] Admin %s hat dir deine Zigaretten auf %d gesettet!", GetName(playerid), wert);
    return SendClientMessage(ppID, 0x00B9FFFF, string);
    } else if(!strcmp(syntax, "Handyvertrag", true)) {
    SpielerInfo[ppID][pHandyVer] = wert;
    format(string, sizeof string, "[CONFIG] Du hast den Handyvertrag von %s auf %d gesettet!", GetName(ppID), wert);
    SendClientMessage(playerid, 0x00B9FFFF, string);
    format(string, sizeof string, "[CONFIG] Admin %s hat dir dein Handyvertrag auf %d gesettet!", GetName(playerid), wert);
    return SendClientMessage(ppID, 0x00B9FFFF, string);
    } else if(!strcmp(syntax, "Perso", true)) {
    SpielerInfo[ppID][pOwnPerso] = wert;
    format(string, sizeof string, "[CONFIG] Du hast den Personalausweiß von %s auf %d gesettet!", GetName(ppID), wert);
    SendClientMessage(playerid, 0x00B9FFFF, string);
    format(string, sizeof string, "[CONFIG] Admin %s hat dir dein Personalausweiß auf %d gesettet!", GetName(playerid), wert);
    return SendClientMessage(ppID, 0x00B9FFFF, string);
    } else if(!strcmp(syntax, "Coins", true)) {
    SpielerInfo[ppID][pCoins] = wert;
    format(string, sizeof string, "[CONFIG] Du hast die Coins von %s auf %d gesettet!", GetName(ppID), wert);
    SendClientMessage(playerid, 0x00B9FFFF, string);
    format(string, sizeof string, "[CONFIG] Admin %s hat dir deine Coins auf %d gesettet!", GetName(playerid), wert);
    return SendClientMessage(ppID, 0x00B9FFFF, string);
    } else if(!strcmp(syntax, "Duty", true)) {
    SpielerInfo[ppID][pDuty] = wert;
    format(string, sizeof string, "[CONFIG] Du hast den Dienst von %s auf %d gesettet!", GetName(ppID), wert);
    SendClientMessage(playerid, 0x00B9FFFF, string);
    format(string, sizeof string, "[CONFIG] Admin %s hat dir dein Dienst auf %d gesettet!", GetName(playerid), wert);
    return SendClientMessage(ppID, 0x00B9FFFF, string);
    } else if(!strcmp(syntax, "Gehalt", true)) {
    SpielerInfo[ppID][pGehalt] = wert;
    format(string, sizeof string, "[CONFIG] Du hast den Gehalt von %s auf %d gesettet!", GetName(ppID), wert);
    SendClientMessage(playerid, 0x00B9FFFF, string);
    format(string, sizeof string, "[CONFIG] Admin %s hat dir dein Gehalt auf %d gesettet!", GetName(playerid), wert);
    return SendClientMessage(ppID, 0x00B9FFFF, string);
    } else if(!strcmp(syntax, "Wanted", true)) {
    SpielerInfo[ppID][pWanted] = wert;
    format(string, sizeof string, "[CONFIG] Du hast die Wanteds von %s auf %d gesettet!", GetName(ppID), wert);
    SendClientMessage(playerid, 0x00B9FFFF, string);
    format(string, sizeof string, "[CONFIG] Admin %s hat dir deine Wanteds auf %d gesettet!", GetName(playerid), wert);
    return SendClientMessage(ppID, 0x00B9FFFF, string);
    }
    SendClientMessage(playerid, COLOR_RED, "Falsche Syntax!");
    SendClientMessage(playerid, 0x7D0000FF, "| ======== [ Verfügbare Syntaxen ] ======== |");
    SendClientMessage(playerid, 0x7D0000FF, "Level Geschlecht Exp Cash Bankkonto Verbrechen Kills Tode Knast WantedTode");
    SendClientMessage(playerid, 0x7D0000FF, "Job JobGehalT Fraktion Rank Skin Handynummer ARG Spielminuten Verwarnungen HandyGeld");
    SendClientMessage(playerid, 0x7D0000FF, "Zigaretten Handyvertrag Perso Coins Duty Gehalt Wanted");
    return SendClientMessage(playerid, 0x7D0000FF, "| ======== [ Verfügbare Syntaxen ] ======== |");
    }


    mfg. :thumbup:

    Ich habe mir mal die Funktionen von dem Plugin angeschaut, aber ich glaube es gibt keine Möglichkeit einfach durch alle Datein zu loopen, oder ?


    Doch natürlich...lese es dir doch erstmal in Ruhe durch:


    Code
    Function: dir_list(dir:handle, storage[], &type, length = sizeof(storage));
        Description: Reads through a directory, listing each file/sub-directory one by one.
        Params:
                dir:handle - The handle of the directory that is open to read from.
                storage[] - Where the name of the file/directory is stored.
                type - Where the type of directory is stored, can be either 1 or 2
                (optional) length - This is not needed unless you are passing an array without any length, in which case, use strlen with your array.
    
        Returns: 1 if there a sub-directory/file was found, 0 if there wasn't.


    mfg. :rolleyes:

    Entweder du nutzt ein Plugin dafür, wie dieses hier: http://forum.sa-mp.com/showthread.php?t=92246


    oder du machst es so, dass du die Maps so nennst:


    /*
    Map_0.txt
    Map_1.txt
    Map_2.txt
    Map_3.txt
    */


    //und so dann laden lassen
    new string[10];
    for(new i; i<4; i++) format(string,sizeof string,"Map_%d.txt",i),LoadMap(string);


    oder du packst alle Maps in eine .txt Datei und sorgst durch ein gewisses Zeichen..z.B. # für die Trennung der Maps und splittest es..


    oder du nutzt Datenbanksysteme wie SQLite um das zu verwirklichen ;)


    mfg. :thumbup:

    Weiß einer warum das kommt?


    Versuchs mal so:


    ocmd@3:flock,fclock,fcarlock(playerid,pa[])
    {
    if(Spieler[playerid][Fraktion] <= 0)return SendClientMessage(playerid,Rot,"Du bist in keiner Fraktion!");
    new vehid = GetNearest_Vehicle(playerid,7);
    if(vehid == -1 || Spieler[playerid][Fraktion] != 1) return 1;
    if(FCarlock[vehid] == 1) {
    FCarlock[vehid] = 0;
    for(new p; p<MAX_PLAYERS; p++) if(IsPlayerConnected(p)) SetVehicleParamsForPlayer(vehid,p,0,0);
    } else if(!FCarlock[vehid]) {
    FCarlock[vehid] = 1;
    for(new p; p<MAX_PLAYERS; p++) if(IsPlayerConnected(p)) SetVehicleParamsForPlayer(vehid,p,0,1);
    }
    return 1;
    }


    //Edit: Wofür brauchste die Schleife mit der Variable i? macht doch keinen Sinn :D


    mfg. :thumbup:

    Wie kann man es debuggen?


    Zum Beispiel so:


    ocmd:debug(playerid,params[]) {
    print(params); //<< hier weißt du was übergeben wird
    new pID;
    if(sscanf(params,"u",pID)) return SendClientMessage(playerid,-1,"Verwendung: /debug [spielerid]");
    printf("%d",pID); //Hier was sscanf macht
    return SendClientMessage(pID,-1,"Hallo Spieler pID!");
    }


    Dann kannst du ja in den Logs schauen, was da ausgegeben wird und wo der Fehler liegt ;)


    mfg. :thumbup:

    In diesem Fall, kannst du es doch auch einfach so machen:


    ocmd:teststring(playerid,params[])
    {
    if(!params[0]) return SendClientMessage(playerid, COLOR_RED,"Benutze: /Teststring [Text]");
    new strings[145];
    format(strings, sizeof(strings), "Du hast %s eingegeben!", params);
    return SendClientMessage(playerid, COLOR_GREEN, strings);
    }


    ocmd:testuser(playerid,params[])
    {
    if(!params[0]) return SendClientMessage(playerid, COLOR_RED,"Benutze: /Testuser [SpielerName / ID]");
    new string[145],name[MAX_PLAYER_NAME],pID = strval(params);
    if(!IsPlayerConnected(pID)) return SendClientMessage(playerid, COLOR_RED,"Dieser Spieler ist nicht online.");
    GetPlayerName(pID, name, sizeof(name));
    format(string, sizeof(string), "Du hast %s ausgewählt!", name);
    return SendClientMessage(playerid, COLOR_GREEN, string);
    }


    Wenn es aber auch bei anderen Befehlen nicht klappen sollte, einfach mal Debuggen ;)


    PS: Nicht so große Strings nehmen! Das Limit bei der Chat Ausgabe liegt bei 144 + Null Char...nicht bei 512 :rolleyes:


    mfg. :thumbup:

    wie das gehen soll bzw. was genau die besagte Funktion eig. tut.


    Nun, wenn man z.B. DisableInteriorEnterExits(); verwendet, werden alle Interiors die aus dem Singleplayer drinnen sind, deaktiviert.


    Sprich auch alle Bots, auch wenn du den Spieler in den selben Interior setzt z.B. Ammunation / Burger Shot o.ä. ist dort kein Bot oder sonst was, der dir was verkauft.


    SetPlayerShopName


    Diese Funktion sorgt dafür, dass genau in einem bestimmten Laden z.B. nur Ammunation dann da ein Bot steht, der dir Waffen verkauft ;)


    mfg. :thumbup:

    Kaliber das kann nicht sein, da für alle 14 Bots der selbe connect+spawnvorgang ist.


    Na, aber irgendwas muss es ja sein, sonst würde es ja funktionieren :P


    Nutzt du NPC-Plugins...vielleicht nicht alle auf Linux geswitcht? :huh:

    liegt das daran?


    Nein, allerdings ist es auch nicht gut, seinen heapspace (denn das macht man mit #pragma dynamic) um 100kB zu vergrößern :pinch:


    Deine Bots connecten, spawnen und disconnecten. Dann print-Debugge doch einfach wo das Problem ist...lässt du sie evtl in irgendeiner Funktion kicken? Evtl Anti-Cheats? Oder halt irgendwo kick(playerid) ...o.ä.?


    mfg. :rolleyes: