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");
FrakLoad
- Marschl
- Geschlossen
- Erledigt
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
-
-
Also dass heißt, dass dies falsch ist?
forward OnFraktionLaden();
public OnFraktionLaden()
{
new rows, fields;
cache_get_data(rows, fields);
for(new i = 0; i < rows; i++)
{
cache_get_field_content(i,"fid", fInfo[i][f_id],Handle);
cache_get_field_content(i,"fname", fInfo[i][f_name],Handle,32);//Cords
cache_get_row_float(i,"f_x", fInfo[i][f_x],Handle);
cache_get_field_content(i,"f_interoir", fInfo[i][f_interior],Handle);
cache_get_field_content(i,"f_world", fInfo[i][f_world],Handle);
cache_get_field_content(i,"f_color", fInfo[i][f_color],Handle);
cache_get_field_content(i,"f_kasse", fInfo[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;
} -
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;
} -
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;}
Danke
ich scripte noch nicht lange und habe diese Wiki nicht verstanden.
Entschuldigung -
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.
-
Bin der gleichen Meinung...
ich hatte es ja davor so:
cache_get_field_content(i,"f_name", Handle,32);Das gab halt keine Error's oder Warnings
Und ich hab dann gedacht das sei richtig -
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?
-
Das hab ich jetzt verstanden
Mein anderes Problem ist wenn ich connecte kommt "Stay within the world boundaries"Hier meine DatenBank:
http://prntscr.com/a204ktSo lasse ich die Spieler Spawnen:
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{new fID;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 1: //Fraktion{// Was passieren soll}case 2: //Haus{// Was passieren soll}}return 1;}
Woran kiegt das?
PS: Wie schaffe ich es den Pawn code richtig einzufügen?
Und bei dem Frakload lass ich die Fraktionen Printen die geladen wurden... die letzten 3 fehlen, Warum?
Gruß
-
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.
-
-
-
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.
-
Wie nach fInfo die zahl ? meinst du MAX_FRAKS oder?
-
Ja, dann beim "#define MAX_FRAKS" die Zahl erhöhen, entsprechend der der Anzahl an Fraktionen.
Du weißt ja wie viele Fraktionen du angelegt hast, ich weiß das nicht. -
Ich hab das auf 15 und hab in der datenbank 14 fraktionen
-
Dann poste bitte den Code mit dem print vom Laden, das was im Server Log ausgegeben wird und einen Screenshot der Daten in der Tabelle.
-
Meine Ladefunktion
Code
Alles anzeigenforward OnFraktionLaden(); public OnFraktionLaden() { new rows, fields; cache_get_data(rows, fields); for(new i = 0; i < rows; i++) { cache_get_field_content(i,"fid", fInfo[i][f_id],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_y] = cache_get_field_content_float(i,"f_y", Handle); fInfo[i][f_z] = cache_get_field_content_float(i,"f_z", Handle); fInfo[i][f_r] = cache_get_field_content_float(i,"f_r", Handle); cache_get_field_content(i,"f_interoir", fInfo[i][f_interior],Handle); cache_get_field_content(i,"f_world", fInfo[i][f_world],Handle); cache_get_field_content(i,"f_color", fInfo[i][f_color],Handle); cache_get_field_content(i,"f_kasse", fInfo[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("Fraktion %s wurde geladen!", fInfo[i][f_name]); } return 1; }
Mein Serverlog:Code
Alles anzeigen---------- Loaded log file: "server_log.txt". ---------- SA-MP Dedicated Server ---------------------- v0.3.7-R2, (C)2005-2015 SA-MP Team [21:54:11] filterscripts = "" (string) [21:54:11] [21:54:11] Server Plugins [21:54:11] -------------- [21:54:11] Loading plugin: sscanf [21:54:11] [21:54:11] =============================== [21:54:11] sscanf plugin loaded. [21:54:11] Version: 2.8.1 [21:54:11] (c) 2012 Alex "Y_Less" Cole [21:54:11] =============================== [21:54:11] Loaded. [21:54:11] Loading plugin: mysql [21:54:11] >> plugin.mysql: running on 6 threads. [21:54:11] >> plugin.mysql: R31 successfully loaded. [21:54:11] Loaded. [21:54:11] Loading plugin: streamer [21:54:11] *** Streamer Plugin v2.7.9 by Incognito loaded *** [21:54:11] Loaded. [21:54:11] Loaded 3 plugins. [21:54:11] [21:54:11] Filterscripts [21:54:11] --------------- [21:54:11] Loaded 0 filterscripts. [21:54:11] |>MySQL<| - Es konnte Verbindung zur der Datenbank samp aufgebaut werden [21:54:11] Number of vehicle models: 0 [21:54:11] Fraktion Zivilist wurde geladen! [21:54:11] Fraktion San Andreas Police Department wurde geladen! [21:54:11] Fraktion Federal Bureau of Investigation wurde geladen! [21:54:11] Fraktion Präsidentschaft wurde geladen! [21:54:11] Fraktion San Andreas Medical Center wurde geladen! [21:54:11] Fraktion San Andreas Ordnungsamt wurde geladen! [21:54:11] Fraktion San Andreas News wurde geladen! [21:54:11] Fraktion Grove Street wurde geladen! [21:54:11] Fraktion Ballas wurde geladen! [21:54:11] Fraktion Vagos wurde geladen! [21:54:11] Fraktion Varrios Los Aztecas wurde geladen! [21:54:11] Fraktion Yakuza wurde geladen! [21:54:11] Fraktion La Cosa Nostra wurde geladen! [21:54:11] Fraktion Hitman Agency wurde geladen! [21:54:11] Fraktion Terroristen wurde geladen!
Der Screenshot:
http://prntscr.com/a21d61 -
Also ich zähle 15 geladene Fraktionen, und in der Tabelle sind ebensoviele. Ich kann da jetzt kein Problem erkennen, was ist denn das Problem?
-
Irgendwie ist es jetzt richtig
Aber werde nach dem Login nicht auf den Cordinaten gespawnt.Hier mein OnPlayerSpawn:
Code
Alles anzeigenpublic 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 { new fID; 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 1: //Fraktion { // } case 2: //Haus { // Was passieren soll } } return 1; }
-
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;
} -
stimmt aber wenn er fraktion 0 ist muss man neulingsspawn eintragen
Und man sollte auch den Neulingsspawn auswählen können wenn man in einer fraktion ist. Dafür speicher ich ja pSpawn -