Beiträge von Ryan_Crawley

    Der Fehler, dass der Server nicht startet, löst sich, wenn du die 2 Errors gefixt hast ;)
    Der sagt, dass das Script nicht erfolgreich parsen konnte, weil eine Funktion fehlt - das liegt an den Warnings ;)


    Es handelst sich um Warnings die zwar nicht gut sind, meines Wissens nach aber nicht den Server am start hindern. Aus zuverlässiger Quelle weiß ich, das er sscanf2 verwendet, der server aber 0 Plugins läd. Das müsste der Fehler sein.

    Nabend Com,


    ich bin im moment dabei, mir die Kenntnisse über MySQL in Verbindung mit Pawn anzueignen. Wäre es da sinnvoll sich ein eBook zu organisieren? Wenn ja, welches könntet ihr Empfehlen.


    Zudem habe ich eine .pdf datei über Pawn gefunden, welche aber auf Englisch ist. Ich will nun nicht sagen, dass mein Englisch schlecht ist aber das erscheint mir doch ein wenig zu kompliziert.
    Gibt es dieses Buch also auch auf Deutsch?


    MfG

    wie wäre es damit?


    format(GangWarInfoAnAlle7,sizeof(GangWarInfoAnAlle7),"Fraktion: %s Kills: %s Fraktion: %s Kills: /FEHLT/",GetFactionNameOfFaction(GetPlayerFaction(playerid)),FightSystem[TempZone][fsWinKills],GetFactionNameOfFaction(FightSystem[TempZone][fsOwnerFaction]);

    mysql_connect(SQLHost,SQLName,SQLDB,SQLPass);


    Ich weiß ja nicht, welches MySQL du benutzt, aber eigentlich ist die Reihenfolge: "Host, User, Pass, Data"


    mysql_connect(SQLHost,SQLName,SQLPass,SQLDB);


    Ich weiß ja nicht, welches MySQL du benutzt, aber eigentlich ist seine Reihenfolge richtig.


    Zitat

    mysql_connect( const host[], const user[], const database[], const password[] ) *

    Sehr unsicher umgesetzt, folgendes Beispiel:

    • Ein Spieler will sich einloggen und die mysql_query wird abgesendet (Threaded: Also arbeitet das ganze im Hintergrund, während der SA-MP Server weiter arbeitet)
    • Der Spieler geht nun Offline (Beispiel: ID = 5)
    • Ein anderer Spieler kommt online ( ID = 5 )
    • mysql_query vom ERSTEN Punkt wird nun fertig gestellt und ruft das Callback in PAWN für ID = 5 auf (zur Verarbeitung des Ergebnisses)
    • KABOOM ID = 5 ist ein ganz anderer Spieler! Du hast keine Überprüfung dafür, ob es sich noch um den selben Spieler nach Fertigstellung der Abfrage handelt
    • Account wurde erfolgreich gehackt


    Kann schnell passieren, sobald der mysql Server mal etwas langsamer reagiert


    Wie würde so eine Überprüfungdenn aussehen?

    Laden.
    FirmenInfo[i][Besitzer] = mysql_GetString("firmen","Besitzer",i,FirmenInfo);


    Speichern
    mysql_SetString("firmen","Besitzer",i,FirmenInfo,FirmenInfo[i][Besitzer]);


    dann so??


    Edit:
    So gibts keinerlei Warnings

    Spoiler anzeigen
    stock LoadFirma()
    {
    for(new i;i<MAX_FIRMEN;i++)
    {
    FirmenInfo[i][fID] = mysql_SetInt("firmen","id",i,FirmenInfo);
    FirmenInfo[i][fBesitzer] = mysql_SetString("firmen","Besitzer",i,FirmenInfo);
    FirmenInfo[i][fEntrancex] = mysql_SetFloat("firmen","EingangX",i,FirmenInfo);
    FirmenInfo[i][fEntrancey] = mysql_SetFloat("firmen","EingangY",i,FirmenInfo);
    FirmenInfo[i][fEntrancez] = mysql_SetFloat("firmen","EingangZ",i,FirmenInfo);
    FirmenInfo[i][fExitx] = mysql_SetFloat("firmen","AusgangX",i,FirmenInfo);
    FirmenInfo[i][fExity] = mysql_SetFloat("firmen","AusgangY",i,FirmenInfo);
    FirmenInfo[i][fExitz] = mysql_SetFloat("firmen","AusgangZ",i,FirmenInfo);
    FirmenInfo[i][fInt] = mysql_SetInt("firmen","Interrior",i,FirmenInfo);
    FirmenInfo[i][fArt] = mysql_SetInt("firmen","Art",i,FirmenInfo);
    FirmenInfo[i][fBank] = mysql_SetInt("firmen","Bank",i,FirmenInfo);
    FirmenInfo[i][fOpen] = mysql_SetInt("firmen","Offen",i,FirmenInfo);
    }
    return 1;
    }
    stock SaveFirma()
    {
    for(new i;i<MAX_FIRMEN;i++)
    {
    mysql_SetInt("firmen","id",i,FirmenInfo,FirmenInfo[i][fID]);
    mysql_SetString("firmen","Besitzer",i,FirmenInfo,FirmenInfo[i][fBesitzer]);
    mysql_SetFloat("firmen","EingangX",i,FirmenInfo,FirmenInfo[i][fEntrancex]);
    mysql_SetFloat("firmen","EingangY",i,FirmenInfo,FirmenInfo[i][fEntrancey]);
    mysql_SetFloat("firmen","EingangZ",i,FirmenInfo,FirmenInfo[i][fEntrancez]);
    mysql_SetFloat("firmen","AusgangX",i,FirmenInfo,FirmenInfo[i][fExitx]);
    mysql_SetFloat("firmen","AusgangY",i,FirmenInfo,FirmenInfo[i][fExity]);
    mysql_SetFloat("firmen","AusgangZ",i,FirmenInfo,FirmenInfo[i][fExitz]);
    mysql_SetInt("firmen","Interrior",i,FirmenInfo,FirmenInfo[i][fInt]);
    mysql_SetInt("firmen","Art",i,FirmenInfo,FirmenInfo[i][fArt]);
    mysql_SetInt("firmen","Bank",i,FirmenInfo,FirmenInfo[i][fBank]);
    mysql_SetInt("firmen","Offen",i,FirmenInfo,FirmenInfo[i][fOpen]);
    }
    return 1;
    }


    aber wenn ich dann


    for(new i=0;i<MAX_FIRMEN;i++)
    {
    LoadFirma(i);
    }


    unter OnGameModeInit eingebe, kommen folgende Warnings.


    C:\Users\Freggel\Desktop\Samp Server\gamemodes\Roleplay.pwn(380) : warning 202: number of arguments does not match definition //Zeile unter OnGameModeInit Load Firma
    C:\Users\Freggel\Desktop\Samp Server\gamemodes\Roleplay.pwn(778) : error 048: array dimensions do not match // geht ab hier los unter stock LoadFirma FirmenInfo[i][fID] = mysql_SetInt("firmen","id",i,FirmenInfo);
    C:\Users\Freggel\Desktop\Samp Server\gamemodes\Roleplay.pwn(779) : error 035: argument type mismatch (argument 3)
    C:\Users\Freggel\Desktop\Samp Server\gamemodes\Roleplay.pwn(780) : error 048: array dimensions do not match
    C:\Users\Freggel\Desktop\Samp Server\gamemodes\Roleplay.pwn(781) : error 048: array dimensions do not match
    C:\Users\Freggel\Desktop\Samp Server\gamemodes\Roleplay.pwn(782) : error 048: array dimensions do not match
    C:\Users\Freggel\Desktop\Samp Server\gamemodes\Roleplay.pwn(783) : error 048: array dimensions do not match
    C:\Users\Freggel\Desktop\Samp Server\gamemodes\Roleplay.pwn(784) : error 048: array dimensions do not match
    C:\Users\Freggel\Desktop\Samp Server\gamemodes\Roleplay.pwn(785) : error 048: array dimensions do not match
    C:\Users\Freggel\Desktop\Samp Server\gamemodes\Roleplay.pwn(786) : error 048: array dimensions do not match
    C:\Users\Freggel\Desktop\Samp Server\gamemodes\Roleplay.pwn(787) : error 048: array dimensions do not match
    C:\Users\Freggel\Desktop\Samp Server\gamemodes\Roleplay.pwn(788) : error 048: array dimensions do not match
    C:\Users\Freggel\Desktop\Samp Server\gamemodes\Roleplay.pwn(789) : error 048: array dimensions do not match