Beiträge von FamouZz_


    Sehr geehrte Communtiy,


    mit diesem Thema möchte ich mich gerne für eine freie Stelle als Entwickler (ggf. auch zweiter Entwickler) für ein kommendes SA:MP Projekt bereit stellen.
    Das ganze Projekt sollte dementsprechend auf der Genre Reallife basieren. Ich halte nicht viel von Godfather Edits, sondern bin eher auf der Suche nach eigenständigen Selfmade Gamemodes, für die Entwicklung.
    Sollte mich dennoch ein Projekt mit einem Godfather Gamemode überzeugen, würde ich mich ggf. auch dafür bereit stellen.


    Im echten Leben heiße ich Alexander, bin derzeit 20 Jahre alt und wohnhaft in der Nähe der Landeshauptstadt Hannover.
    Ich arbeite derzeit bei der Deutschen Post AG, wo ich meine Tätigkeiten als Kurierfahrer leiste.
    Als Zeitvertreib bin ich viel am Computer, treffe mich mit Freunden oder wende mich der Programmierung zu.


    Ich beherrsche ebenfalls erfahrene Kenntnisse in PAWN, sowie Grundkenntnisse in HTML, CSS und PHP. Ebenfalls besteht Erfahrung in TeamSpeak sowie WoltLab.
    Als Referenzen gebe ich mal "Virtual Reallife" an, welches ich damals zusammen mit hav0k entwickelt und geleitet habe.


    Wer Interesse daran hat, darf sich gerne mit seinem Projekt bei mir vorstellen!

    Hallo,


    kann mir jemand den Wert ermitteln?


    i5 6400
    MSI Geforce GTX 970 (4GB Gaming)
    8 GB HyperX
    MSI Z170A Gaming Pro Board
    1 TB HDD
    120 GB SSD

    Fehler besteht immer noch

    Hallo,


    habe mir ein CP geladen, bekomme jedoch ein Fehler, damit ich es starten kann.


    Sieht den Fehler jemand, ist angeblich in der letzten Zeile.


    Achso, okay danke. :)


    Der query scheint richtig zu laufen


    SQL
    SELECT * FROM server_accounts WHERE Name = 'Peter' LIMIT 1

    /e:
    Es kommt immer nur (befördert), obwohl ich ihm einen niedrigeren Rang setze?

    CMD:makeadmin(playerid, params[])
    {
    new playerID, Rang, string[256];
    //if(PlayerInfo[playerid][pAdmin] < 6)return SendClientMessage(playerid, COLOR_GREY, ERROR_ADMIN);
    if(sscanf(params, "ui", playerID, Rang))return SendClientMessage(playerid, COLOR_GREY, "Verwendung: /makeadmin [SpielerID/Teilname] [Rang]");
    if(Rang < 0 || Rang > 6)return SendClientMessage(playerid, COLOR_GREY, "Verwendung: /makeadmin [SpielerID/Teilname] [Rang (0-6)]");
    if(!IsPlayerConnected(playerID))return SendClientMessage(playerid, COLOR_GREY, ERROR_OFFLINE);
    if(!PlayerInfo[playerID][pLogin])return SendClientMessage(playerid, COLOR_GREY, ERROR_LOGIN);
    if(Rang < PlayerInfo[playerID][pAdmin])
    {
    PlayerInfo[playerID][pAdmin] = Rang;
    if(Rang == 0)
    {
    format(string, sizeof(string),"AdminCMD: %s %s hat dich aus dem Team geworfen", GetPlayerAdminName(playerid), PlayerInfo[playerid][pName]);
    SendClientMessage(playerID, COLOR_LIGHTBLUE, string);
    format(string, sizeof(string),"AdminCMD: Du hast %s aus dem Team geworfen", PlayerInfo[playerID][pName]);
    SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
    }
    else
    {
    format(string, sizeof(string),"AdminCMD: %s %s hat dich zum Team-Rang %s degradiert", GetPlayerAdminName(playerid), PlayerInfo[playerid][pName], GetPlayerAdminName(playerID));
    SendClientMessage(playerID, COLOR_LIGHTBLUE, string);
    format(string, sizeof(string),"AdminCMD: Du hast %s zum Team-Rang %s degradiert", PlayerInfo[playerID][pName], GetPlayerAdminName(playerID));
    SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
    }
    }
    else
    {
    format(string, sizeof(string),"AdminCMD: %s %s hat dich zum Team-Rang %s befördert", GetPlayerAdminName(playerid), PlayerInfo[playerid][pName], GetPlayerAdminName(playerID));
    SendClientMessage(playerID, COLOR_LIGHTBLUE, string);
    format(string, sizeof(string),"AdminCMD: Du hast %s zum Team-Rang %s befördert", PlayerInfo[playerID][pName], GetPlayerAdminName(playerID));
    SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
    }
    return 1;
    }

    Problem behoben, eines besteht lediglich noch.


    Ich habe ein System, welches einen Spieler ermöglicht, Überweisungen auszuführen, während der Spieler offline ist.
    Das ganze funktioniert auch halb, ich überweise beispielweise den Spieler Finn Geld und es funktioniert, nehme ich einen anderen Spieler in der Datenbank bekomme ich die Meldung, dass der Account nicht gefunden wurde.



    [list=1][*]public Server_ATMTranslate(playerid)
    [*]{
    [*] new rows = cache_num_rows();
    [*] if(rows)
    [*] {
    [*] new ID, LastMoney, query[128], PIN;
    [*] cache_get_value_name_int(0, "ID", ID);
    [*] cache_get_value_name_int(0, "Bank", LastMoney);
    [*] cache_get_value_name_int(0, "PIN", PIN);
    [*]
    [*] if(PIN == 0)
    [*] {
    [*] strdel(DialogString, 0, sizeof(DialogString));
    [*] format(DialogString, sizeof(DialogString),""HTML_SERVER1"Fehler:"HTML_SERVER2" Der angegebene Spieler hat noch kein Konto bei der Bank of SA\n\n"HTML_SERVER2"Willkommen bei der "HTML_SERVER1"Bank of SA"HTML_SERVER2",\n"HTML_SERVER2"bitte gebe nun den gewünschten Spieler an, welchen du ("HTML_SERVER1"$%d"HTML_SERVER2") überweisen möchtest.\n\n", ATMAmount[playerid]);
    [*] strcat(DialogString, ""HTML_SERVER1"Info: "HTML_SERVER2"Bitte gebe nun in das untere Feld den Namen ein, hierbei ist es irrelevant ob er online oder offline ist.");
    [*] ShowPlayerDialog(playerid, DIALOG_ATMTRANSLATEPLAYER, DIALOG_STYLE_INPUT, ""#HTML_SERVER1""#SERVER_NAME" "HTML_SERVER2"- Bankautomat (Geld überweisen)", DialogString, "Bestätigen", "Zurück");
    [*] return 1;
    [*] }
    [*]
    [*] PlayerInfo[playerid][pBank] -= ATMAmount[playerid];
    [*] LastMoney += ATMAmount[playerid];
    [*]
    [*] mysql_format(MySQLConnection, query, sizeof(query), "UPDATE `server_accounts` SET `Bank` = '%d' WHERE `ID` = '%d' LIMIT 1", LastMoney, ID);
    [*] mysql_query(MySQLConnection, query);
    [*]
    [*] strdel(DialogString, 0, sizeof(DialogString));
    [*] format(DialogString, sizeof(DialogString),""HTML_SERVER2"Willkommen bei der "HTML_SERVER1"Bank of SA"HTML_SERVER2",\n"HTML_SERVER2"du hast dem offline Spieler "HTML_SERVER1"%s "HTML_SERVER2"erfolgreich ("HTML_SERVER1"$%d"HTML_SERVER2") auf sein Bankkonto überwiesen.\n\n"HTML_SERVER1"Info: "HTML_SERVER2"Diese Transaktion ist nun ebenfalls in deiner Transaktionsübersicht vorhanden.", ATMPlayer[playerid] , ATMAmount[playerid]);
    [*] ShowPlayerDialog(playerid, DIALOG_ATMTRANSLATEFINISH, DIALOG_STYLE_MSGBOX, ""#HTML_SERVER1""#SERVER_NAME" "HTML_SERVER2"- Bankautomat (Geld überweisen)", DialogString, "Schließen", "");
    [*]
    [*] new query1[512], timestring[256], Day, Month, Year, Hour, Minute, Second;
    [*] getdate(Year, Month, Day);
    [*] gettime(Hour, Minute, Second);
    [*] format(timestring, sizeof(timestring),"%02d.%02d.%d - %02d:%02d:%02d", Day, Month, Year, Hour, Minute, Second);
    [*] mysql_format(MySQLConnection, query1, sizeof(query1),"INSERT INTO `server_atmlog`(`Absender`, `Empfänger`, `Zeit`, `Betrag`) VALUES ('%e', '%e', '%s', '%d')", PlayerInfo[playerid][pName], ATMPlayer[playerid], timestring, ATMAmount[playerid]);
    [*] mysql_query(MySQLConnection, query1);
    [*] }
    [*] else
    [*] {
    [*] strdel(DialogString, 0, sizeof(DialogString));
    [*] format(DialogString, sizeof(DialogString),""HTML_SERVER1"Fehler:"HTML_SERVER2" Der angegebene Spieler existiert nicht in der Datenbank\n\n"HTML_SERVER2"Willkommen bei der "HTML_SERVER1"Bank of SA"HTML_SERVER2",\n"HTML_SERVER2"bitte gebe nun den gewünschten Spieler an, welchen du ("HTML_SERVER1"$%d"HTML_SERVER2") überweisen möchtest.\n\n"HTML_SERVER1"Info: "HTML_SERVER2"Bitte gebe nun in das untere Feld den Namen ein, hierbei ist es irrelevant ob er online oder offline ist.", ATMAmount[playerid]);
    [*] ShowPlayerDialog(playerid, DIALOG_ATMTRANSLATEPLAYER, DIALOG_STYLE_INPUT, ""#HTML_SERVER1""#SERVER_NAME" "HTML_SERVER2"- Bankautomat (Geld überweisen)", DialogString, "Bestätigen", "Zurück");
    [*] return 1;
    [*] }
    [*] return 1;
    [*]}
    [/list]



    [list=1][*]format(ATMPlayer[playerid], sizeof(ATMPlayer[]), inputtext);
    [*]
    [*] new query[128];
    [*] mysql_format(MySQLConnection, query, sizeof(query), "SELECT * FROM server_accounts WHERE Name = '%e' LIMIT 1", inputtext);
    [*] mysql_pquery(MySQLConnection, query, "Server_ATMTranslate", "d", playerid);
    [/list]

    Passt perfekt. Entschuldige mich, wenn ich dir am Anfang nicht folgen konnte. Habe das mit der Objekt Variable erst gerade gesehen.


    Ein einziges Problem stellt sich mir noch.
    Ich habe ein System, welches einen Spieler ermöglicht, Überweisungen auszuführen, während der Spieler offline ist.
    Das ganze funktioniert auch halb, ich überweise beispielweise den Spieler Finn Geld und es funktioniert, nehme ich einen anderen Spieler in der Datenbank bekomme ich die Meldung, dass der Account nicht gefunden wurde.

    public Server_ATMTranslate(playerid)
    {
    new rows = cache_num_rows();
    if(rows)
    {
    new ID, LastMoney, query[128], PIN;
    cache_get_value_name_int(0, "ID", ID);
    cache_get_value_name_int(0, "Bank", LastMoney);
    cache_get_value_name_int(0, "PIN", PIN);

    if(PIN == 0)
    {
    strdel(DialogString, 0, sizeof(DialogString));
    format(DialogString, sizeof(DialogString),""HTML_SERVER1"Fehler:"HTML_SERVER2" Der angegebene Spieler hat noch kein Konto bei der Bank of SA\n\n"HTML_SERVER2"Willkommen bei der "HTML_SERVER1"Bank of SA"HTML_SERVER2",\n"HTML_SERVER2"bitte gebe nun den gewünschten Spieler an, welchen du ("HTML_SERVER1"$%d"HTML_SERVER2") überweisen möchtest.\n\n", ATMAmount[playerid]);
    strcat(DialogString, ""HTML_SERVER1"Info: "HTML_SERVER2"Bitte gebe nun in das untere Feld den Namen ein, hierbei ist es irrelevant ob er online oder offline ist.");
    ShowPlayerDialog(playerid, DIALOG_ATMTRANSLATEPLAYER, DIALOG_STYLE_INPUT, ""#HTML_SERVER1""#SERVER_NAME" "HTML_SERVER2"- Bankautomat (Geld überweisen)", DialogString, "Bestätigen", "Zurück");
    return 1;
    }

    PlayerInfo[playerid][pBank] -= ATMAmount[playerid];
    LastMoney += ATMAmount[playerid];

    mysql_format(MySQLConnection, query, sizeof(query), "UPDATE `server_accounts` SET `Bank` = '%d' WHERE `ID` = '%d' LIMIT 1", LastMoney, ID);
    mysql_query(MySQLConnection, query);

    strdel(DialogString, 0, sizeof(DialogString));
    format(DialogString, sizeof(DialogString),""HTML_SERVER2"Willkommen bei der "HTML_SERVER1"Bank of SA"HTML_SERVER2",\n"HTML_SERVER2"du hast dem offline Spieler "HTML_SERVER1"%s "HTML_SERVER2"erfolgreich ("HTML_SERVER1"$%d"HTML_SERVER2") auf sein Bankkonto überwiesen.\n\n"HTML_SERVER1"Info: "HTML_SERVER2"Diese Transaktion ist nun ebenfalls in deiner Transaktionsübersicht vorhanden.", ATMPlayer[playerid] , ATMAmount[playerid]);
    ShowPlayerDialog(playerid, DIALOG_ATMTRANSLATEFINISH, DIALOG_STYLE_MSGBOX, ""#HTML_SERVER1""#SERVER_NAME" "HTML_SERVER2"- Bankautomat (Geld überweisen)", DialogString, "Schließen", "");

    new query1[512], timestring[256], Day, Month, Year, Hour, Minute, Second;
    getdate(Year, Month, Day);
    gettime(Hour, Minute, Second);
    format(timestring, sizeof(timestring),"%02d.%02d.%d - %02d:%02d:%02d", Day, Month, Year, Hour, Minute, Second);
    mysql_format(MySQLConnection, query1, sizeof(query1),"INSERT INTO `server_atmlog`(`Absender`, `Empfänger`, `Zeit`, `Betrag`) VALUES ('%e', '%e', '%s', '%d')", PlayerInfo[playerid][pName], ATMPlayer[playerid], timestring, ATMAmount[playerid]);
    mysql_query(MySQLConnection, query1);
    }
    else
    {
    strdel(DialogString, 0, sizeof(DialogString));
    format(DialogString, sizeof(DialogString),""HTML_SERVER1"Fehler:"HTML_SERVER2" Der angegebene Spieler existiert nicht in der Datenbank\n\n"HTML_SERVER2"Willkommen bei der "HTML_SERVER1"Bank of SA"HTML_SERVER2",\n"HTML_SERVER2"bitte gebe nun den gewünschten Spieler an, welchen du ("HTML_SERVER1"$%d"HTML_SERVER2") überweisen möchtest.\n\n"HTML_SERVER1"Info: "HTML_SERVER2"Bitte gebe nun in das untere Feld den Namen ein, hierbei ist es irrelevant ob er online oder offline ist.", ATMAmount[playerid]);
    ShowPlayerDialog(playerid, DIALOG_ATMTRANSLATEPLAYER, DIALOG_STYLE_INPUT, ""#HTML_SERVER1""#SERVER_NAME" "HTML_SERVER2"- Bankautomat (Geld überweisen)", DialogString, "Bestätigen", "Zurück");
    return 1;
    }
    return 1;
    }



    format(ATMPlayer[playerid], sizeof(ATMPlayer[]), inputtext);

    new query[128];
    mysql_format(MySQLConnection, query, sizeof(query), "SELECT * FROM server_accounts WHERE Name = '%e' LIMIT 1", inputtext);
    mysql_pquery(MySQLConnection, query, "Server_ATMTranslate", "d", playerid);

    Tue ich doch bei mir gar nicht?

    CMD:create(playerid, params[])
    {
    new str[32];
    if(sscanf(params, "s[32]", str))return SendClientMessage(playerid, COLOR_GREY, "Verwendung: /create [ATM]");
    if(strcmp(str, "ATM", true) == 0)
    {
    new id = GetFreeATM();
    if(id == -1) return SendClientMessage(playerid, COLOR_GREY, "Der Server hat die maximale Anzahl an Bankautomaten erreicht. ("#MAX_ATM"/"#MAX_ATM")");
    new Float:Pos[3], Object;
    GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);
    GetXYInFrontOfPlayer(playerid, Pos[0], Pos[1], 3.0);
    Object = CreateDynamicObject(19526, Pos[0], Pos[1], Pos[2], 0.0, 0.0, 0.0, -1, -1);
    EditDynamicObject(playerid, Object);
    ATMEdit[playerid] = true;
    }
    return 1;
    }

    Ebenso danke. Was mir komisch erscheint ist, ich erstelle beispielweise 3 ATM's In-Game.
    Diese werden in die Datenbank eingetragen und lediglich 1 funktioniert davon.


    Ich weiß nicht woran es liegt. Ich versuche Sie zu löschen, lediglich der funktionierende lässt sich löschen. Object alles wird entfernt, aber aus der Datenbank wird der ATM eben nicht entfernt.


    Erstellen/Löschen:

    CMD:create(playerid, params[])
    {
    new str[32];
    if(sscanf(params, "s[32]", str))return SendClientMessage(playerid, COLOR_GREY, "Verwendung: /create [ATM]");
    if(strcmp(str, "ATM", true) == 0)
    {
    new id = GetFreeATM();
    if(id == -1) return SendClientMessage(playerid, COLOR_GREY, "Der Server hat die maximale Anzahl an Bankautomaten erreicht. ("#MAX_ATM"/"#MAX_ATM")");
    new Float:Pos[3], Object;
    GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);
    GetXYInFrontOfPlayer(playerid, Pos[0], Pos[1], 3.0);
    Object = CreateDynamicObject(19526, Pos[0], Pos[1], Pos[2], 0.0, 0.0, 0.0, -1, -1);
    EditDynamicObject(playerid, Object);
    ATMEdit[playerid] = true;
    }
    return 1;
    }



    CMD:delete(playerid, params[])
    {
    new str[32];
    if(sscanf(params, "s[32]", str))return SendClientMessage(playerid, COLOR_GREY, "Verwendung: /delete [ATM]");
    if(strcmp(str, "ATM", true) == 0)
    {
    for(new i=0;i<MAX_ATM;i++)
    {
    if(IsPlayerInRangeOfPoint(playerid, 3.0, ATMInfo[i][aPos][0], ATMInfo[i][aPos][1], ATMInfo[i][aPos][2]))
    {
    ATMInfo[i][aPos][0] = 0.0;
    ATMInfo[i][aPos][1] = 0.0;
    ATMInfo[i][aPos][2] = 0.0;
    ATMInfo[i][aPos][3] = 0.0;
    ATMInfo[i][aPos][4] = 0.0;
    ATMInfo[i][aPos][5] = 0.0;
    DestroyDynamicObject(ATMInfo[i][aObject]);
    DestroyDynamic3DTextLabel(ATMInfo[i][aLabel]);
    ATMInfo[i][aLabel] = Text3D: INVALID_3DTEXT_ID;



    new query[128];
    mysql_format(MySQLConnection, query, sizeof(query), "DELETE FROM `server_atm` WHERE `ID` = '%d' LIMIT 1", i);
    mysql_query(MySQLConnection, query);
    return 1;
    }
    }
    return SendClientMessage(playerid, COLOR_GREY, "Du befindest dich nicht in der Nähe eines Bankautomaten.");
    }
    return 1;
    }



    stock GetFreeATM()
    {
    new szQuery[64], rows;
    for(new id = 0; id < MAX_ATM; id++)
    {
    mysql_format(MySQLConnection,szQuery,sizeof(szQuery),"SELECT * FROM `server_atm` WHERE `ID` = '%d'", id);
    mysql_query(MySQLConnection,szQuery);
    cache_get_row_count(rows);
    if(rows == 0) return id;
    }
    return -1;
    }

    Danke, perfekt.


    Sollte dementsprechend so sein, jedoch werden ATM's nur manchmal gelöscht und ich kriege öfters eine Warnung, dass ich nicht in der Nähe bin. Letztendlich funktioniert dann auch derjenige ATM nicht mehr.. :D

    CMD:delete(playerid, params[])
    {
    new str[32];
    if(sscanf(params, "s[32]", str))return SendClientMessage(playerid, COLOR_GREY, "Verwendung: /delete [ATM]");
    if(strcmp(str, "ATM", true) == 0)
    {
    for(new i=0;i<MAX_ATM;i++)
    {
    if(IsPlayerInRangeOfPoint(playerid, 1.5, ATMInfo[i][aPos][0], ATMInfo[i][aPos][1], ATMInfo[i][aPos][2]))
    {
    ATMInfo[i][aPos][0] = 0.0;
    ATMInfo[i][aPos][1] = 0.0;
    ATMInfo[i][aPos][2] = 0.0;
    ATMInfo[i][aPos][3] = 0.0;
    ATMInfo[i][aPos][4] = 0.0;
    ATMInfo[i][aPos][5] = 0.0;
    DestroyDynamicObject(ATMInfo[i][aObject]);
    DestroyDynamic3DTextLabel(ATMInfo[i][aLabel]);
    ATMInfo[i][aLabel] = Text3D: INVALID_3DTEXT_ID;



    new query[128];
    mysql_format(MySQLConnection, query, sizeof(query), "DELETE FROM `server_atm` WHERE `ID` = '%d' LIMIT 1", i);
    mysql_query(MySQLConnection, query);
    }
    }
    return SendClientMessage(playerid, COLOR_GREY, "Du befindest dich nicht in der Nähe eines Bankautomaten.");
    }
    return 1;
    }