Poste mal dein gesamtes OnDialogResponse.
Beiträge von Jeffry
-
-
updateHaus(id)
{
new string[128];
if(hInfo[id][h_pickup] != -1)
{
DestroyPickup(hInfo[id][h_pickup]);
}
if(hInfo[id][h_text] != Text3D:-1)
{
Delete3DTextLabel(hInfo[id][h_text]);
}
if(!strlen(hInfo[id][h_besitzer]))
{
hInfo[id][h_pickup]=CreatePickup(1273, 1, hInfo[id][h_x], hInfo[id][h_y], hInfo[id][h_z], -1);
format(string,128, "~[***Haus***]~\nZum Verkauf\nKosten: %i$\n/hauskaufen", hInfo[id][h_preis]);
hInfo[id][h_text] = Create3DTextLabel(string, 0, hInfo[id][h_x], hInfo[id][h_y], hInfo[id][h_z], 10, 0, 1);
}
else
{
hInfo[id][h_pickup]=CreatePickup(1239, 1, hInfo[id][h_x], hInfo[id][h_y], hInfo[id][h_z], -1);
format(string,128, "~[***Haus***]~\nBesitzer: %s\n/enter", hInfo[id][h_besitzer]);
hInfo[id][h_text]=Create3DTextLabel(string, 0, hInfo[id][h_x], hInfo[id][h_y], hInfo[id][h_z], 10, 0, 1);
}
return 1;
}public OnHausesLoad()
{
new num_fields,num_rows;
cache_get_data(num_rows,num_fields,Handle);
if(!num_rows)return 1;
for(new i=0; i<num_rows; i++)
{
new id=getFreeHausID();
hInfo[id][h_x]=cache_get_field_content_float(i, "X", Handle);
hInfo[id][h_y]=cache_get_field_content_float(i, "Y", Handle);
hInfo[id][h_z]=cache_get_field_content_float(i, "Z", Handle);
hInfo[id][h_ix]=cache_get_field_content_float(i, "IX", Handle);
hInfo[id][h_iy]=cache_get_field_content_float(i, "IY", Handle);
hInfo[id][h_iz]=cache_get_field_content_float(i, "IZ", Handle);
hInfo[id][h_int]=cache_get_field_content_int(i, "Interior", Handle);
new tmp_name[MAX_PLAYER_NAME];
cache_get_field_content(i, "Besitzer", tmp_name, Handle);
strmid(hInfo[id][h_besitzer], tmp_name, 0, sizeof(tmp_name), sizeof(tmp_name));
hInfo[id][h_id]=cache_get_field_content_int(i, "id", Handle);
hInfo[id][h_preis]=cache_get_field_content_int(i, "Preis", Handle);
hInfo[id][h_locked]=cache_get_field_content_int(i, "Locked", Handle);
hInfo[id][h_text] = Text3D:-1;
hInfo[id][h_pickup] = -1;
updateHaus(id);
}
return 1;
}und:
ocmd:deletehaus(playerid, params[])
{
if(pInfo[playerid][pAdmin] >= 3)return SendClientMessage(playerid, COLOR_RED, "Dein Adminrang ist zu niedrig.");
for(new i=0; i<sizeof(hInfo); i++)
{
if(!hInfo[i][h_id])continue;
if(!IsPlayerInRangeOfPoint(playerid, 5, hInfo[i][h_x], hInfo[i][h_y], hInfo[i][h_z]))continue;
new query[128];
format(query,sizeof(query), "DELETE FROM houses WHERE id='%i'", hInfo[i][h_id]);
mysql_function_query(Handle, query, false, "", "");
hInfo[i][h_x]=0.0;
hInfo[i][h_y]=0.0;
hInfo[i][h_z]=0.0;
hInfo[i][h_ix]=0.0;
hInfo[i][h_iy]=0.0;
hInfo[i][h_iz]=0.0;
hInfo[i][h_id]=0;
hInfo[i][h_preis]=0;
hInfo[i][h_int]=0;
if(hInfo[i][h_pickup] != -1)
{
DestroyPickup(hInfo[i][h_pickup]);
hInfo[i][h_pickup] = -1;
}
if(hInfo[i][h_text] != Text3D:-1)
{
Delete3DTextLabel(hInfo[i][h_text]);
hInfo[i][h_text] = Text3D:-1;
}
return 1;
}
return 1;
} -
Kontaktiere mich diesbezüglich mal über PN, ich will mir das mal mit TeamViewer anschauen.
Ich denke du machst da irgendwas falsch, weil normalerweise geht das ohne Probleme. -
Danke, gibts auch welche in der Größenanordnung?
2642 ist etwas in der Größenordnung einer solchen Anzeigetafel. Da musst halt ziemlich klein schreiben, aber ist ja auch in Echt so. Ein Beispiel dazu hat dir Kaliber ja schon gepostet, allerdings finde ich das zu groß für eine Bushaltestelle.
Als Stange könnte man 1320 nehmen, ggf. einmal verkehrt herum, wenn sie zu klein ist, die kannste auch nicht umfahren. -
Kommen die prints die du bei OnPasswordResponse drin hast wenn du dich einloggen willst?
Wenn nein, ändere:
format(query,sizeof(query),"SELECT * FROM user WHERE username='%s' AND password='%s'",name,passwort);
zu:
format(query,sizeof(query),"SELECT * FROM user WHERE username='%s' AND password='%s'",name,passwort);
printf("query: %s", query);
Was steht im Log, wenn du dich einloggst?Wenn die prints doch kommen, dann schalte mal den MySQL Debug ein und poste was im MySQL Log steht. Wie du das machst steht hier in Kapitel 1.4: Tipps: Scripting-Probleme richtig erklären
-
kennt jemand ein Objekt das sich ungefähr für ne Busanzeigetafel, bzw. ein Dynamisches Fahrgastinformationssystem eignet?
Objekt 2641 sieht ziemlich passend aus, wenn man den Inhalt weg-texturiert. Und dann eine Stange (16101 vielleicht, oder eine umgedrehte Starßenlaterne). -
Du musst es über die 0 entfernen, also den Index.
http://wiki.sa-mp.com/wiki/RemovePlayerAttachedObject -
Sorry, hab die 1 am Ende vergessen, ist zu spät schon... Habe es in den Code oben editiert, bzw:
TimestampToDate(sInfo[playerid][premiumab],yea,mon,day,hou,min,sec,1); -
Hab grade nachgeschaut, das ist aber doof gemacht in der Include.
Du musst es so machen:
new yea,mon,day,hou,min,sec;
TimestampToDate(sInfo[playerid][premiumab],yea,mon,day,hou,min,sec,1);
format(string,sizeof(string),"Du hast noch bis Zum %d.%d.%d Premium!",day,mon,yea); -
Oh.
Nutze den hier, der geht:
http://forum.sa-mp.com/showthread.php?t=416138Das ist zwar mit SetPlayerAttachedObject, aber das ist meiner Meinung nach eh besser, als AttachObjectToPlayer.
-
Der sollte die Flagge auf den Rücken tragen, weist du wie sowas geht?
Nimm den Editor den ich dir gegeben habe, damit geht es super einfach, dann weißt du auch wie es geht, wenn du es mal mit einem anderen Objekt wieder machen musst. Sonst musst du nächstes mal wieder fragen, und das bringt ja nichts.
-
Wie sieht denn dein Login Code aus?
-
Vielen dank, kennst du dich eventuell mit dieser Attachendingsbums aus? Ich wollte genau wie auf diesen Screen so eine Flagge an den Skin geklatscht haben jedoch weis ich leider nicht wie sowas geht..
Das kannst du mit diesem Editor ganz leicht herausfinden, bzw anpassen:http://forum.sa-mp.com/showthread.php?t=209234
Edit: http://forum.sa-mp.com/showthread.php?t=416138 -
if(!strcmp(item, "invite", false))
zu
if(!strcmp(item, "annehmen", false)) -
Mach das [100] bei dem BUGGS weg, das ist ja nur ein Zähler, da brauchst du kein Array.
Außerdem:
if(strlen(Bugs) < 5)
zu:
if(strlen(Bugs[i]) < 5) -
Das ist ein ganz langer Punkt, sprich die TextDrawLetterSize ist beim X Wert sehr groß.
-
Du meinst für jedes Modell?
new modelGas[212] =
{
1000,
750,
2000,
//...
};Abzufragen mit:
modelGas[GetVehicleModel(vehicleid)-400] -
Du hast noch bis zum %s Premium
mit:
TimestampToDate(sInfo[playerid][premiumab]) -
Schreibe es so:
savePlayer(playerid)
{
if(sInfo[playerid][eingeloggt] == 0) return 1;
new query[512];
format(query,sizeof query,"UPDATE user SET level='%d',skin='%d',money='%d',geschlecht='%d',alevel='%d',slevel='%d',fraktion='%d',rang='%d',leader='%d',coleader='%d',spawnchange='%d',perso='%d',palter='%d',pjob='%d',ptot='%d',kGeld='%d',tx='%f',ty='%f',tz='%f',",
GetPlayerScore(playerid),GetPlayerSkin(playerid),GetPlayerMoney(playerid),sInfo[playerid][geschlecht],sInfo[playerid][alevel],sInfo[playerid][slevel],sInfo[playerid][fraktion],sInfo[playerid][rang],sInfo[playerid][leader],sInfo[playerid][coleader],sInfo[playerid][spawnchange],
sInfo[playerid][perso],sInfo[playerid][palter],sInfo[playerid][pjob],sInfo[playerid][PTot],sInfo[playerid][kGeld],sInfo[playerid][dx],sInfo[playerid][dy],sInfo[playerid][dz]);
format(query,sizeof query,"%spkwlic='%d',motorlic='%d',lkwlic='%d',fluglic='%d',bootlic='%d',waffenlic='%d',Bankk='%d',Bankg='%d',ECK='%d',wantedl='%d',jailtime='%d',kx='%f',ky='%f',kz='%f',bankkt='%d',eckt='%d',persot='%d',tott='%d',mats='%d',premiumab='%d',premium='%d' WHERE id='%d'",query,
sInfo[playerid][pkwlic],sInfo[playerid][motorlic],sInfo[playerid][lkwlic],sInfo[playerid][fluglic],sInfo[playerid][bootlic],sInfo[playerid][waffenlic],sInfo[playerid][bankk],sInfo[playerid][bankg],sInfo[playerid][eck],sInfo[playerid][wantedl],
sInfo[playerid][jailtime],sInfo[playerid][kx],sInfo[playerid][ky],sInfo[playerid][kz],sInfo[playerid][bankkt],sInfo[playerid][eckt],sInfo[playerid][persot],sInfo[playerid][tott],sInfo[playerid][pmats],sInfo[playerid][premiumab],sInfo[playerid][premium],sInfo[playerid][db_id]);
print(query);
mysql_function_query(dbhandle,query,false,"","");
return 1;
}Klappt es dann? Wenn nein, poste nochmal das query.
-
1.)
Du hast ja da diesen Print:
print(query);
Was steht denn im Log, wenn du den Spieler speicherst?2.)
strlen(gunid)
zu:
strval(gunid)