Beiträge von Jeffry
-
-
Du musst die VehicleID nehmen, nicht die ModelID.
public OnHousesLoad()
{
new num_fields,num_rows;
cache_get_data(num_rows,num_fields,dbhandle);
if(!num_rows)return 1;
for(new i=0; i<num_rows; i++)
{
new id = getFreeHouseID();
if(id == -1) return 1;
HouseInfo[id][h_x] = cache_get_field_content_float(i,"h_x",dbhandle);
HouseInfo[id][h_y] = cache_get_field_content_float(i,"h_y",dbhandle);
HouseInfo[id][h_z] = cache_get_field_content_float(i,"h_z",dbhandle);
HouseInfo[id][ih_x] = cache_get_field_content_float(i,"ih_x",dbhandle);
HouseInfo[id][ih_y] = cache_get_field_content_float(i,"ih_y",dbhandle);
HouseInfo[id][ih_z] = cache_get_field_content_float(i,"ih_z",dbhandle);
HouseInfo[id][hInterior] = cache_get_field_content_int(i,"h_interior",dbhandle);
HouseInfo[id][ch_x] = cache_get_field_content_float(i,"ch_x",dbhandle);
HouseInfo[id][ch_y] = cache_get_field_content_float(i,"ch_y",dbhandle);
HouseInfo[id][ch_z] = cache_get_field_content_float(i,"ch_z",dbhandle);
HouseInfo[id][ch_r] = cache_get_field_content_float(i,"ch_r",dbhandle);
HouseInfo[id][hModel] = cache_get_field_content_int(i,"model",dbhandle);
HouseInfo[id][hFarbe1] = cache_get_field_content_int(i,"farbe1",dbhandle);
HouseInfo[id][hFarbe2] = cache_get_field_content_int(i,"farbe2",dbhandle);
HouseInfo[id][hCarupgrade] = cache_get_field_content_int(i,"carupgrade",dbhandle);
HouseInfo[id][hGeschlossen] = cache_get_field_content_int(i,"geschlossen",dbhandle);
HouseInfo[id][hKasse] = cache_get_field_content_int(i,"kasse",dbhandle);
HouseInfo[id][hMiete] = cache_get_field_content_int(i,"miete",dbhandle);
HouseInfo[id][hPreis] = cache_get_field_content_int(i,"preis",dbhandle);
HouseInfo[id][hKauflevel] = cache_get_field_content_int(i,"kauflevel",dbhandle);
new tmp_name[MAX_PLAYER_NAME];
cache_get_field_content(i,"besitzer",tmp_name,dbhandle);
strmid(HouseInfo[id][hBesitzer],tmp_name,0,sizeof(tmp_name),sizeof(tmp_name));
HouseInfo[id][hID] = cache_get_field_content_int(i,"id",dbhandle);
new HouseCar = AddStaticVehicle(HouseInfo[id][hModel],HouseInfo[id][ch_x],HouseInfo[id][ch_y],HouseInfo[id][ch_z],HouseInfo[id][ch_r],HouseInfo[id][hFarbe1],HouseInfo[id][hFarbe2]);
if(HouseInfo[id][hCarupgrade] == 1)
{
AddVehicleComponent(HouseCar, 1010); //Nitro
AddVehicleComponent(HouseCar, 1074); //Räder
AddVehicleComponent(HouseCar, 1087); //Hydraulik
}
updateHouse(id);
}
return 1;
} -
Ok, komisch.
Was wird dann so geprintet?
Spoiler anzeigen public SpielerEinloggen(playerid,Kennwort[])
{
MySQLCheckConnection();
new Query[255];
format(Query,sizeof(Query),"SELECT * FROM `accounts` WHERE `Spielername` = '%s'",SpielerInfo[playerid][sName]);
mysql_query(Query);
mysql_store_result();
if(mysql_num_rows())
{
mysql_fetch_field("Passwort",Query);
if(!strcmp(Query,Kennwort,false))
{
mysql_fetch_field("Adminlevel",Query); SpielerInfo[playerid][sAdminlevel] = strval(Query);
printf("AdminLevel geladen: %s / %d", Query, SpielerInfo[playerid][sAdminlevel]);
mysql_fetch_field("Verwarnungen",Query); SpielerInfo[playerid][sWarns] = strval(Query);
mysql_fetch_field("Premium",Query); SpielerInfo[playerid][sPremium] = strval(Query);
mysql_fetch_field("Spielzeit",Query); SpielerInfo[playerid][sSpielzeit] = strval(Query);
mysql_fetch_field("Geschlecht",Query); SpielerInfo[playerid][sGeschlecht] = strval(Query);
mysql_fetch_field("posX",Query); SpielerInfo[playerid][posX] = floatstr(Query);
mysql_fetch_field("posY",Query); SpielerInfo[playerid][posY] = floatstr(Query);
mysql_fetch_field("posZ",Query); SpielerInfo[playerid][posZ] = floatstr(Query);
mysql_fetch_field("posA",Query); SpielerInfo[playerid][posA] = floatstr(Query);
mysql_fetch_field("Level",Query); SpielerInfo[playerid][sLevel] = strval(Query);
printf("Level geladen: %s / %d", Query, SpielerInfo[playerid][sLevel]);
mysql_fetch_field("Firma",Query); SpielerInfo[playerid][sFirma] = strval(Query);
mysql_fetch_field("Firmaname",Query); SpielerInfo[playerid][sFirmaname] = strval(Query);
mysql_fetch_field("Tutorial",Query); SpielerInfo[playerid][sTutorial] = strval(Query);
mysql_fetch_field("Aussehen",Query); SpielerInfo[playerid][sSkin] = strval(Query);
printf("Aussehen geladen: %s / %d", Query, SpielerInfo[playerid][sSkin]);
mysql_fetch_field("Geld",Query); SpielerInfo[playerid][sGeld] = strval(Query);
mysql_fetch_field("Alter",Query); SpielerInfo[playerid][sAlter] = strval(Query);
mysql_fetch_field("Mats",Query); SpielerInfo[playerid][sMats] = strval(Query);
mysql_fetch_field("Bmod",Query); SpielerInfo[playerid][sBmod] = strval(Query);
mysql_fetch_field("Coints",Query); SpielerInfo[playerid][sCoints] = strval(Query);
mysql_fetch_field("Ticketsopen",Query); SpielerInfo[playerid][sTicketsopen] = strval(Query);
mysql_fetch_field("SaveDrogen",Query); SpielerInfo[playerid][sSaveDrogen] = strval(Query);
mysql_fetch_field("SaveMats",Query); SpielerInfo[playerid][sSaveMats] = strval(Query);
mysql_fetch_field("Drogen",Query); SpielerInfo[playerid][sDrogen] = strval(Query);
mysql_fetch_field("Bank",Query); SpielerInfo[playerid][sBank] = strval(Query);
mysql_fetch_field("Telefon",Query); SpielerInfo[playerid][sTelefon] = strval(Query);
mysql_fetch_field("Telefonnummer",Query); SpielerInfo[playerid][sTelefonnummer] = strval(Query);
mysql_fetch_field("Telefonbuch",Query); SpielerInfo[playerid][sTelefonbuch] = strval(Query);
mysql_fetch_field("Klingelton",Query); SpielerInfo[playerid][sKlingelton] = strval(Query);
mysql_fetch_field("Personalausweis",Query); SpielerInfo[playerid][sPerso] = strval(Query);
mysql_fetch_field("PersonalausweisAntrag",Query); SpielerInfo[playerid][sPersoAntrag] = strval(Query);
mysql_fetch_field("Arbeitslos",Query); SpielerInfo[playerid][sArbeitslos] = strval(Query);
mysql_fetch_field("ArbeitslosAntrag",Query); SpielerInfo[playerid][sArbeitslosAntrag] = strval(Query);
mysql_fetch_field("Job",Query); SpielerInfo[playerid][sJob] = strval(Query);
mysql_fetch_field("Jobzeit",Query); SpielerInfo[playerid][sLastJob] = strval(Query);
mysql_fetch_field("Fahrlizenz",Query); SpielerInfo[playerid][sFahrlizenz] = strval(Query);
mysql_fetch_field("Angellizenz",Query); SpielerInfo[playerid][sAngellizenz] = strval(Query);
mysql_fetch_field("FahrlizenzSperre",Query); SpielerInfo[playerid][sFahrlizenzLock] = strval(Query);
mysql_fetch_field("Fluglizenz",Query); SpielerInfo[playerid][sFlyLic] = strval(Query);
mysql_fetch_field("FluglizenzSperre",Query); SpielerInfo[playerid][sFlyLicLock] = strval(Query);
mysql_fetch_field("Lastkraftwagenlizenz",Query); SpielerInfo[playerid][sLKWLic] = strval(Query);
mysql_fetch_field("LastkraftwagenlizenzSperre",Query); SpielerInfo[playerid][sLKWLicLock] = strval(Query);
mysql_fetch_field("Motorradlizenz",Query); SpielerInfo[playerid][sBikeLic] = strval(Query);
mysql_fetch_field("MotorradlizenzSperre",Query); SpielerInfo[playerid][sBikeLicLock] = strval(Query);
mysql_fetch_field("Schifffahrtslizenz",Query); SpielerInfo[playerid][sBoatLic] = strval(Query);
mysql_fetch_field("SchifffahrtslizenzSperre",Query); SpielerInfo[playerid][sBoatLicLock] = strval(Query);
mysql_fetch_field("Waffenlizenz",Query); SpielerInfo[playerid][sWeaponLic] = strval(Query);
mysql_fetch_field("WaffenlizenzSperre",Query); SpielerInfo[playerid][sWeaponLicLock] = strval(Query);
mysql_fetch_field("Gehalt",Query); SpielerInfo[playerid][sGehalt] = strval(Query);
mysql_fetch_field("Fraktion",Query); SpielerInfo[playerid][sFraktion] = strval(Query);
mysql_fetch_field("Fraktionssperre",Query); SpielerInfo[playerid][sInviteLock] = strval(Query);
mysql_fetch_field("Boss",Query); SpielerInfo[playerid][sBoss] = strval(Query);
mysql_fetch_field("Rang",Query); SpielerInfo[playerid][sRang] = strval(Query);
mysql_fetch_field("Strafpunkte",Query); SpielerInfo[playerid][sPunkte] = strval(Query);
mysql_fetch_field("PaydayZeit",Query); SpielerInfo[playerid][sPaydayZeit] = strval(Query);
mysql_fetch_field("Respektpunkte",Query); SpielerInfo[playerid][sRespektpunkte] = strval(Query);
mysql_fetch_field("Fischskill",Query); SpielerInfo[playerid][sFishSkill] = strval(Query);
mysql_fetch_field("Krankenhaus",Query); SpielerInfo[playerid][sKrankenhaus] = strval(Query);
mysql_fetch_field("Friedhof",Query); SpielerInfo[playerid][sFriedhof] = strval(Query);
if(SpielerInfo[playerid][sKrankenhaus] || SpielerInfo[playerid][sFriedhof])
{
mysql_fetch_field("TotX",Query); SpielerInfo[playerid][sTx] = floatstr(Query);
mysql_fetch_field("TotY",Query); SpielerInfo[playerid][sTy] = floatstr(Query);
mysql_fetch_field("TotZ",Query); SpielerInfo[playerid][sTz] = floatstr(Query);
}
mysql_fetch_field("Tode",Query); SpielerInfo[playerid][sTode] = strval(Query);
mysql_fetch_field("Fische",Query); SpielerInfo[playerid][sFishes] = strval(Query);
mysql_fetch_field("Haus",Query); SpielerInfo[playerid][sHaus] = strval(Query);
mysql_fetch_field("Spawn",Query); SpielerInfo[playerid][sSpawn] = strval(Query);
mysql_fetch_field("Morde",Query); SpielerInfo[playerid][sMorde] = strval(Query);
mysql_fetch_field("Kills",Query); SpielerInfo[playerid][sKills] = strval(Query);
mysql_fetch_field("Verbrechen",Query); SpielerInfo[playerid][sVerbrechen] = strval(Query);
mysql_fetch_field("Wantedlevel",Query); SpielerInfo[playerid][sWantedlevel] = strval(Query);
mysql_fetch_field("Knast",Query); SpielerInfo[playerid][sGefangen] = strval(Query);
mysql_fetch_field("KnastZeit",Query); SpielerInfo[playerid][sGefangenZeit] = strval(Query);
mysql_free_result();
format(Query,sizeof(Query),"UPDATE `accounts` SET `Online`='1',`Eingeloggt`='Am %s um %s Uhr' WHERE `Spielername`='%s'",Datum(),Uhrzeit(),SpielerInfo[playerid][sName]);
mysql_query(Query);
format(Query,sizeof(Query),"%s hat sich mit der IP %s angemeldet.",SpielerInfo[playerid][sName],SpielerInfo[playerid][sIp]);
EnterToLog("Einloggen",Query);
if(SpielerInfo[playerid][sKrankenhaus] || SpielerInfo[playerid][sFriedhof])
SpielerInfo[playerid][sTotenkopf] = CreatePickup(1254,1,SpielerInfo[playerid][sTx],SpielerInfo[playerid][sTy],SpielerInfo[playerid][sTz],-1);
SetPlayerScore(playerid,SpielerInfo[playerid][sLevel]);
printf("Setze Score: %d", SpielerInfo[playerid][sLevel]);
GivePlayerMoney(playerid,SpielerInfo[playerid][sGeld]);
TextDrawShowForPlayer(playerid,UhrDraw);
TextDrawShowForPlayer(playerid,DatumDraw);
TextDrawShowForPlayer(playerid,NewsText);
SpielerInfo[playerid][sEingeloggt] = true;
format(Query,sizeof(Query),"Server: Willkommen %s Zurück.",SpielerInfo[playerid][sName]);
SendClientMessage(playerid,Farbe_Weiß,Query);
if(SpielerInfo[playerid][sAdminlevel])
{
format(Query,sizeof(Query),"Server: Du hast dich mit dem Adminlevel '%d' eingeloggt.",SpielerInfo[playerid][sAdminlevel]);
printf("Query: %s", Query);
SendClientMessage(playerid,Farbe_Blau,Query);
for(new si;si<sizeof(SupportInfo);si++)
{
TextDrawShowForPlayer(playerid,SupportInfo[si][S_Nummern]);
TextDrawShowForPlayer(playerid,SupportInfo[si][S_Text]);
}
TextDrawShowForPlayer(playerid,SupportBubble);
}
for(new fs;fs<sizeof(FightSystem);fs++)
{
GangZoneShowForPlayer(playerid,FightSystem[fs][fsZoneID],GetZoneColorOfFaction(FightSystem[fs][fsOwnerFaction]));
if(FightSystem[fs][fsAttackFaction] != -255 && FightSystem[fs][fsFightTime])
{
GangZoneFlashForPlayer(playerid,FightSystem[fs][fsZoneID],GetZoneColorOfFaction(FightSystem[fs][fsAttackFaction]));
if(SpielerInfo[playerid][sFraktion] == FightSystem[fs][fsOwnerFaction] || SpielerInfo[playerid][sFraktion] == FightSystem[fs][fsAttackFaction])
{
TextDrawShowForPlayer(playerid,Fight);
TextDrawShowForPlayer(playerid,FightOverline);
TextDrawShowForPlayer(playerid,FightUnderline);
TextDrawShowForPlayer(playerid,FightSystem[fs][fsWinFaction]);
TextDrawShowForPlayer(playerid,FightSystem[fs][fsLoseFaction]);
TextDrawShowForPlayer(playerid,FightSystem[fs][fsWinKills]);
TextDrawShowForPlayer(playerid,FightSystem[fs][fsLoseKills]);
TextDrawShowForPlayer(playerid,FightSystem[fs][fsTime]);
}
}
}
if(SpielerInfo[playerid][sPremium])
{
if(SpielerInfo[playerid][sPremium] < gettime())
{
SpielerInfo[playerid][sPremium] = 0;
SendClientMessage(playerid,Farbe_Leuchtrot,"Server: Du bist nun kein Premium - Mitglied.");
}
else
SendClientMessage(playerid,Farbe_Blau,"Server: Du bist Donator Benutzer. Für Details schau im Forum vorbei");
}
for(new a;a<sizeof(Autohaus);a++)
SetPlayerMapIcon(playerid,a,Autohaus[a][ahX],Autohaus[a][ahY],Autohaus[a][ahZ],55,0,MAPICON_LOCAL);
if(SpielerInfo[playerid][sWantedlevel])
{
if(SpielerInfo[playerid][sWantedlevel] > 6)
SetPlayerWantedLevel(playerid,6);
else
SetPlayerWantedLevel(playerid,SpielerInfo[playerid][sWantedlevel]);
}
PlayerPlaySound(playerid,1063,0.0,0.0,0.0);
SpawnPlayer(playerid);
SetPlayerPos(playerid, SpielerInfo[playerid][posX], SpielerInfo[playerid][posY], SpielerInfo[playerid][posZ]);
SetPlayerFacingAngle(playerid, SpielerInfo[playerid][posA]);
LadeSpielerAutos(playerid);
return 1;
}
else
{
mysql_free_result();
SetPVarInt(playerid,"WrongPasswort",GetPVarInt(playerid,"WrongPasswort")+1);
if(GetPVarInt(playerid,"WrongPasswort") >= 3)
{
Kick(playerid);
return 0;
}
ShowPlayerDialog(playerid,Dialog_Einloggen,DIALOG_STYLE_PASSWORD,"Zukunft Reallife : Anmeldung:","Das angegebene Passwort ist falsch, bite versuche es nochmal","->","<.");
}
}
else
Kick(playerid);
mysql_free_result();
return 0;
} -
Das Query scheint zu kurz zu sein:
new query[128];
zu:
new query[256]; -
Inwiefern klappt es nicht?
-
Da empfehle ich dir diese Include:
http://forum.sa-mp.com/showthread.php?t=537468 -
Dann poste bitte den Code von dem Callback in dem die Checkpoints und Texte sind, eben wenn du zu hause bist.
-
Also dort wird das Level mit 15000 gespeichert, und das Adminlevel mit 0.
Das Query ist syntaktisch korrekt, daher sollte es auch so in der Datenbank stehen (gegebenenfalls aktualisiere die Ansicht). Es sollte dann auch korrekt geladen werden.Also an sich sehe ich da nirgends einen Fehler, der darauf deutet, dass das Level (Score) nicht richtig geladen wird. Es müsste wieder 15000 sein, wenn du dich einloggst.
-
Nun würde ich es gerne so haben wenn ich im checkpoint bin mir die Texte aus gibt.
Welche Texte denn?
Kannst du bitte den Code dazu posten? -
Sollte er zumindest, wenn es an dem Code liegt.
Falls nicht, dann poste den Code samt Error nochmal. -
Yup.
Entweder du packst wirklich alle Dialoge in ein enum (dann darf aber auch in einem Filterscript kein enum mit Dialogen vorkommen), oder du definierst sie alle. Ich empfehle die define Variante. -
Dialog IDs über enums zu steuern ist nicht gut, da die immer von vorne anfangen, sprich bei zwei enums hast du auch zwei mal die gleichen Werte, das führt zu Fehlern.
Schreibe alle Dialoge in defines und gebe die ID dahinter an. -
Rufst du die Funktion möglicherweise auf, bevor du die Daten geladen hast? Wenn du dafür, und davon gehe ich aus, mysql_pquery nutzt, dann musst du diesen Stock in dem Callback das aufgerufen wird (public) ausführen lassen, und nicht bei OnGameModeInit.
-
Nutze diese Funktion stattdessen:
http://wiki.sa-mp.com/wiki/MySQL/R33#mysql_pquery -
Welche Plugin Version verwendest du?
-
Was ist denn der Fehler?
Vielleicht ganz hinten das %s zu %d ändern? Versuche das mal. -
Nicht dort.
Da du mysql_tquery verwendest, musst du damit ein Callback aufrufen lassen (public) und in diesem Callback musst du die ID auslesen (Cache-Prinzip).
Wie im Beispiel in dem Link.
http://wiki.sa-mp.com/wiki/MySQL/R33#cache_insert_id -
Beim Speichern musst du mit http://wiki.sa-mp.com/wiki/GetVehicleComponentInSlot arbeiten, und beim Laden einfach mit http://wiki.sa-mp.com/wiki/AddVehicleComponent.
An sich sind das 14 Fahrzeug-Attribute (wie Farbe, ...). -
Poste bitte das Callback mit dem du das Register-Fenster anzeigst.
-
Du musst die
UserInfo[playerid][uID]
mit
http://wiki.sa-mp.com/wiki/MySQL/R33#cache_insert_id
auslesen.Sprich im Callback nach dem INSERT-Query:
UserInfo[playerid][uID] = cache_insert_id();