Waffen Laden Problem

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Hallo Brotfische,


    Ich habe ein Problem, meine Waffen werden nicht geladen. Ich glaube mehr gibt es nicht zusagen ;)


    Code:

    C
    for(new i; i<13; i++)
    {
            new wString[500],aString[500];
    	format(wString,sizeof(wString),"waffe%d",i);
    	pWaffenID[i] = cache_get_field_content_int(0,wString,dbhandle);
    	format(aString,sizeof(aString),"munition%d",i);
    	pAmmu[i] = cache_get_field_content_int(0,aString,dbhandle);
    	GivePlayerWeapon(playerid,pWaffenID[i],pAmmu[i]);
    }



    Ich hoffe ihr könnt mir helfen :rolleyes:


    Mit freundlichen Grüßen German_ScripterHD


    Mit freundlichen Grüßen
    German_ScripterHD

  • Zeig mal wie du die mysql_query machst.


    Was mir so auf dem ersten Blicks ins Auge fällt, ist, dass du ne for schleife verwendest, die 12 mal durchgeführt wird, du aber jedesmal aus der Reihe 0 ausliest.


    pWaffenID[i] = cache_get_field_content_int(0,wString,dbhandle);

  • Habs jetzt so: (klappt aber immernoch nicht)


    C
    for(new i; i<13; i++)
    {
    	new wString[500],aString[500];
    	format(wString,sizeof(wString),"waffe%d",i);
    	pWaffenID[i] = cache_get_field_content_int(i,wString,dbhandle);
    	format(aString,sizeof(aString),"munition%d",i);
    	pAmmu[i] = cache_get_field_content_int(i,aString,dbhandle);
    	GivePlayerWeapon(playerid,pWaffenID[i],pAmmu[i]);
    }


    Speicher funktion:


    C
    for(new i=0;i<13;i++)
    {
    	GetPlayerWeaponData(playerid,i,pWaffen[i][0],pWaffen[i][1]);
    	format(query,sizeof query,"UPDATE `user` SET `waffe%d`='%d' ,`munition%d`='%d' WHERE id='%d'",i ,pWaffen[i][0],i,pWaffen[i][1],sInfo[playerid][db_id]);
    	mysql_function_query(dbhandle,query,false,"","");
    }


    Mit freundlichen Grüßen
    German_ScripterHD

  • Das dauerhafte Auslesen der Zeile 0 im Cache war schon korrekt, da du ja nur eine Result-Zeile aus deinem Query bekommst, von dem du den Cache ausliest. Mache diese Änderung also wieder rückgängig.


    Wo wird denn dieser Code ausgeführt? Beim Login? Bist du da schon gespawnt? Wenn nicht, dann sind die Waffen mit dem Spawn nämlich wieder weg.


    Lass dir doch mal per print die Werte ausgeben, die geladen werden:
    printf("Waffe: %d, Ammo: %d", pWaffenID[i],pAmmu[i]);


    Was wird so ausgegeben?
    Wenn die Werte stimmen, dann liegt es wie gesagt daran, dass du die Waffe zwar bekommst, die aber dann nicht mehr hast. In dem Fall musst du die Werte in eine Spielervariable (oder Array) speichern, und sie bei OnPlayerSpawn auslesen, und dort die Waffen geben.

  • Kannst du bitte mal mysql_function_query, mysql_pquery, mysql_tquery posten mit dem du die Daten ausliest, also hier ist kein Fehler zu erkennen
    aber sind die Daten auch in der Datenbank enthalten ?



    Ein kleiner Tipp du braucht keine so riesige Strings da reiche 20 Zeichen und ein String kannst du auch mehrmals nutzen.
    Bedeutet format überschreibt den gesamten String


    Code
    for(new i; i<13; i++)
    {
    	new wString[20];
    	format(wString,sizeof(wString),"waffe%d",i);
    	pWaffenID[i] = cache_get_field_content_int(i,wString,dbhandle);
    	format(wString,sizeof(wString),"munition%d",i);
    	pAmmu[i] = cache_get_field_content_int(i,wString,dbhandle);
    	GivePlayerWeapon(playerid,pWaffenID[i],pAmmu[i]);
    }
  • Irgenwie wird die Waffe jetzt nicht mehr gespeichert.


    Code:


    Waffen laden (Passwort richtig --> Spieler laden)


    (Print ergibt immer "0")



    Spieler verlässt den Server (--> SavePlayer)


    //e:
    Rechtschreibung


    Mit freundlichen Grüßen
    German_ScripterHD

  • Print:



    Mit freundlichen Grüßen
    German_ScripterHD

  • Also die Negative Zahl wurde auch so in der Datenbank gespeichert. Ich habe diese dann in "100" geändert. Doch leider klappt es immer noch nicht, "print" ergibt weiterhin "0". Aber es steht etwas in der Mysql_Log Datei:



    Mit freundlichen Grüßen
    German_ScripterHD