Beiträge von [KoSoVa]

    Was meinst du damit?
    Hast du denn dazu schon einen Code? Was willst du überhaupt machen? Speichern, oder die gesamte Eingabe, oder für was brauchst du Hilfe?


    Am besten du fängst erst mal an mit dem was du vor hast und postest dann den Teil an dem du hängst.


    Nein Code habe ich leider nicht.. Anfang möchte ich ja , aber ich weiß ehrlichgesagt nicht wie genau.. nehmen wir an , ich möchte als erstes den RegisterDatum in die Datenbank abspeichern und wie mache ich das jetzt genau , und wo muss ich das einfügen? (ich weiß nur das es etwasmit Getdata zu tuen hat)


    Ja, das musst du dann später, wenn du die Variable hast, wieder (mit Variable!) in das Query einfügen. Du hattest es ohne eine Variable für die Health anzugeben im Query. Deshalb hat es deine DB-ID in das Health Feld geschrieben, und das Feld der ID war leer, folglich hat es deine Stats nicht mehr aktualisiert.


    Die Platzhalter (%s, %d, ...) müssen immer gleich viele sein, wie Variablen in den Parametern am Ende vom format.


    Alles klar danke dir! geht nun Perfekt!


    Jedoch habe noch eine Frage


    -> Wie mache ich das mit den Alter,RegisterDatum,Männlich/Weiblich etc? Am besten bitte einen Beispiel dazu! :)


    okay danke geht nun, aber ist jetzt "Health" weg oder? Weil ich es nicht mehr sehe und ich brauch es später noch..

    Dann schalte bitte den MySQL Debug Modus an und poste was im Log steht, wenn du den Spieler bannst.
    Wie du den Debug Modus an machst steht hier: Tipps: Scripting-Probleme richtig erklären (Kapitel 1.4.)


    EDIT:
    SavePlayer(playerid);
    ändere das nebenbei mal zu:
    SavePlayer(pID);


    Hier:



    //EDIT 2: Habe geändert , passiert immer noch nichts.


    Was soll den passieren wenn der Spieler online kommt?
    Poste mal den Code dazu, das was passieren soll, wenn der Spieler online kommt.


    Wird Banned = 1 in der Datenbank gespeichert? Wenn nein: Hast du die Spalte in der Tabelle erstellt? Wenn ja, und es trotzdem nicht gespeichert wird, poste bitte den MySQL Log.


    1) Wenn man Online kommt, soll man direkt gekickt werden.


    2)
    //unter OnPasswordRespone
    if(SpielerInfo[playerid][Banned] == 1)
    {
    Kick(playerid);
    }



    3) Es wird nichts gespeichert + Tabelle wurde erstellt + MySQL log steht nichts vorhin war ein Synx fehler , aber wurde auch behoben!


    NebenInfo:


    Es wird allgemein nichts mehr gespeichert.. selbst das Geld nicht mehr

    So habe den Befehl nochmal etwas übearbeitet , leider wird der Spieler nur gekickt, aber wenn man wieder online kommt passiert nichts!

    ocmd:ban(playerid,params[])
    {
    if(SpielerInfo[playerid][Alevel] >= 1)
    {
    new pID,string[256],aname[MAX_PLAYER_NAME],SpielerName[MAX_PLAYER_NAME],grund[256];
    GetPlayerName(pID,SpielerName,sizeof(SpielerName));
    GetPlayerName(playerid,aname,sizeof(aname));
    if(sscanf(params,"us",pID,grund))return SendClientMessage(playerid, Rot,"[FEHLER]{FFFFFF} Benutze: /Kick [ID/Name] [Grund]");
    if(!IsPlayerConnected(pID) || IsPlayerNPC(pID))return SendClientMessage(playerid, Rot, "[FEHLER]{FFFFFF} Der Spieler ist nicht eingeloggt!");
    SpielerInfo[pID][Banned] = 1;
    format(string,sizeof(string),"[INFO]{FFFFFF} %s {FF9D00}%s {FFFFFF}hat {FF9D00}%s {FFFFFF}verbannt. Grund: {FF9D00}%s",GetPlayerAdminRankName(playerid),aname,SpielerName,grund);
    SendClientMessageToAll(Rot,string);
    SavePlayer(playerid);
    Kick(pID);
    }
    return 1;
    }

    //EDIT: MySQL error ist nun weg.. aber es wird trz nicht in die MYSQL datenbank eingetragen!
    //EDIT 2 : Es wird garnichts gespeichert!



    Hier die Save Funktion:



    SavePlayer(playerid)
    {
    if(SpielerInfo[playerid][eingeloggt] == 0)return 1;
    {
    new query[1024];
    format(query,sizeof(query),"UPDATE user SET Level='%i',Fraktion='%i',Geldaufhand='%i',Kills='%i',Tode='%i',Alevel='%i',Skin='%i',Banned='%i',p_x='%f',p_y='%f',p_z='%f',Health='%f' WHERE id='%i'",SpielerInfo[playerid][Level],SpielerInfo[playerid][Fraktion],GetPlayerMoney(playerid),SpielerInfo[playerid][Kills],SpielerInfo[playerid][Tode],SpielerInfo[playerid][Alevel],SpielerInfo[playerid][Skin],
    SpielerInfo[playerid][Banned],SpielerInfo[playerid][p_x],SpielerInfo[playerid][p_y],SpielerInfo[playerid][p_z],SpielerInfo[playerid][db_id]);
    mysql_function_query(dbhandle,query,false,"","");
    }
    return 1;
    }

    Hallo leute,


    warum geht mein Ban befehl nicht ? BITTE KEINE DIREKTE ANTWORTEN BZW WAS GENAU DARAN FALSCH IST! Bitte erst so ein Tipp geben :)



    ocmd:ban(playerid,params[])
    {
    if(SpielerInfo[playerid][Alevel] >= 1)
    {
    new pID,string[256],aname[MAX_PLAYER_NAME],SpielerName[MAX_PLAYER_NAME],grund[256];
    GetPlayerName(pID,SpielerName,sizeof(SpielerName));
    GetPlayerName(playerid,aname,sizeof(aname));
    if(sscanf(params,"us",pID,grund))return SendClientMessage(playerid, Rot,"[FEHLER]{FFFFFF} Benutze: /Kick [ID/Name] [Grund]");
    format(string,sizeof(string),"[INFO]{FFFFFF} %s %s hat {FF9D00}%s {FFFFFF}verbannt. Grund: {FF9D00}%s",GetPlayerAdminRankName(playerid),aname,SpielerName,grund);
    SendClientMessageToAll(Rot,string);
    Ban(pID);
    SpielerInfo[playerid][Banned] = 1;
    }
    return 1;
    }

    SetTimerEx("Kicken",100,0,"i",pID);


    Geht leider immer noch nicht.. gleicher error:



    ocmd:kick(playerid,params[])
    {
    if(SpielerInfo[playerid][Alevel] >= 1)
    {
    new pID,string[256],aname[MAX_PLAYER_NAME],SpielerName[MAX_PLAYER_NAME],grund[256];
    GetPlayerName(pID,SpielerName,sizeof(SpielerName));
    GetPlayerName(playerid,aname,sizeof(aname));
    if(sscanf(params,"us",pID,grund))return SendClientMessage(playerid, Rot,"[FEHLER]{FFFFFF} Benutze: /Kick [ID/Name] [Grund]");
    format(string,sizeof(string),"[INFO]{FFFFFF} %s %s hat %s gekickt. Grund: %s",GetPlayerAdminRankName(playerid),aname,SpielerName,grund);
    SendClientMessageToAll(Rot,string);
    Kicken(pID) = SetTimerEx("Kicken",100,0,"i",pID);
    }
    return 1;
    }

    Danke es geht nun, aber weili ch jetzt noch einen Timer machen will, kommt nun ein Error:



    ocmd:kick(playerid,params[])
    {
    if(SpielerInfo[playerid][Alevel] >= 1)
    {
    new pID,string[256],aname[MAX_PLAYER_NAME],SpielerName[MAX_PLAYER_NAME],grund[256];
    GetPlayerName(pID,SpielerName,sizeof(SpielerName));
    GetPlayerName(playerid,aname,sizeof(aname));
    if(sscanf(params,"us",pID,grund))return SendClientMessage(playerid, Rot,"[FEHLER]{FFFFFF} Benutze: /Kick [ID/Name] [Grund]");
    format(string,sizeof(string),"[INFO]{FFFFFF} %s %s hat %s gekickt. Grund: %s",GetPlayerAdminRankName(playerid),aname,SpielerName,grund);
    SendClientMessageToAll(Rot,string);
    Kick(pID) = SetTimerEx("Kicken",100,0, "i", playerid);//Fehler: must be lvalue (non-constant)
    }
    return 1;
    }

    Hay,


    ich habe ein Problem mit meinen Kick Befehl.. und zwar ich werde immer selber gekickt... obwohl ich eine andere ID eingebe:



    ocmd:kick(playerid,params[])
    {
    if(SpielerInfo[playerid][Alevel] >= 1)
    {
    new pID,string[256],aname[MAX_PLAYER_NAME],SpielerName[MAX_PLAYER_NAME],grund[256];
    GetPlayerName(pID,SpielerName,sizeof(SpielerName));
    GetPlayerName(playerid,aname,sizeof(aname));
    if(sscanf(params,"us",playerid,grund))return SendClientMessage(playerid, Rot,"[FEHLER]{FFFFFF} Benutze: /Kick [ID/Name] [Grund]");
    format(string,sizeof(string),"[INFO]{FFFFFF} %s %s hat %s gekickt. Grund: %s",GetPlayerAdminRankName(playerid),aname,SpielerName,grund);
    SendClientMessageToAll(Rot,string);
    Kick(pID);
    }
    return 1;
    }


    BITTE KEINE DIREKTE LÖSUNG GEBEN , bitte nur sagen wo ich evlt. was machen könnte... oder sowas

    Das ganze realisierst du mit SetPVarString. http://wiki.sa-mp.com/wiki/SetPVarString


    Hmm, okay, aber kann ich auch mit SpielerInfo[playerid][eingeloggt] abfragen ob der jenige Spieler schon einen Account hat?


    //EDIT 2: Warum geht mein /o chat nicht ? Also obwohl der O-CHAT Aktiviert ist , können keine spieler drin schreiben.



    ocmd:o(playerid,params[])
    {
    if(SpielerInfo[playerid][ochatstatus] == 1)
    {
    new name[MAX_PLAYER_NAME],string[144];
    GetPlayerName(playerid,name,sizeof(name));
    if(!params[0]) return SendClientMessage(playerid, Rot,"[FEHLER]{FFFFFF} Benutze: /o [Text]");
    format(string,sizeof(string),"[O-CHAT] %s %s: %s ",GetPlayerAdminRankName(playerid),name ,params);
    SendClientMessageToAll(ochatfarbe, string);
    }
    else if(SpielerInfo[playerid][ochatstatus] == 0)
    {
    if(SpielerInfo[playerid][Alevel] >= 1)
    {
    new name[MAX_PLAYER_NAME],string[144];
    GetPlayerName(playerid,name,sizeof(name));
    if(!params[0]) return SendClientMessage(playerid, Rot,"[FEHLER]{FFFFFF} Benutze: /o [Text]");
    format(string,sizeof(string),"[O-CHAT] %s %s: %s ",GetPlayerAdminRankName(playerid),name ,params);
    SendClientMessageToAll(ochatfarbe, string);
    }
    }
    return 1;
    }


    ocmd:ochat(playerid,params[])
    {
    if(SpielerInfo[playerid][ochatstatus] == 1)
    {
    new string[256],aname[MAX_PLAYER_NAME];
    GetPlayerName(playerid,aname,sizeof(aname));
    format(string,sizeof(string),"[O-CHAT] {FFFFFF}%s %s hat den O-Chat deaktiviert!",GetPlayerAdminRankName(playerid),aname);
    SendClientMessageToAll(Rot,string);
    SpielerInfo[playerid][ochatstatus] = 0;


    }
    else if(SpielerInfo[playerid][ochatstatus] == 0)
    {
    new string[256],aname[MAX_PLAYER_NAME];
    GetPlayerName(playerid,aname,sizeof(aname));
    format(string,sizeof(string),"[O-CHAT] {FFFFFF}%s %s hat den O-Chat Aktiviert!",GetPlayerAdminRankName(playerid),aname);
    SendClientMessageToAll(Rot,string);
    SpielerInfo[playerid][ochatstatus] = 1;
    }
    return 1;
    }

    Mit SetPVarInt kannst du dem Spieler einen Integer setzten. GetPVarInt dient dazu, einen Integer abzufragen. ;)


    Alles klar danke dir... Jetzt möchte ich gern ein RegisterDatum in die Datenbank eintragen, jedoch wie macht man dass genau ? Könnt ihr mich ein Beispiel geben ? (ich weiß dass es irgendwas mit getdata zutuen hat)