Beiträge von Kasakow

    Benutze SetPlayerAttachedObject
    Kannst auch gerne meinen Editor dafür haben :)


    command(editx, playerid, params[])
    {
    new id, Float:x, Float:y, Float:z;
    if(sscanf(params, "i", id))return SendClientMessage(playerid, Weiß, "Befehl: /editx [Objekt - ID]");
    SetPlayerAttachedObject(playerid, 0, id, 6, x, y, z, 0.0, 0.0, 0.0, 1, 1, 1);
    EditAttachedObject(playerid, 0);
    return 1;
    }


    public OnPlayerEditAttachedObject(playerid, response, index, modelid, boneid, Float:fOffsetX, Float:fOffsetY, Float:fOffsetZ, Float:fRotX, Float:fRotY, Float:fRotZ, Float:fScaleX, Float:fScaleY, Float:fScaleZ)
    {
    new File:hFile = fopen("/file.txt", io_append), string[420];
    if(response && hFile) {
    format(string, sizeof(string), "SetPlayerAttachedObject(playerid, 0, %i, 0, %f, %f, %f, %f, %f, %f, %f, %f, %f);", modelid, fOffsetX, fOffsetY, fOffsetZ, fRotX, fRotY, fRotZ, fScaleX, fScaleY, fScaleZ);
    fwrite(hFile, string);
    fclose(hFile);
    }
    else if((!response || !hFile)) {
    RemovePlayerAttachedObject(playerid, 0);
    }
    return 1;
    }

    Guten Tag,


    Mein Name lautet MrPawn.
    Und zwar habe ich mein Script von Dini auf MySQL umgeschrieben (War ein etwas älteres & kleineres Script).
    Aber jetzt wenn ich gesperrt bin und auf den Server connecte kommt der Dialog nicht mehr.


    if(mysql_CheckIP(playerid) || mysql_CheckBan(playerid))return 1;


    Das lasse ich bei OnPlayerConnect abfragen!
    Das soll bewirken das der Login Dialog nicht kommt.


    Das habe ich dann bei OnPlayerRequestClass
    if(mysql_CheckIP(playerid) == 1)
    {
    new string[128];
    format(string, sizeof(string), "* Der IP Gesperrte Spieler %s hat versucht sich einzuloggen!",GetName(playerid));
    SendAdminMessage(playerid, HellRot, string);
    SendClientMessage(playerid, Rot, "Deine IP wurde Gesperrt. Du wirst nun gekickt!");
    Kick_Ex(playerid);
    return 1;
    }
    if(mysql_CheckIP(playerid) == 1)
    {
    new string[128];
    format(string, sizeof(string), "* Der Gesperrte Spieler %s hat versucht sich einzuloggen!",GetName(playerid));
    SendAdminMessage(playerid,HellRot, string);
    SendClientMessage(playerid, Rot, "Dein Account wurde Gesperrt. Du wirst nun gekickt!");
    Kick_Ex(playerid);
    return 1;
    }

    //BanAbfrage
    stock mysql_CheckBan(playerid) {
    if(!mysql_CheckAccount(playerid))return -1;
    sStats[playerid][sGesperrt] = mysql_GetInt("acc", "Gesperrt", "Name", GetName(playerid));
    return sStats[playerid][sGesperrt];
    }
    //CheckIP
    stock mysql_CheckIP(playerid) {
    new query[256], result;
    mysql_real_escape_string(GetIP(playerid), GetIP(playerid));
    format(query, sizeof(query), "SELECT * FROM ip WHERE BIP = '%s'", GetIP(playerid));
    mysql_query(query);
    mysql_store_result();
    if(mysql_num_rows()){result = true;}
    else result = false;
    mysql_free_result();
    return bool:result;
    }


    Aber das lustige ist, mir wird nichtmal gesagt das ich gesperrt bin :)
    Hier mal ein Paar Screens zur übersicht.


    Datenbank:



    Ingame:





    Wäre nett, wenn mir einer Helfen könnte :thumbup:


    Mit freundlichen Grüßen,


    MrPawn

    Your are banned.. kommt auch wenn du keine Verbindung aufbauen ,sowie du schlechtes Internet hast.
    Ich habe dies mal ausprobiert, in dem ich meinen eigenen server mit "DoS" überflutet habe ;)
    Dieser Fehler kann genau so gut auftreten, sobald der Server schlechte anbindung hat.

    Habs behoben :thumbup:


    Aktueller Code:


    public OnPlayerSpawn(playerid)
    {
    if(uInfo[playerid][sTod] == 1) {
    SpawnEx(playerid);
    }
    return 1;
    }


    public OnPlayerDeath(playerid, killerid, reason)
    {
    uInfo[playerid][sTod] = 1;
    return 1;
    }


    //Spawn System
    stock SpawnEx(playerid) {
    uInfo[playerid][sTod] = 0;
    if(!strcmp(uInfo[playerid][sArena], "Keine", true)) {
    SetCameraBehindPlayer(playerid);
    SetSpawnInfo(playerid, 0, uInfo[playerid][sSkin], 1310.2816, -1369.6655, 13.5655, 181.3278, 0, 0, 0, 0, 0, 0);
    SpawnPlayer(playerid),SetPlayerInterior(playerid, 0), SetPlayerVirtualWorld(playerid, 0),TogglePlayerControllable(playerid, true);
    SetPlayerPos(playerid, 1310.2816, -1369.6655, 13.5655);
    SetPlayerSkin(playerid, uInfo[playerid][sSkin]);
    }
    return 1;
    }

    //Spawn System
    stock SpawnEx(playerid) {
    uInfo[playerid][sTod] = 0;
    if(!strcmp(uInfo[playerid][sArena], "Keine", true)) {
    SetCameraBehindPlayer(playerid);
    SetSpawnInfo(playerid, 0, uInfo[playerid][sSkin], 1310.2816, -1369.6655, 13.5655, 181.3278, 0, 0, 0, 0, 0, 0);
    SpawnPlayer(playerid),SetPlayerInterior(playerid, 0), SetPlayerVirtualWorld(playerid, 0),TogglePlayerControllable(playerid, true);
    }
    return 1;
    }


    Ehm also es ist so:
    Ich mache /test dann sterbe ich.
    Ich komme zu den Pfeiltasten & Spawnbutton, und wenn ich dann auf Spawn klicke, dann kommt mir die Nachricht .
    Also OnPlayerSpawn wird erst nach dem Spawnbutton ausgeführt!

    Guten Tag,


    Mein Name lautet MrPawn.
    Und zwar bekomme ich hier gerade irgentwie dieses bug nicht gefixxt.


    public OnPlayerSpawn(playerid)
    {
    if(GetPVarInt(playerid, "Tod") < 1)return 1;
    SetPVarInt(playerid, "Tod", 0);
    format(uInfo[playerid][sArena], 30, "Keine");
    SpawnEx(playerid);
    return 1;
    }


    public OnPlayerDeath(playerid, killerid, reason)
    {
    SetPVarInt(playerid, "Tod", 1);
    return 1;
    }


    Ich sterbe, spawne zwar am spawn aber bleibe in der luft hänhen und habe diese Pfeiltasten & den Spawn button


    Mit freundlichen Grüßen,


    MrPawn :thumbup:

    Es wird schwer gleich ganz s0Beit im 0.3z zu blocken dennoch hätte ich eine Idee.
    Wenn das so wie in 0.3x ist dann wenn man z.B auf einen 0.3z r2 server joint aber man hat 0.3z wegen s0beit, dann könnte man mit GetPlayerVersion arbeiten :thumbup:


    Sagen wir wir haben einen > 0.3z server
    Dann fragen wir das so ab:


    public OnPlayerConnect(playerid) {
    if(strcmp(GetVersion(playerid), "0.3zr..", false))return Kick(playerid);
    return 1;
    }



    stock GetVersion(playerid) {
    new version[lenght];
    GetPlayerVersion(playerid, version, lenght);
    return version;
    }


    Sie wird ja in die PVars gesetzt sobald, mann ins cpjail gesteckt wurde..