Beiträge von EllBundy

    Hey wie die Überschrift schon sagt suche ich einen DM Server der gut besucht ist.
    Ich finde bisher leider keinen besuchten DM Server.
    Wäre nett wenn mir jemand einen Server schicken könnte :love:


    Möchte meine Zeitvertreiben und bissl Ballern 8)


    Danke

    Ich habe eben nochmal gegrübelt und dachte mir wenn der erste durchlauf durch den 2. resettet wird.
    Sollte was mit der Variable nicht stimmen wo ich die Infos abspeichere.
    Daraufhin habe ich mir die Variable näher betrachtet:
    enum FVerleihData{
    //...
    }
    new FVerleih[][FVerleihData];


    und habe einfach eine vordefinierten array eingefügt, in dem Fall die 2, da ich 2 Verleihs habe.
    Also so
    enum FVerleihData{
    //...
    }
    new FVerleih[2][FVerleihData];


    Nach dem Test in der Console und auf dem Server funktioniert nun alles.
    Dennoch bleibt die Frage wie mache ich das am besten, da ich das ja dyn. haben will.
    Das ich jederzeit InGame einen erstellen kann, damit er auch geladen wird und abgespeichert...


    Würde das so funktionieren ?
    #define MAX_FVERLEIH 10 // Beispielanzahl
    enum FVerleihData{
    //...
    }
    new FVerleih[MAX_FVERLEIH][FVerleihData];


    und bei der for-Schleife dann nur FVerleihCount nehme, da die Variable ja wiedergibt wieviele Einträge in der Datenbank sind.
    Dann muss ich zwar wenns mal über 10 gehen sollte das im Script erhöhen...

    Ich bin der Sache nun näher auf de Grund gegangen und hab wie du gesagt hast gedebugt.
    Mir kam das seltsam vor, dass er erstellt wird, aber danach nicht exestiert. Somit habe ich die for-schleife bei LoadData unter die Lupe genommen und mit hilfe des Debugs festegestellt,
    das es beim ersten durchlauf gelesen und erstellt wird. Sobald der 2. durchlauf startet, wird der der 1. resettet.
    Ich habe mir den Code näher angeschaut und kann mir einfach nicht erklären, woran das liegen :whistling::whistling:


    Ich hoffe ihr könnt mir bei dem Problem helfen, da ich selbst schon am verzweifeln bin, aber einfach nicht aufgeben will und alles Manuell eintragen will, sowie einzeln auslesen...


    Danke im Vorraus

    hier die Ausgabe der Checks, an die server_log.log


    Code: server_log.log
    [15:54:12] [LOADDATA]Fahrradverleih 0:
    [15:54:12] 1753.994384 -1887.939941 13.557000
    [15:54:12] [LOADDATA]Fahrradverleih 1:
    [15:54:12] 1182.340332 -1332.666992 13.583100
    
    
    [15:54:12] [LOADDATA:CHECK]Fahrradverleih 0:
    [15:54:12] 0.000000 0.000000 0.000000
    [15:54:12] [LOADDATA:CHECK]Fahrradverleih 1:
    [15:54:12] 1182.340332 -1332.666992 13.583100
    Code: server_log.log
    [22:49:34] Fahrradverleih 0:
    [22:49:34] 0.000000 0.000000 0.000000
    [22:49:34] Fahrradverleih 1:
    [22:49:34] 1182.340332 -1332.666992 13.583100

    Habe es mal bei dem zweiten Verleih probiert und da funktioniert ist scheinbar.
    Beim Ersten Verleih (ID 0) nicht, da ja die Coords 0 betragen, woran kann das den liegen ?


    EDIT:
    Habe mal ein 3. Verleih hinzugefügt, aber beim Start des Server, bekomme ich keinen Debug von public LoadDataInfo, das die Tabelle ausgelesen und geladen wurde. Sobald ich den 3. Eintrag lösche ist alles wieder beim alten ?(

    Ja warum funktioniert es dann bei den vordefinierten Koordinaten ?


    Hier erstelle im Scriptkopf die Standartgebäude:

    Code
    stock const ServerStates[MAX_SERVERSTATES][sCFG] = {
    	{ PICKUP_PFEIL,3,0,""#SERVERFARBE"Stadthalle\n{FFFFFF}Drücke ENTER/F",1480.8480,-1771.5313,18.7958,390.7539,173.8786,1008.3828,true},
    	{ PICKUP_PFEIL,0,0,""#SERVERFARBE"Citybank\n{FFFFFF}Drücke ENTER/F",1469.4771,-1011.4132,26.8438,2305.5535,-16.3067,26.7496,true}
    };


    hier habe ich sie auch bei KeyState unter der taste ENTER/F


    Hier funktioniert das ganze einwandfrei :huh:
    Also denke ich nicht das es an der Keyprüfung liegt ?(

    Ich habe mein dynamisches Fahrradverleihsystem soweit fertig, habe aber ein Problem, dass sich einfach beheben lässt.
    Und zwar wird der Fahrradverleih aus der Datenbank ausgelesen, erstellt und ist vollkommen sichtbar.
    Ein Harken bleibt dennoch, sobald ich auf das erstellte Icon gehe und die Taste ENTER/F Drücke erscheint einfach der Dialog nicht wie geplant.
    Die Console gibt wiederrum beide erstellten Verleihs als druchlauf an.


    Ich hoffe Ihr könnt mir helfen :/


    im nachfolgenden ist der Ausschnitt, wo ich den Verleih lade und auch erfolgreich erstellt wird


    Hey ich versuche ein Dyn. Fahrradverleihsystem zu errichten, aber bei dem Anfangstest wo ich die Daten auslesen möchte, nachdem ich Sie erstmal Manuell eingefügt habe.
    Habe ich das Problem, das bei meiner Consoleninfo durch print & printf gesagt wird, das es keine Einträge gibt, woraufhin ich mal die MySQL.log gecheckt und da folgende Fehlermeldung habe:

    Code: mysql.log
    [17:04:56] [WARNING] cache_get_row_count - no active cache


    Ich kann mir nur erklären, dass es ein Problem beim Zählen gibt oder wie da steht der Cache leer zu scheinen seit.



    Die die Wiedergabe aus der Console beinhaltet folgendes:


    Hier ist die Datenbankabfrage in pawno wo ich die einzelne Punkte der Standorte des Fahrradverleihs laden möchte:

    Hier mal der ganze Code sowie ein Bild der Datenbank


    Just.Me77 Textdraw Login


    Ich habe diesen Code übernommen und habe folgendes Problem, der Account wurde erfolgreich erstellt. Aber sobald ich mich einloggen möchte, steht da erneut Regestrieren, obwohl der Name bereits in der Datenbank vorhanden ist.
    Ich hoffe Ihr könnt mir da auf die Sprünge helfen, da ich verzweifle wieso, weshalb und warum ?(?(


    public OnPlayerRequestClass(playerid, classid)
    {
    if(!GetPVarInt(playerid, "Logged"))
    {
    new query[128];
    mysql_format(handle, query, sizeof(query), "SELECT uID FROM account_list WHERE Name = '%e'", SpielerInfo[playerid][pName]);
    mysql_pquery(handle, query, "OnUserCheck", "i", playerid);
    }
    return 1;
    }


    public OnPlayerClickPlayerTextDraw(playerid, PlayerText:playertextid)
    {
    if(playertextid == PlayerLoginTextDraw[playerid][0])
    {
    if(pRegistered[playerid] == true)
    {
    ShowPlayerDialog(playerid, DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Anmeldung", "Bitte logge Dich mit deinem Passwort ein:", "Anmelden", "Abbrechen");
    }
    else
    {
    ShowPlayerDialog(playerid, DIALOG_REGISTER,DIALOG_STYLE_PASSWORD,"Registration", "Bitte gebe ein Passwort für die Regestration ein:", "Regestrieren", "Abbrechen");
    }
    }
    return 0;
    }


    forward OnUserCheck(playerid);
    public OnUserCheck(playerid)
    {
    new rows;
    cache_get_row_count(rows);
    if(rows == 0)
    {
    PlayerIsNotRegistered(playerid);
    ShowLoginTextDraws(playerid);
    }
    else
    {
    PlayerIsRegistered(playerid);
    ShowLoginTextDraws(playerid);
    }
    return 1;
    }
    Ich habe das .inc eingefügt und habe auch keine Error bzw. Warnings....

    Bin jetzt die Suche mit sLoggedIn durch !


    Ich frage Sie nur ab und setze sie oben im Script bei new ServerCFG[serverPickup] (Hier im Forum unten ;D)
    Also wo ich Sie definiere setze ich ja am Ende ein True, das ist die einzigste Setzungs des Bools.


    Ein Bool, kann ja Theoretisch nicht 114 haben sonder nur false(0) oder true(1). Wie passiert das


    EDIT: add pastebin
    https://pastebin.com/W3nCMqNc


    Habe den Codeschnipsel erst angefangen, deswegen noch so klein ;)

    Sry für die unübersichtlichkeit, aber das Forum übernimmt die Paste Funktion nicht so :D


    printf = SEARCH 0|114
    114 Okay ?!


    Bin auch zu der ID 0 gefahren und Enter getestet, aber ich komme nicht über die IsPlayerInRange funktion, d.h. bekomme nur printf angezeigt und nicht den standart print


    //EDIT
    Sorry was übersehen, dass du das printf hoch gesetzt hast !


    Nun kommt
    printf = SEARCH 0|114
    printf = SEARCH 0|114
    printf = SEARCH 1|0


    Bekomme nun 3 Meldungen

    Ich kapiere nicht warum bei OnGameModeInit() alles wunderbar geladen wird
    for(new i; i!=MAX_SERVERCFG; i++)
    {
    if(ServerCFG[i][sLoggedIn])
    {
    CreatePickup(ServerCFG[i][sPickupID], 1, ServerCFG[i][sX],ServerCFG[i][sY],ServerCFG[i][sZ]);
    Create3DTextLabel(ServerCFG[i][sTXT], 0xFFFFFFFF, ServerCFG[i][sX],ServerCFG[i][sY],ServerCFG[i][sZ], 5, 0);
    }
    }


    und bei KeyStateChange() // Enter-Taste // nur die ID 0 geladen wird
    for(new i; i!=MAX_SERVERCFG; i++)
    {
    if(ServerCFG[i][sLoggedIn])
    {
    printf("SEARCH %d",i);
    if(IsPlayerInRangeOfPoint(playerid, 2.0, ServerCFG[i][sX], ServerCFG[i][sY], ServerCFG[i][sZ]))
    {
    switch(i)
    {
    case 0: //Stadthalle
    {
    print("0");
    break;
    }
    case 1: // Fahrradverleih
    {
    print("2");
    if(!HaveFahrrad[playerid]) return SendClientMessage(playerid, COLOR_GREY, "Du hast bereits ein Fahrrad geliehen bekommen. Mit /findbike kannst du es finden.");
    if(!SpielerInfo[playerid][pTutorial]){ format(str, sizeof(str),"Herzlich Willkommen "#SERVERFARBE"%s{FFFFFF},\nEin Fahrrad kostet dich derzeit nichts.\n\nMöchtest du dir ein Fahrrad für 30 Minuten leihen ?", SpielerInfo[playerid][pName]); }
    else { format(str, sizeof(str),"Herzlich Willkommen "#SERVERFARBE"%s{FFFFFF},\nEin Fahrrad kostet dich %d SA$.\n\nMöchtest du dir ein Fahrrad für 30 Minuten leihen ?", SpielerInfo[playerid][pName], ServerPreis[Fahrradverleih]); }
    ShowPlayerDialog(playerid, DIALOG_FAHRRADLEIH, DIALOG_STYLE_MSGBOX, ""#SERVERFARBE"Fahrradverleih",str, "Ja","Nein");
    SetPVarInt(playerid, "FahrradverleihStand",i);
    break;
    }
    }
    }
    }
    }


    Definition der Variablen bzw. speicherung:
    #define MAX_SERVERCFG 2
    enum serverPickup{
    sPickupID,
    sTXT[64],
    Float:sX,
    Float:sY,
    Float:sZ,
    bool:sLoggedIn
    }
    new ServerCFG[MAX_SERVERCFG][serverPickup] = {
    { PICKUP_PFEIL,""#SERVERFARBE"Stadthalle\n{FFFFFF}Drücke ENTER/F",1480.8480,-1771.5313,18.7958,true},
    { PICKUP_I,""#SERVERFARBE"Fahrradverleih\n{FFFFFF}Drücke ENTER/F",1753.9944,-1887.9404,13.5570,true}
    };


    Wie gesagt, InGame bekomme ich beide wunderbar angezeigt, doch bei Theo. ID 1 wenn ich Enter drücke passiert nichts, nach einer Printf Fehlersuche, stellte ich Fest das nur die ID 0 aufgezählt wird !


    Ich hoffe Ihr könnt mir das Irrtum erklären ?(


    DANKE EllBundy


    else
    {
    cache_get_field_content(0,"banned",result); SpielerInfo[playerid][pBanned] = strval(result);
    if(SpielerInfo[playerid][pBanned]){ return Kick(playerid); }


    cache_get_field_content(0,"ID",result); SpielerInfo[playerid][p_id] = strval(result);
    cache_get_field_content(0,"level",result); SpielerInfo[playerid][pLevel] = strval(result);
    cache_get_field_content(0,"money",result); SpielerInfo[playerid][pMoney] = strval(result);
    cache_get_field_content(0,"regestriert",result); SpielerInfo[playerid][pReg] = strval(result);
    cache_get_field_content(0,"logins",result); SpielerInfo[playerid][pLogins] = strval(result);
    cache_get_field_content(0,"admin",result); SpielerInfo[playerid][pAdmin] = strval(result);
    cache_get_field_content(0,"exp",result); SpielerInfo[playerid][pEXP] = strval(result);
    cache_get_field_content(0,"nextexp",result); SpielerInfo[playerid][pNextEXP] = strval(result);
    cache_get_field_content(0,"pdmin",result); SpielerInfo[playerid][pPDMin] = strval(result);
    cache_get_field_content(0,"paydays",result); SpielerInfo[playerid][pPayDays] = strval(result);
    cache_get_field_content(0,"skin",result); SpielerInfo[playerid][pSkin] = strval(result);
    cache_get_field_content(0,"tutorial",result); SpielerInfo[playerid][pTutorial] = strval(result);
    SpielerInfo[playerid][pLoggedIn] = true;
    SpielerInfo[playerid][pLogins]++;
    SetPlayerScore(playerid, SpielerInfo[playerid][pLevel]);
    SetPlayerSkin(playerid, SpielerInfo[playerid][pSkin]);
    SendClientMessage(playerid, COLOR_WHITE, "[Account] Sie wurden erfolgreich eingeloggt.");
    SetMoney(playerid, SpielerInfo[playerid][pMoney]);
    }


    Ich Lade sie über einen MYSQL-Befehl "SELECT * FROM ..." // Denke da wäre die enum Version eine bessere


    Ich habe mir die Seite mal näher betrachtet, diese Funktion kann einiges. Brauchen wird man aber nicht alles, denke ich mal.

    @LeonMrBonnie
    Danke für deine Aufklärung :thumbup:


    Gut zu wissen, das ich sie für FS benutzen kann. Danke für die Aussage ;)




    Also wenn ich Spielerdaten aus meine SQL lade wäre es sinnvoll diese in enums zu laden und die wo ich nur scriptintern brauche in PVars ?
    Also sowas wie GetPVarInt(playerid, "IstEingeloggt");.... GetPVarInt(playerid, "IstImTutorial"); ...