Beiträge von SA:MP-Designs

    Guten Tag,


    ich möchte derzeit ein Timeban System sowie ein Prison System erstellen, in diesem man(n) lediglich seine Zeit absitzen muss.
    Sprich ich banne den Spieler für eine gewisse Zeit und berechne die Zeit bis er wieder entbannt werden sollte und frage das dann ab.
    Wie funktioniert das genau? :whistling:

    Zu 1.: Google mal nach "raksamp client", da müsstest du fündig werden
    Zu 2.: Was sollen die Bots machen?


    Finde den Clienten nicht für 0.3z, hat den jemand?
    Suche den echt dringend


    //edit:text
    //edit:text

    C:\Users\Acer\Desktop\Samp server\gamemodes\LoS.pwn(6590) : warning 219: local variable "cmd" shadows a variable at a preceding level
    C:\Users\Acer\Desktop\Samp server\gamemodes\LoS.pwn(8098) : warning 219: local variable "carid" shadows a variable at a preceding level
    C:\Users\Acer\Desktop\Samp server\gamemodes\LoS.pwn(8139) : warning 219: local variable "carid" shadows a variable at a preceding level
    C:\Users\Acer\Desktop\Samp server\gamemodes\LoS.pwn(8401) : warning 219: local variable "vehicleid" shadows a variable at a preceding level
    C:\Users\Acer\Desktop\Samp server\gamemodes\LoS.pwn(16074) : warning 219: local variable "x" shadows a variable at a preceding level
    C:\Users\Acer\Desktop\Samp server\gamemodes\LoS.pwn(17666) : warning 219: local variable "cmd" shadows a variable at a preceding level


    Die wurden im Script schon mal so deklariert.

    Guten Tag,


    ich habe direkt 2 Fragen.
    1.Ist es möglich Bots mit einem Programm auf den SA:MP Server connecten zu lassen?
    2.Ist es möglich Bots mit einem Programm auf ein WBB Forum connecten zu lassen?


    Ich rede nicht von normalen SA:MP Bots, sondern Bots die als richtige Spieler wahrgenommen werden.

    Jetzt kommt der Ban Dialog aber nicht, obwohl Gebannt auf 1 steht.
    public OnPlayerRequestClass(playerid, classid)
    {
    if(SpielerInfo[playerid][pGebannt] == 0)
    {
    if(mysql_CheckAccount(playerid) == 0)
    {
    ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"{00AFFF}"#SERVERNAME" {FFFFFF}- Registrierung","Willkommen auf "#SERVERNAME"\n\nEs wurde kein Account in der Datenbank gefunden, bitte gebe nun dein gewünschtes Passwort ein.\nSolltest du dein Passwort vergessen haben, melde dich bei einem Head Administrator.","Registrieren","Abbrechen");
    InterpolateCameraPos(playerid, 1327.365844, -1589.601684, 83.515167, 2475.331787, -1668.155273, 41.523700, 28000);
    InterpolateCameraLookAt(playerid, 1332.219238, -1589.629394, 82.313415, 2478.929199, -1668.136474, 38.051193, 3000);
    SetPlayerColor(playerid,COLOR_GRAU);
    }
    else if(mysql_CheckAccount(playerid) == 1)
    {
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"{00AFFF}"#SERVERNAME" {FFFFFF}- Login","Willkommen auf "#SERVERNAME"\n\nDein Account wurde in der Datenbank gefunden, bitte gebe nun dein Passwort ein.\nSolltest du dein Passwort vergessen haben, melde dich bei einem Head Administrator.","Login","Abbrechen");
    InterpolateCameraPos(playerid, 1327.365844, -1589.601684, 83.515167, 2475.331787, -1668.155273, 41.523700, 28000);
    InterpolateCameraLookAt(playerid, 1332.219238, -1589.629394, 82.313415, 2478.929199, -1668.136474, 38.051193, 3000);
    SetPlayerColor(playerid,COLOR_GRAU);
    }
    }
    else
    {
    new string[128];
    format(string,sizeof(string),"Dieser Account ist gesperrt, mit ihm kann nicht mehr gespielt werden.\n\nAusführendes Team-Mitglied: %s\nGrund: %s\nDauer: Permanent",SpielerInfo[playerid][pAusfuehrender],SpielerInfo[playerid][pGrund]);
    ShowPlayerDialog(playerid,DIALOG_GEBANNT,DIALOG_STYLE_MSGBOX,"{00AFFF}"#SERVERNAME"{FFFFFF}: Information",string,"Verlassen","");
    SetTimerEx("KickDelayed",100,0,"i",playerid);
    }
    return 1;
    }

    Letztendlich hier nur in der Funktion, woanders wird das nicht geladen.
    SpielerInfo[playerid][pAusfuehrender],SpielerInfo[playerid][pGrund]


    Hier noch die 2 Variablen von Enum
    pAusfuehrender[30],
    pGrund[40]


    sowie die LoadPlayer Funktion
    mysql_fetch_field_row(data,"Ausfuehrender");
    SpielerInfo[playerid][pAusfuehrender]=strval(data);
    mysql_fetch_field_row(data,"Grund");
    SpielerInfo[playerid][pGrund]=strval(data);

    Gut danke funktioniert, jetzt habe ich nur noch ein Problem mit der Abfrage.
    new string[128];
    format(string,sizeof(string),"Dieser Account ist gesperrt, mit ihm kann nicht mehr gespielt werden.\n\nAusführendes Team-Mitglied: %s\nGrund: %s\nDauer: Permanent",SpielerInfo[playerid][pAusfuehrender],SpielerInfo[playerid][pGrund]);
    ShowPlayerDialog(playerid,DIALOG_GEBANNT,DIALOG_STYLE_MSGBOX,"{00AFFF}"#SERVERNAME"{FFFFFF}: Information",string,"Verlassen","");
    SetTimerEx("KickDelayed",100,0,"i",playerid);


    Die beiden Zeilen die einen Wert wiedergeben sollen, bleiben leer.

    Zeigt trotzdem kein Mucks.
    [23:22:43] CMySQLHandler::Query(UPDATE `accounts` SET `Level` = '1',`Adminlevel` = '4',`Online` = '0',`Datum` = '',`Geschlecht` = '1',`Alter` = '16',`Skin` = '2',`Fraktion` = '0',`Fraktionsrang` = '0',`Leader` = '0',`MuteZeit` = '0',`Gemutet` = '0' WHERE Name='Excuse') - Successfully executed.
    [23:22:43] >> mysql_query( Connection handle: 1 )
    [23:22:43] CMySQLHandler::Query(UPDATE `accounts` SET `Gebannt` = '1',`Ausfuehrender` = '',`Grund` = '' WHERE Name='Excuse') - Successfully executed.
    [23:22:43] >> mysql_query( Connection handle: 1 )


    Wieso wir das hier den immer wieder überschrieben, obwohl es richtig gesetzt ist? :thumbdown:

    stock mysql_GetString(Table[], Field[], Where[], Is[])
    {
    new query[128], Get[128];
    mysql_real_escape_string(Table, Table);
    mysql_real_escape_string(Field, Field);
    mysql_real_escape_string(Where, Where);
    mysql_real_escape_string(Is, Is);
    format(query, 128, "SELECT `%s` FROM `%s` WHERE `%s` = '%s'", Field, Table, Where, Is);
    mysql_query(query);
    mysql_store_result();
    mysql_fetch_row(Get);
    mysql_free_result();
    return Get;
    }

    Zeigt trotzdem kein Mucks.
    [23:22:43] CMySQLHandler::Query(UPDATE `accounts` SET `Level` = '1',`Adminlevel` = '4',`Online` = '0',`Datum` = '',`Geschlecht` = '1',`Alter` = '16',`Skin` = '2',`Fraktion` = '0',`Fraktionsrang` = '0',`Leader` = '0',`MuteZeit` = '0',`Gemutet` = '0' WHERE Name='Excuse') - Successfully executed.
    [23:22:43] >> mysql_query( Connection handle: 1 )
    [23:22:43] CMySQLHandler::Query(UPDATE `accounts` SET `Gebannt` = '1',`Ausfuehrender` = '',`Grund` = '' WHERE Name='Excuse') - Successfully executed.
    [23:22:43] >> mysql_query( Connection handle: 1 )

    Hier im Ban Befehl, da geht das ja auch.
    new query[128];
    format(query,128,"UPDATE `accounts` SET `Ausfuehrender`='%s',`Grund` = '%s' WHERE `Name`='%s'",SpielerInfo[pID][pName],reason,SpielerInfo[pID][pName]);
    mysql_query(query);


    Dann kommt letztendlich nur noch die normale SavePlayer Funktion.
    stock SavePlayer(playerid)
    {
    if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid))
    {
    if(GetPVarInt(playerid,"Eingeloggt") == 1)
    {
    new query[800];
    format(query, sizeof(query), "UPDATE `accounts` SET `Level` = '%d',`Adminlevel` = '%d',`Online` = '%d',`Datum` = '%s',`Geschlecht` = '%i',`Alter` = '%i',`Skin` = '%i',`Fraktion` = '%i',`Fraktionsrang` = '%i',`Leader` = '%i',`MuteZeit` = '%i',`Gemutet` = '%i' WHERE Name='%s'",
    SpielerInfo[playerid][pLevel],SpielerInfo[playerid][pAdminlevel],SpielerInfo[playerid][pOnline],SpielerInfo[playerid][pDatum],SpielerInfo[playerid][pGeschlecht],SpielerInfo[playerid][pAlter],GetPlayerSkin(playerid),SpielerInfo[playerid][pFraktion],SpielerInfo[playerid][pFraktionsrang],SpielerInfo[playerid][pLeader],SpielerInfo[playerid][pMuteZeit],SpielerInfo[playerid][pGemutet],SpielerInfo[playerid][pName]);
    format(query, sizeof(query), "UPDATE `accounts` SET `Gebannt` = '%i',`Ausfuehrender` = '%s',`Grund` = '%s' WHERE Name='%s'",
    SpielerInfo[playerid][pGebannt],SpielerInfo[playerid][pAusfuehrender],SpielerInfo[playerid][pGrund],SpielerInfo[playerid][pName]);
    mysql_query(query);
    printf(query);
    }
    }
    return 1;
    }

    Letztendlich würde ich aber trotzdem gerne wissen wieso er es erst speichert und in der Speicherung wieder überschreibt.

    Code
    [21:46:18] CMySQLHandler::Query(UPDATE `accounts` SET `Ausfuehrender`='Excuse',`Grund` = 'Healhacker' WHERE `Name`='Excuse') - Successfully executed.
    [21:46:18] >> mysql_query( Connection handle: 1 )
    [21:46:18] CMySQLHandler::Query(UPDATE `accounts` SET `Gebannt` = '1',`Ausfuehrender` = '',`Grund` = '' WHERE Name='Excuse') - Successfully executed.
    [21:46:18] >> mysql_query( Connection handle: 1 )
    [21:46:18] CMySQLHandler::Query(UPDATE `accounts` SET `Gebannt` = '1',`Ausfuehrender` = '',`Grund` = '' WHERE Name='Excuse') - Successfully executed.
    [21:46:18] >> mysql_query( Connection handle: 1 )
    [21:46:18] CMySQLHandler::Query(UPDATE `accounts` SET `Online`='0',`Datum` = '14.03.2014' WHERE `Name`='Excuse') - Successfully executed.

    Das ist unnötig, kann ich genauso SpielerInfo[pID][pName] benutzen.

    Successfully executed.
    Succesfully heißt erfolgreich und executed ausgeführt
    Also kurz gesagt erfolgreich ausgeführt


    Verstehe nun dein Prob nicht ;)


    Hier wird das nach dem richtigen Wert direkt wieder überschrieben.

    Code
    [21:18:08] CMySQLHandler::Query(UPDATE `accounts` SET `Gebannt` = '1',[b]`Ausfuehrender` = '',`Grund` = '' WHERE Name='Excuse') - [/b]Successfully executed.
    [21:18:09] >> mysql_query( Connection handle: 1 )


    Warum willst du dich eigendlich selber bannen?


    Habe keine zum testen da. :D

    Mein System mag mich glaube ich nicht, zumindest also hier.
    In der MySQL Log wird es kurz gesetzt bzw wiedergeben, wird aber nach der Funktion danach wieder überspielt.

    Code
    [21:18:08] CMySQLHandler::Query(UPDATE `accounts` SET `Ausfuehrender`='Excuse',`Grund` = 'Hacker' WHERE `Name`='Excuse') - Successfully executed.
    [21:18:08] >> mysql_query( Connection handle: 1 )
    [21:18:08] CMySQLHandler::Query(UPDATE `accounts` SET `Gebannt` = '1',`Ausfuehrender` = '',`Grund` = '' WHERE Name='Excuse') - Successfully executed.
    [21:18:09] >> mysql_query( Connection handle: 1 )


    new query[128];
    format(query,128,"UPDATE `accounts` SET `Ausfuehrender`='%s',`Grund` = '%s' WHERE `Name`='%s'",SpielerInfo[playerid][pName],reason,SpielerInfo[playerid][pName]);
    mysql_query(query);