Beiträge von Kasakow

    Guten Morgen!


    Und zwar habe ich das mal auf einen Server so gesehen: Roller und Fraktionsfahrzeuge sind sobald sie zugeschlossen sind nur für dich betretbar, für andere nicht; wenn aufgeschlossen, für beide.
    Ich hoffe ihr versteht was ich meine.


    mfg :thumbup:

    @Mencent:


    if(!strcmp(cmd, "/timeban", true))
    {
    if(sInfo[playerid][sAdminlevel] < 2)return SendClientMessage(playerid, COLOR_RED, "FEHLER: {FFFFFF}Du kannst diesen Befehl nicht nutzen.");
    if(sInfo[playerid][sAdmindienst] == 0)return SendClientMessage(playerid, COLOR_RED, "FEHLER: {FFFFFF}Du bist nicht im Dienst.");
    new playername[MAX_PLAYER_NAME], zeit[20], grund[20], string[128], query[300], returnid;
    playername = strtok(cmdtext, idx), zeit = strtok(cmdtext, idx), grund = strtok(cmdtext, idx);
    if(!IsNumeric(playername)) returnid = ReturnPlayerID(playername); else returnid = strval(playername);
    if(!strlen(playername) || !strlen(zeit) || !strlen(grund))return SendClientMessage(playerid, COLOR_LIGHTBLUE, "BENUTZE: {FFFFFF}/timeban [Name/ID] [Zeit (In Stunden)] [Grund]");
    if(!IsPlayerConnected(returnid))return SendClientMessage(playerid, COLOR_RED, "FEHLER: {FFFFFF}Der Spieler ist nicht online");
    if(strval(zeit) < 1 || strval(zeit) > 72)return SendClientMessage(playerid, COLOR_RED, "FEHLER: {FFFFFF}Ungültige Zeit. (1-72)");
    format(string, sizeof string, "AdmCmd: %s wurde von %s für %i Stunden gebannt, Grund: %s", getPlayerName(returnid), getPlayerName(playerid), zeit, grund),
    SendClientMessageToAll(COLOR_LIGHTRED, string),
    mysql_format(dbhandle, query, sizeof query, "INSERT INTO `bans` (`Datum`,`Uhrzeit`,`Benutzername`,`Benutzerip`,`Verantwortlicher`,`Grund`,`Type`) VALUES ('%e','%e','%e','%e','%e','%e','temp')",
    gDate(),gTime(),getPlayerName(returnid),getPlayerIP(returnid),getPlayerName(playerid),grund),
    mysql_pquery(dbhandle, query, "", ""),
    sInfo[returnid][sTimeban] = gettime() + 3600 * strval(zeit),
    Kick(returnid);
    return 1;
    }


    if(sInfo[playerid][sTimeban] > gettime())
    {
    SendClientMessage(playerid, COLOR_RED, "SERVER: {FFFFFF}Dein Benutzerkonto wurde temporär gesperrt, die Verbindung zum Server wird beendet!"),
    Kick(playerid);
    return 1;
    }


    Würde das so Funktionieren, bin eingerostet.


    mfg :thumbup:

    Okay, das klingt sehr gut.


    Aber was in denn jetzt mit strtok alles möglich ?


    Zitat

    Nicht direkt. Kommt auf dein Vorhaben an, aber wenn du nur solche Befehle erstellen willst, dann passt das so.


    mfg :thumbup:

    Okay cool, was mich nebenbei auch mal Interessieren würde.


    Arbeitet strtok schneller oder langsamer als sscanf und merkt man im Spielgeschehen einen Unterschied ?


    mfg :thumbup:

    Ok, anscheinend hat mein Versuch Funktioniert.


    Aber ich finde der Befehl sieht etwas hässlig so aus, kann man den nicht schöner gestalten ?


    if(!strcmp(cmd, "/veh", true)){
    new vehicleid[20],color1[20],color2[20];
    vehicleid=strtok(cmdtext,idx);
    if(!strlen(vehicleid))return SendClientMessage(playerid, -1, "Syntax: /veh [FahrzeugID] [Farbe1] [Farbe2]");
    if(!IsNumeric(vehicleid))return SendClientMessage(playerid, -1, "Syntax: /veh [FahrzeugID] [Farbe1] [Farbe2]");
    color1=strtok(cmdtext,idx);
    if(!strlen(color1))return SendClientMessage(playerid, -1, "Syntax: /veh [FahrzeugID] [Farbe1] [Farbe2]");
    if(!IsNumeric(color1))return SendClientMessage(playerid, -1, "Syntax: /veh [FahrzeugID] [Farbe1] [Farbe2]");
    color2=strtok(cmdtext,idx);
    if(!strlen(color2))return SendClientMessage(playerid, -1, "Syntax: /veh [FahrzeugID] [Farbe1] [Farbe2]");
    if(!IsNumeric(color2))return SendClientMessage(playerid, -1, "Syntax: /veh [FahrzeugID] [Farbe1] [Farbe2]");
    new string[60];
    format(string,sizeof string,"Du hast dir ein Fahrzeug erstellt. (%i|%i,%i)",strval(vehicleid),strval(color1),strval(color2)),
    SendClientMessage(playerid,-1,string);
    new Float:mp[4];
    GetPlayerPos(playerid,mp[0],mp[1],mp[2]),GetPlayerFacingAngle(playerid,mp[3]),
    CreateVehicle(strval(vehicleid),mp[0],mp[1],mp[2],mp[3],strval(color1),strval(color2),-1);
    return 1;
    }


    mfg :thumbup:

    Ich möchte die Befehle in dem ganz normalen Callback OnPlayerCommandText schreiben.
    Ich probiere gerade mal rum, deine Funktionen scheinen mir schon mal ganz nützlich.


    mfg :thumbup:

    Hallo!


    Kann mir jemand erklären wie man mit strtok umgeht ?
    Ich möchte das auch mal lernen.
    Beispiel: /kick [Name/PlayerID] [Grund] ||/timeban [Name/PlayerID] [Zeit] [Grund]


    mfg :thumbup: