Beiträge von Templer

    Vergleich deine Version zu meiner Version. Wie mein Vorredner schon sagte benötigst du die objektid. Desweiteren empfiehle ich dir Spielerbezogene Variablen näher anzusehen, weil so würdest du dich nur auf einen Spieler konzentrieren.



    #define MAX_PFLANZEN (3) // Wieviele Pflanzen ein Spieler pflanzen kann.


    new HanfPflanze[MAX_PLAYERS];
    new Hanfbesitz[MAX_PLAYERS];


    public OnPlayerCommandText(playerid, cmdtext[])
    {
    if (strcmp("/ernten", cmdtext, true, 7) == 0)
    {
    if(HanfPflanze[playerid] == 1)
    {
    DestroyObject(HanfPflanze[playerid]);
    SendClientMessage(playerid,GRUN,"Du hast deine ( 6 g ) Pflanze erfolgreich geerntet");
    HanfPflanze[playerid] = 0;
    Hanfbesitz[playerid] = 6;
    return 1;
    }
    if(HanfPflanze[playerid] == 0)
    {
    SendClientMessage(playerid,ROT,"Du hast keine Pflanze gepflanzt");
    }
    }
    if (strcmp("/pflanzen", cmdtext, true, 9) == 0)
    {
    new Float:X, Float:Y, Float:Z;
    GetPlayerPos(playerid,X,Y,Z);
    if(HanfPflanze[playerid] == 0)
    {
    // Sicherheitshalber +1, weil es in einem ganz seltenen Fall auch eine Objekt ID 0 gäben könnte.
    HanfPflanze[playerid] = CreateObject(19473,X,Y,Z,0,0,0) + 1;
    SendClientMessage(playerid,GRUN,"Du Hast deine Samen Gepflanzt");
    return 1;
    }
    }
    }


    EDIT: Die Lösung von Jeffry würde nur für einen Server laufen können, wo maximal nur ein Spieler verbunden ist.

    Also schau: Ich sehe einen mysql_function_query mit dem Callback 'OnUserCheck' und dort solltest du die id bekommen, die du dort setzen musst. Den interessant ist wie du dann OnPasswordResponse aufrufst. Also ob der User hier nach der id oder wieder nach dem Namen gesucht wird.


    Weil was ich in 'public OnPasswordResponse' sehe ist, dass du dort die Datenbank-ID setzt. Also kann der einzige Fehler nurmehr an dem Query mit OnPasswordResponse liegen.


    Aus diesem Grund schick mir nur alle Zeilen (nicht die Codeblöcke), die 'OnPasswordResponse' in der CodeZeile stehen haben.

    Der Hund liegt an dieser Zeile:

    if(cInfo[i][id_x]==0)continue;

    Alle FahrzeugSlots die Frei sind soll er überspringen, aber den Rest (was dem Spieler gehört) soll er dann löschen.


    Am Besten du suchst dir nur das Fahrzeug raus, in dem er gerade sitzt vielleicht:

    if(cInfo[i][id_x] != GetPlayerVehicleID(playerid))continue;

    Ganz Intelligent wäre es aber, wenn du direkt bei Variablen-Änderung in die Datenbank den neuen Wert speicherst. Dann sparst du dir das "Massenspeichern", wenn der Spieler die Verbindung trennt und der Server wäre sogar Ausfallsicher, wenn plötzlich der SAMP Server Offline geht, ohne OnPlayerDisconnect bei den Spielern aufzurufen.


    Beispiel:



    enum pInfo
    {
    pLevel,
    pAdmin,
    pRespekt,
    pDatabase,
    };
    new PlayerInfo[MAX_PLAYERS][pInfo];


    ConvertFloatToString(Float:value) { new cache[32]; format(cache,32,"%f",value); return cache; }
    ConvertIntegerToString(value) { new cache[32]; format(cache,32,"%i",value); return cache; }


    #define SetPlayerInteger(%0,%1,%2) SetPlayerString(%0,%1,ConvertIntegerToString(%2),PLAYER_VARTYPE_INTEGER)
    #define SetPlayerFloat(%0,%1,%2) SetPlayerString(%0,%1,ConvertFloatToString(%2),PLAYER_VARTYPE_FLOAT)
    stock SetPlayerString(playerid, pInfo:var, value[], vartype = PLAYER_VARTYPE_STRING)
    {
    if(strlen(value) < 1) return false;
    new database_id = PlayerInfo[playerid][pDatabase],
    query[128];
    switch(vartype) {
    case PLAYER_VARTYPE_INTEGER: PlayerInfo[playerid][var] = strval(value);
    case PLAYER_VARTYPE_FLOAT: PlayerInfo[playerid][var] = floatstr(value);
    case PLAYER_VARTYPE_STRING: format(PlayerInfo[playerid][var],strlen(value),"%s",value);
    default: return false;
    }
    format(query,sizeof(query),"UPDATE players SET %d = '%s' WHERE id = '%d' LIMIT 1;", _:var, value, database_id);
    mysql_function_query(1, query, false, "", "");
    return true;
    }

    Das oben sollte nur ein Gedankenanstoß sein. Nebenbei ist es vielleicht bezweifelhaft den Index vom Enum als Spaltennamen zu verwendet, aber ich wollt jetzt nicht allzuviel Zeit darin stecken. Man müsste eben einen weiteren Array anlegen, wo die Standardwerte und Spaltenname von der Datenbank drinnen stehen.


    // EDIT: Hab die Verwendung total vergessen :P


    Zum Auslesen verwendest es so normal


    printf("Player %d has Admin %d", playerid, PlayerInfo[playerid][pAdmin]);


    Und zum Speichern eben so:


    SetPlayerInteger(playerid, pAdmin, 1337); // Setzt den Spieler auf 1337

    Um die ID zu erhalten benötigst du mysql_insert_id. Aber weil du mysql_function_query verwendest ist es ein kleiner Gedankensprung:


    if(dialogid==DIALOG_REGISTER)
    {
    if(response)
    {
    new name[MAX_PLAYER_NAME],query[128],passwort[35];
    GetPlayerName(playerid,name,sizeof(name));
    if(strlen(inputtext)>3)
    {
    //Registrierungsfunktion
    mysql_escape_string(inputtext,passwort,dbhandle);
    format(query,sizeof(query),"INSERT INTO user (username,password) VALUES ('%s','%s') ",name,passwort);
    mysql_function_query(dbhandle,query,false,"OnPlayerRegister","d",playerid);
    }
    else
    {
    //Kleiner als 4 Zeichen
    SendClientMessage(playerid,ROT,"Dein Passwort muss mindestens 4 Zeichen lang sein.");
    ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Registrierung","Gib bitte dein gewünschtes Passwort an:","Okay","Abbrechen");
    }
    }
    else
    {
    Kick(playerid);
    }
    return 1;
    }
    return 1;
    }
    forward OnPlayerRegister(playerid);
    public OnPlayerRegister(playerid)
    {
    sInfo[playerid][db_id] = mysql_insert_id();
    SendClientMessage(playerid, ROT, "Du hast dich Erfolgreich Registriert !");
    SendClientMessage(playerid, LEUCHTENDBLAU, "=====>Willkommen auf Red-Game0v3r-Reallife<=====");
    SetPlayerMoney(playerid, 2500);
    SetPlayerScore(playerid,1);
    SetPlayerColor(playerid, 0xFF00FFFF);
    }

    Guten Nachmittag,



    Das Projekt, aber auch besonders der Programmierer, sucht anstrebende Mapper, Techniker und Fehlertester. Das Script basiert auf Reallife und Roleplay in einem selbst geschriebenem Script, welches schon seit vielen Jahren weiterentwickelt worden ist.


    Bereits gestartet hat das Projekt mit einer 1. Version vor 2 Jahren, welches auf den Film "InTime" basierte (Vorstellung hier zu finden: EmP - Elegant moderner Pathos - Watch your Time )


    Leider war diese Idee nicht besonders gut angekommen, weshalb wir das Script vom Anfang wieder neu aufbauten.


    Wir haben in kurzer Zeit wieder vor, das Projekt in einer 2. Version zu starten.


    Aus diesem Grund benötigen wir nun aktives Personal, welches den Programmierer mit Mapping unterstützt und neuen Usern den Server zeigt oder Fehler am Server austestet.

    Was wir anbieten? Unser Projekt ist in keinster Weise auf Einnahmen außerhalb des Server´s angewiesen, weßhalb wir auch keine Werbung im Forum einschalten. Wir bieten eine reife Projektleitung und ein ausgereiftes Script. Wir bieten auch gerne mehr an, sofern die gebrachte Leistung uns wirklich beeindruckt.


    Ich halte mich auch hier nun etwas kurz, denn wer Interesse an diesem Projekt hat und sich schon von der alten Version beeindrucken hat lassen, den heiße ich Herzlich Willkommen auf unserem Teamspeak 3 Server. Ich freue mich schon auf ein kleines Vorstellungsgespräch mit dir!


    Webseite: http://www.emp-leben.at
    Teamspeak3-Server: server.emp-leben.at:9987
    SAMP-Server: server.emp-leben.at:7777


    Ansprechpartner:
    Maety_Chelios
    Templer


    Lg LaVey

    // EDIT: Ansprechpartner hinzugefügt.

    Manne hat recht, der Compiler sieht den Fehler nicht, weil er einfach die Zahlen dividiert. Nur das es anders gehört:

    if(pInfo[playerid][fraktion] != 1&&pInfo[playerid][fraktion] != 2&&pInfo[playerid][fraktion] != 3&&pInfo[playerid][fraktion] != 15&&pInfo[playerid][fraktion] != 17){
    for(new i=0;i<sizeof LSPDCARS;i++){if(GetPlayerVehicleID(playerid)==LSPDCARS[i])return RemovePlayerFromVehicle(playerid),SendClientMessage(playerid,COLOR_RED,"Du bist kein Cop!");}
    }


    Der Fehler selbst betrifft das Array "LSPDCARS". Könntest du uns zeigen, wie du es definiert hast?

    Hier ein kleiner Codeschnippsel zum Anregen ^^



    new bool:gDeleteVehicle[MAX_VEHICLES] = {false,...};


    public OnVehicleDeath(vehicleid, killerid)
    {
    // Hier vl ne if-Abfrage, wenn das Fahrzeug ein Privatfahrzeug ist
    gDeleteVehicle[vehicleid] = true; // Markiere als Fahrzeug "Zu zerstören"
    return true;
    }


    public OnVehicleSpawn(vehicleid)
    {
    // Wenn das Fahrzeug als "zu zerstören" markiert ist, so lösche es und setze die Variable zurück.
    if(gDeleteVehicle[vehicleid]) {
    gDeleteVehicle[vehicleid] = false;
    DestroyVehicle(vehicleid);
    }
    }

    Entschuldige, womöglich ist ein Fehler drinnen. Ich hab nur leider grad keine Zeit es durchzutesten, aber von der Logik her stimmt es. Solltest du weitere Fragen haben oder Probleme mit dem Code, einfach schreiben.



    // SetPVarString(giveplayerid, "PlayerTicketStrafe", strafe);
    // SetPVarString(giveplayerid, "PlayerTicketGrund", grund);


    #include <a_samp>
    #include <ocmd>
    #include <sscanf2>


    #define TICKET_DISTANCE 25.0


    // Farben
    #define COLOR_GREY (0xAFAFAFAA)
    #define COLOR_GREEN (0x33AA33AA)
    #define COLOR_RED (0xAA3333AA)
    #define COLOR_ORANGE (0xFF9900AA)
    #define COLOR_LIGHTRED (0xFF6347AA)
    #define COLOR_BLUE (0x33CCFFAA)
    #define COLOR_LIGHTBLUE (0x33CCFFAA)
    #define COLOR_LIGHTGREEN (0x9ACD32AA)
    #define COLOR_YELLOW (0xFFFF00AA)
    #define COLOR_WHITE (0xFFFFFFAA)


    ocmd:accept(playerid, params[])
    {
    new new_params[128],
    error[128];


    // --- AB HIER KOMPLIZIERTE (eigentlich nicht) ABFRAGE NACH EINEM ZWISCHEN PARAMTER ---


    // Finde in den Paramter das erste Leerzeichen
    if(strfind(params," ",false)!=-1) {
    // Lagere ab dem Leerzeichen die Parameter in 'new_params'
    strmid(new_params,params,strfind(params, " ", false)+1,strlen(params));


    // Lösche von 'params' alle Parameter, bis auf den ersten
    strdel(params,strfind(params, " ", false),strlen(params));
    }


    // Wenn keine Paramtereingabe erfolgt ist...
    if(strlen(params) < 1) {
    SendClientMessage(playerid,COLOR_GREY,"VERWENDUNG: /accept [Objekt]");
    return SendClientMessage(playerid,COLOR_GREY,"* Mögliche Objekte: ticket");
    }


    // Wenn die Option 'ticket' gewählt worden ist
    if(!strcmp(params,"ticket",true)) {


    new price = GetPVarInt(playerid,"PlayerTicketPrice"),
    copid = GetPVarInt(playerid,"PlayerTicketCopID"),
    Float:PlayerPos[3],
    grund[32],
    copname[MAX_PLAYER_NAME],
    playername[MAX_PLAYER_NAME];



    GetPlayerName(copid,copname,MAX_PLAYER_NAME); // Lagere Namen vom Wachmann
    GetPlayerName(playerid,playername,MAX_PLAYER_NAME); // Lagere Namen von Spieler, der das Ticket bezahlen muss
    GetPVarString(playerid,"PlayerTicketGrund",grund,sizeof(grund)); // Lagere den Grund für das Ticket
    GetPlayerPos(playerid,PlayerPos[0],PlayerPos[1],PlayerPos[2]); // Speichere die Position vom Spieler, der das Ticket bezahlen muss


    // Wenn beim Spieler kein Ticketpreis gespeichert ist, so muss er auch kein Ticket zahlen, oder? >:D
    if(price < 0) format(error,sizeof(error)," Sie haben keinen Ticket erhalten, zum bezahlen...");


    // Wenn der Wachmann nicht mehr am Server ist, so sei kulant und lösche das Ticket
    if(!IsPlayerConnected(copid)) {
    format(error,sizeof(error)," Der Wachmann ist nicht mehr auf dem Server, weßhalb Ihr Ticket gelöscht wird...");
    DeletePVar(playerid,"PlayerTicketPrice");
    }


    // Wenn der Wachmann nicht in der Nähe ist...
    if(!IsPlayerInRangeOfPoint(playerid,TICKET_DISTANCE,PlayerPos[0],PlayerPos[1],PlayerPos[2])) format(error,sizeof(error)," Sie sind nicht in der Nähe vom Wachmann %s(%d)...", copname, copid);


    // Wenn der Spieler das Geld Bar nicht aufbringen kann
    if(GetPlayerMoney(playerid) < price) format(error,sizeof(error)," Sie haben keine %d$ um das Ticket zu bezahlen...", price);


    GivePlayerMoney(playerid,-price); // Ziehe das Ticketpreis vom Spieler, der das Ticket bezahlen muss (Logisch oder? xD)
    GivePlayerMoney(copid,price); // Gebe dem Wachmann den Ticketpreis (Schmiergeld)


    // Ausgabe der Meldung für den gewählten Spieler (Wer? Wieviel? Warum?)
    format(error,sizeof(error),"* Spieler %s(%d) hat das Ticket von %d$ mit dem Grund %s bezahlt.", playername, playerid, price, grund);
    SendClientMessage(copid,COLOR_ORANGE,error);
    SendClientMessage(copid,COLOR_WHITE,"INFO: Schreiben Sie (/accept ticket) um das Ticket zu bezahlen.");


    // Ausgabe der Meldung für den Wachmann, der diesen Befehl ausführt (Wer? Wieviel? Warum?)
    format(error,sizeof(error),"* Sie haben dem Wachmann %s(%d) das Ticket um %d$ für den Grund '%s' bezahlt.", copname, copid, price, grund);
    SendClientMessage(playerid,COLOR_ORANGE,error);


    return 1;
    }


    // Fehlermeldung, wenn der Parameter nicht mit einem vorhandenen übereinstimmt
    SendClientMessage(playerid,COLOR_GREY,"VERWENDUNG: /accept [Objekt]");
    SendClientMessage(playerid,COLOR_GREY,"* Mögliche Objekte: ticket");


    return true;
    }


    ocmd:ahelp(playerid,params[])
    {
    new giveplayerid,
    grund[32], // string, wo der Grund eingelagert wird
    Float:PlayerPos[3], // array für Positionsablagerung
    error[128], // string, wo der fehler vorhanden ist (wenn es einen gibt)
    giveplayername[MAX_PLAYER_NAME], // name vom gewählten spieler
    playername[MAX_PLAYER_NAME], // name vom spieler, der diesen Befehl ausführt
    price; // variable für ticketpreis


    // Empfangen der eingegeben Paramter über 'sscanf'
    if(!sscanf(params,"uds[32]",giveplayerid,price,grund)) return SendClientMessage(playerid,COLOR_GREY,"VERWENDUNG: /ticket [SpielerID/Name] [TicketPreis] [Grund]");


    // Allgemeine Abfrage-Informationen
    GetPlayerPos(playerid,PlayerPos[0],PlayerPos[1],PlayerPos[2]); // Position vom Spieler, der diesen Befehl ausführt
    GetPlayerName(playerid,playername,MAX_PLAYER_NAME); // Name von Spieler, der diesen Befehl ausführt
    GetPlayerName(giveplayerid,giveplayername,MAX_PLAYER_NAME); // Name von gewählten Spieler (giveplayerid)


    // Sofern der gewählte Spieler nicht verbunden ist...
    if(!IsPlayerConnected(giveplayerid)) format(error,sizeof(error)," Spieler ist nicht mit dem Server verbunden...");


    // Sofern der gewählte Spieler nicht in der Nähe vom Spieler (der diesen Befehl ausführt) ist
    if(!IsPlayerInRangeOfPoint(giveplayerid,TICKET_DISTANCE,PlayerPos[0],PlayerPos[1],PlayerPos[2])) format(error,sizeof(error)," Spieler %s(%d) ist nicht in Ihrer Nähe...", giveplayername, giveplayerid);


    // Sofern der gewählte Spieler bereits einen Ticket bezahlen muss...
    if(GetPVarInt(giveplayerid,"PlayerTicketPrice") > 0) format(error,sizeof(error)," Spieler %s(%d) muss bereits eine Ticketstrafe von %d$ bezahlen...", giveplayername, giveplayerid, GetPVarInt(giveplayerid,"PlayerTicketPrice"));


    // Wenn der string-'error' einen Inhalt (Fehler) enthält, so gebe Ihn aus und brich den Befehl ab.
    if(strlen(error)) {
    return SendClientMessage(playerid,COLOR_GREY,error); // Ausgabe der Fehlermeldung
    }


    SetPVarInt(giveplayerid,"PlayerTicketPrice",price); // Speichere den Ticketpreis für den gewählten Spieler (giveplayerid)
    SetPVarString(giveplayerid,"PlayerTicketGrund",grund); // Speichere den Ticketgrund für den gewählten Spieler (giveplayerid)


    // Ausgabe der Meldung für den gewählten Spieler (Wer? Wieviel? Warum?)
    format(error,sizeof(error),"* Wachmann %s(%d) schreibt Ihnen ein Ticket von %d$ mit dem Grund %s.", playername, playerid, price, grund);
    SendClientMessage(giveplayerid,COLOR_ORANGE,error);
    SendClientMessage(giveplayerid,COLOR_WHITE,"INFO: Schreiben Sie (/accept ticket) um das Ticket zu bezahlen.");


    // Ausgabe der Meldung für den Wachmann, der diesen Befehl ausführt (Wer? Wieviel? Warum?)
    format(error,sizeof(error),"* Sie haben %s(%d) ein Ticket um %d$ für den Grund '%s' geschrieben.", giveplayername, giveplayerid, price, grund);
    SendClientMessage(playerid,COLOR_ORANGE,error);


    return 1;
    }


    //EDIT: Habe es nun mim Compiler getestet und Fehler ausgemerzt.

    die mysql_connect Verbindungen lasse ich natürlich in OnGameModeExit mit mysql_close beenden. Mein Problem ist nur, dass seitdem ich Threaded-Queries nutze, dass er wegen diesen er unnötig weitere Verbindungen aufmacht, aber diese nicht wieder schließt.


    Oder wie kann ich von einer Threaded-Query die VerbindungsID erhalten?


    #define Dialog_aHelp 7



    stock ShowAdminHelpPage(playerid,page)
    {
    switch(page)
    {
    case 1: ShowPlayerDialog(playerid,Dialog_aHelp1,DIALOG_STYLE_MSGBOX,"Admin-Befehle","/heal => Heilen / Fahrzeug reparieren\n/kill => Spieler töten\n/kick => Spieler kicken\n/newcar => Fahrzeug spawnen\n/tp => Spieler herteleportieren\n/tph => Zum Spieler teleportieren\n/tpa => Andere Spieler teleporten","Weiter","");
    case 2: ShowPlayerDialog(playerid,Dialog_aHelp2,DIALOG_STYLE_MSGBOX,"Admin-Befehle","/setrang => Ränge verändern\n/seth => Energie setzen (0-100)\n/seta => Rüstung setzen(0-100)\n/gw [PlayerID] [WaffenID] (Munition)=> Waffen vergeben\n/cca => Clear Chat All","OK","");


    // Nächste Seite wäre dann case 3:


    }
    return true;
    }


    ocmd:ahelp(playerid,params[])
    {
    if(pInfo[playerid][Rang] > 1)
    {
    SetPVarInt(playerid, "AHStep", 1);
    ShowAdminHelpPage(playerid,GetPVarInt(playerid,"AHStep"));
    }
    else
    {
    SCM(playerid,ROT,"Du bist leider kein Admin!");
    SCM(playerid,ROT,"Dein Befehl lautet: /help");
    }
    return 1;
    }


    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    if(dialogid == Dialog_aHelp)
    {
    SetPVarInt(playerid,"AHStep",GetPVarInt(playerid,"AHStep")+1);
    return ShowAdminHelpPage(playerid,GetPVarInt(playerid,"AHStep"));
    }
    return 1;
    }

    Das Problem liegt wohl ganz woanders. Theorethisch kommt die Fehlermeldung nur über

    /rcon kick
    /rcon ban

    wenn nicht sogar gar nicht.


    Wenn du vor dem isPlayerAdmin einen kleinen print schreiben würdest:
    print("Ich wurde in /kick aufgerufen :D");
    , dann könnte man sehen, ob die Ausführung bis dahin kommt.


    Meine Vermutung liegt darin, dass vor ocmd dein Befehl abgefangen wird, von etwas anderem.


    //EDIT: Such im Script am besten nach Rcon Funktionen "SendRconCommand", wobei eigentlich dabei keine Probleme auftauchen sollten. In Hinsicht 'kick' oder 'ban', oder such nach '/rcon'


    new string[256],year,month,day,hours,minutes,seconds;
    getdate(year,month,day),gettime(hours,minutes,seconds);
    format(string,sizeof string,"%s%d/%s%d/%s%d",((day < 10) ? ("0") : ("")),day,((month < 10) ? ("0") : ("")),month,(year < 10) ? ("0") : (""),year);
    TextDrawSetString(Datum,string);
    format(string,sizeof string,"%s%d:%s%d:%s%d",((hours < 10) ? ("0") : ("")),hours,(minutes < 10) ? ("0") : (""),minutes,(seconds < 10) ? ("0") : (""),seconds);
    TextDrawSetString(Uhrzeit,string);


    Hab dir auch die führende Null für den Tag eingestellt, nach deinem Schema.
    Du hast einfach die Variable day unten noch gehabt ^^

    Du kannst den Grund in einem PVar speichern und auf diesem von überall aus zugreifen.


    Im /ticket-Befehl speicherst du die strafe und grund in die SpielerID, jene die Strafe erhält:



    SetPVarString(giveplayerid, "PlayerTicketStrafe", strafe);
    SetPVarString(giveplayerid, "PlayerTicketGrund", grund);


    und bei Accept nimmst du normal die playerid her, da die playerid in dem Fall die vorherige giveplayerid war:



    new grund[128],strafe[128];
    GetPVarString(playerid,"PlayerTicketStrafe",strafe,sizeof(strafe));
    GetPVarString(playerid,"PlayerTicketGrund,"grund,sizeof(grund));


    Gerne zeige ich dir ein kleines fertiges Script, wenn du nicht weiterkommst. Dachte ich helf dir nur kurz auf die Sprünge, da man selbst der Programmierer ist.

    Hallo Leute,


    Ich hab das Problem, dass sich das MySQL Plugin stätig neue Verbindungen aufbaut und nach einer Zeit ich ein Limit erreicht hab. Siehe Workbench Bild:



    Ich eröffne jedoch nur max. 4 Verbindungen per mysql_connect. Wie kann ich nun die alten Verbindungen wieder verwerfen? Habe bereits wait_timeout probiert in MySQL, jedoch verwirft er trotzdem die Verbindungen nicht.


    Benütze die aktuellste Revision von BlueG: http://forum.sa-mp.com/showthread.php?t=56564


    Hoffe jemand kann mir nen guten Rat geben ^^


    Lg LaVey

    Leuchtet Tastatur (NumPad-Leuchte), Maus (Optik) oder sonstiges über USB? Wenn nicht, dann sehe ich keine Chance darin, da der BIOS nicht lädt und womöglich es mit der CPU zusammenhängt.