Alles anzeigenformat(query, sizeof(query), "INSERT INTO Fractions (FID, Name, Shortname, X, Y, Z, R, Inter, World, Typ, Cop, Leaderskin, Kasse, Mats, Drogen, Color) VALUES ('%d', '%s', '%s', '%f', '%f', '%f', '%f', '%d', '%d', '%d', '%d', '%d', '%d', '%s')zu:
format(query, sizeof(query), "INSERT INTO Fractions (FID, Name, Shortname, X, Y, Z, R, Inter, World, Typ, Cop, Leaderskin, Kasse, Mats, Drogen, Color) VALUES ('%d', '%s', '%s', '%f', '%f', '%f', '%f', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%s')
Es haben zwei "%d" gefehlt.
Das liegt am fehlenden return 1 in der Schleife und der fehlenden Abfrage, ob die Fraktion bereits existiert.
So sieht der Befehl dann aus:
ocmd:cfraktion(playerid, params[]){ new fname[256],query[512],fshortname[64],string[256],skinid,typ,cop,farbcode[64]; if(!isPlayerAnAdmin(playerid,4))return SCM(playerid, ERROR_FARBE, ERROR_ADMIN); if(sscanf(params,"ssddds",fname,fshortname,typ,cop,skinid,farbcode))return SCM(playerid, -1, "Tippe: /cfraktion [name] [abkürzung] [typ 0=Neutral 1=Staat] [cop 0=Nein 1=Ja] [leaderskin-id] [farbcode(HTML)]"); for(new i=0; i<MAX_FRAC; i++) { if(strlen(fInfo[i][f_name])) continue; //Fraktion existiert bereits new Float:x, Float:y, Float:z, Float:r, interior, virtualworld; GetPlayerPos(playerid, x, y, z); GetPlayerFacingAngle(playerid, r); interior = GetPlayerInterior(playerid); virtualworld = GetPlayerVirtualWorld(playerid); fInfo[i][fid] = i; format(fInfo[i][f_name],256,fname); format(fInfo[i][f_shortname],16,fshortname); fInfo[i][f_x] = x; fInfo[i][f_y] = y; fInfo[i][f_z] = z; fInfo[i][f_r] = r; fInfo[i][f_inter] = interior; fInfo[i][f_world] = virtualworld; fInfo[i][f_typ] = typ; fInfo[i][f_cop] = cop; fInfo[i][f_leaderskin] = skinid; fInfo[i][f_kasse] = 0; fInfo[i][f_mats] = 0; fInfo[i][f_drogen] = 0; format(fInfo[i][f_color],56,farbcode); format(query, sizeof(query), "INSERT INTO Fractions (FID, Name, Shortname, X, Y, Z, R, Inter, World, Typ, Cop, Leaderskin, Kasse, Mats, Drogen, Color) VALUES ('%d', '%s', '%s', '%f', '%f', '%f', '%f', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%s')", i, fInfo[i][f_name], fInfo[i][f_shortname], fInfo[i][f_x], fInfo[i][f_y], fInfo[i][f_z], fInfo[i][f_r], fInfo[i][f_inter], fInfo[i][f_world], fInfo[i][f_typ], fInfo[i][f_cop], fInfo[i][f_leaderskin], fInfo[i][f_kasse], fInfo[i][f_mats], fInfo[i][f_drogen], fInfo[i][f_color]); mysql_tquery(handle, query); format(string,sizeof(string), "Du hast erfolgreich die Fraktion %s(F-ID: %d) erstellt.", fname, i); SCM(playerid, BABYBLAU, string); return 1; } return 1;}
Wie funktioniert das, dass ich bei cfraktion Leerzeichen bei [Namen] machen kann?
also z.B. "/cfraktion San Andreas Medical Department SAMD 1 0 128 -1"
@The Sensei Ich müsste die Version R41 benutzen wenn mich nicht alles täuscht
Die Funktionen heißen so.
cache_get_value_name_int(i, "FID", fInfo[i][fid]);
cache_get_value_name(i, "Name", fInfo[i][f_name], 256);
cache_get_value_name(i, "Shortname", fInfo[i][f_shortname], 64);
cache_get_value_name_float(i, "X", fInfo[i][f_x]);
cache_get_value_name_float(i, "Y", fInfo[i][f_y]);
cache_get_value_name_float(i, "Z", fInfo[i][f_z]);
cache_get_value_name_float(i, "R", fInfo[i][f_r]);
cache_get_value_name_int(i, "Inter", fInfo[i][f_inter]);
cache_get_value_name_int(i, "World", fInfo[i][f_world]);
cache_get_value_name_int(i, "Typ", fInfo[i][f_typ]);
cache_get_value_name_int(i, "Cop", fInfo[i][f_cop]);
cache_get_value_name_int(i, "Leaderskin", fInfo[i][f_leaderskin]);
cache_get_value_name_int(i, "Kasse", fInfo[i][f_kasse]);
cache_get_value_name_int(i, "Mats", fInfo[i][f_mats]);
cache_get_value_name_int(i, "Drogen", fInfo[i][f_drogen]);
cache_get_value_name(i, "Color", fInfo[i][f_color], 64);