Ich schätze dem Code mal nach, dass es so sein müsste:
public OnPlayerSpawn(playerid)
{
pTimer[playerid] = SetTimerEx("PayDay", (1000*60), true, "i", playerid);
spielzeitTimer[playerid] = SetTimerEx("SpielZeitTimer", (1000*60), true, "i", playerid);
switch(sInfo[playerid][pSpawn])
{
case 0: //Neulingsspawn
{
// Was passieren soll
}
case 1: //Fraktion
{
new fID = sInfo[playerid][pFraktion];
SetPlayerPos(playerid, fInfo[fID][f_x], fInfo[fID][f_y], fInfo[fID][f_z]);
SetPlayerFacingAngle(playerid, fInfo[fID][f_r]);
}
case 2: //Haus
{
// Was passieren soll
}
}
return 1;
}
Beiträge von Jeffry
-
-
-
Ja, so.
Das AUTO_INCREMENT bewirkt, dass die id automatisch hochgezählt wird. -
-
Setze die Spalte "id" in deiner Tabelle auf "AUTO_INCREMENT" (A_I) und ändere das Query zu:
format(sql, sizeof(sql), "INSERT INTO biz (name,besitzer,x,y,z,kostet) VALUES ('%s','Niemand',%f,%f,%f,%d)",result,spx,spy,spz,player1);Dann leere die Tabelle und versuche es erneut.
-
-
Da scheint in deinem Code bei OnGameModeInit mindestens ein https://wiki.sa-mp.com/wiki/AddPlayerClass zu fehlen.
Prüfe das mal.Wie mache ich den Array größer? b.Z welcher von den?
Nach "new fInfo" die Zahl.
-
Woran kiegt das?
Kannst du bitte von der Meldung im Spiel einen Screenshot machen?
PS: Wie schaffe ich es den Pawn code richtig einzufügen?
Über den Quellcode-Editor (Kästchen neben den beiden Pfeilen).
Und bei dem Frakload lass ich die Fraktionen Printen die geladen wurden... die letzten 3 fehlen, Warum?
Möglicherweise ist dein fInfo Array zu klein, sprich für zu wenige Fraktionen vorgesehen.
-
Ist ja kein Problem, dafür gibt es die Scripting Base ja.
Nur musst du sagen, wenn du etwas nicht verstehst, dann erklärt man dir das gerne (ich zumindest) - da kommt auf jeden Fall nicht der Eindruck auf, dass jemand nur alles vorgemacht haben will, hauptsache es funktioniert, sondern man weiß, dass derjenige auch etwas dabei lernen will. Da investiere ich auch gerne etwas mehr Zeit in eine Erklärung.Für's nächste mal dann, falls du etwas nicht verstehst, Bescheid sagen.

Das Prinzip der drei Funktionen (für String, Integer und Float) ist dir nun aber klar, oder?
-
ich scripte noch nicht lange und habe diese Wiki nicht verstanden.
EntschuldigungDas ist ja dann kein Problem, dann musst du aber auch sagen, dass du es nicht verstehst, dann kann man es dir erklären.

Deine Posts haben allerdings den Eindruck gemacht, dass du es dir gar nicht angeschaut hast, da du keine zwei Minuten später wieder gepostet hast.Das Wichtigste am ganzen Prozess ist ja, dass du ihn verstehst und etwas dabei lernst, um es auch in Zukunft korrekt machen zu können.
-
Du solltest wirklich mehr Eigeninitiative zeigen und wenigstens mal einen Blick in das Wiki schauen, dort sind die Funktionen jeweils mit einem Beispiel erklärt, das kann man eigentlich dann nicht mehr falsch machen.
Wenn ich dir das alles vorschreibe lernst du gar nichts dabei.forward OnFraktionLaden();
public OnFraktionLaden()
{
new rows, fields;
cache_get_data(rows, fields);
for(new i = 0; i < rows; i++)
{
fInfo[i][f_id] = cache_get_field_content_int(i,"fid",Handle);
cache_get_field_content(i,"fname", fInfo[i][f_name],Handle,32);
//Cords
fInfo[i][f_x] = cache_get_field_content_float(i,"f_x", Handle);
fInfo[i][f_interior] = cache_get_field_content_int(i,"f_interoir",Handle);
fInfo[i][f_world] = cache_get_field_content_int(i,"f_world", Handle);
fInfo[i][f_color] = cache_get_field_content_int(i,"f_color", Handle);
fInfo[i][f_kasse] = cache_get_field_content_int(i,"f_kasse", Handle);
//Rangnamen
cache_get_field_content(i,"f_rang1", fInfo[i][f_rang1],Handle);
cache_get_field_content(i,"f_rang2", fInfo[i][f_rang2],Handle);
cache_get_field_content(i,"f_rang3", fInfo[i][f_rang3],Handle);
cache_get_field_content(i,"f_rang4", fInfo[i][f_rang4],Handle);
cache_get_field_content(i,"f_rang5", fInfo[i][f_rang5],Handle);
cache_get_field_content(i,"f_rang6", fInfo[i][f_rang6],Handle);
printf("Fraktionen geladen");
}
return 1;
} -
Wenn du es mit der Spaltenangabe machen willst, dann musst du http://wiki.sa-mp.com/wiki/MyS…e_get_field_content_float nutzen, und zwar so:
fInfo[i][f_x] = cache_get_field_content_float(i,"f_x"); -
wie lade ich Float's??
-
stock FraktionLaden()
{
mysql_function_query(Handle, "SELECT * FROM `fraktionen`", true, "OnFraktionLaden", "");
return 1;
}forward OnFraktionLaden();
public OnFraktionLaden()
{
new rows, fields;
cache_get_data(rows, fields);
for(new i = 0; i < rows; i++)
{
cache_get_field_content(i,"fname", fInfo[i][f_name],Handle,32);
//Rows hier auslesen
}
return 1;
} -
-
Ich benutze das R31 also dann cache_get_field_content_int oder?
Anstatt von?
-
stock FraktionLaden()
{
mysql_function_query(Handle, "SELECT * FROM `fraktionen`", true, "OnFraktionLaden", "");
return 1;
}forward OnFraktionLaden();
public OnFraktionLaden()
{
new rows = cache_num_rows();
for(new i = 0; i < rows; i++)
{
cache_get_field_content(i,"fname", fInfo[i][f_name],Handle,32);
//Rest hier auslesen...
}
return 1;
} -
Jein, da würde dann noch das Cache-Auslesen fehlen, und ein Query reicht eigentlich, man kann dann durch den Cache loopen.
stock FraktionLaden()
{
mysql_function_query(Handle, "SELECT * FROM `fraktionen`", true, "OnFraktionLaden", "");
return 1;
}Wenn du das OnFraktionLaden noch anlegst, dann passt es.
Dort musst du dann durch den Cache loopen. -
http://wiki.sa-mp.com/wiki/MySQL/R33#mysql_pquery
Anklicken und den Code der in der Kategorie steht (10cm runter scrollen) an deinen Code anpassen. -