Hey,
Ich suche eine Animation wo er etwas aufhabt wie z.b als man die Mission im Singleplayer machen musste mit den Waffenpacketen aus dem Haus klauen
[SAMMELTHREAD] Kleine Scripting Fragen
- Rafelder
- Unerledigt
Dein Problem konnte durch einen User gelöst werden? Bedank dich bei ihm indem du seinen Beitrag als Hilfreich markierst sowie einen Daumen oben dalässt
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
-
-
Alles anzeigen
Das bedeutet, dass deine Spaltenanzahl nicht der Anzahl deiner Werte entspricht. Du gibst 16 Spalten an, aber lediglich 14 Parameter für Werte.
Der andere Fehler ist, dass du wahrscheinlich einen Array sprengst.
Beispiel:
Dein Array: array[5]Du kannst also auf den Index 0-4 zu greifen. Möchtest du nun beispielsweise auf den Index 6 zu greifen, sprengst du den Array. Solche Fehler können dir aber auch durch die Verwendung von crashdetect gezeigt werden
Max_Frak ist definiert mit 20.Ist das so falsch?
Mein Enum sieht so aus:
#define MAX_FRAC 20enum fraktEnum{fid,f_name[256],f_shortname[64],Float:f_x,Float:f_y,Float:f_z,Float:f_r,f_inter,f_world,f_typ,f_cop,f_leaderskin,f_kasse,f_mats,f_drogen,f_color[64]}new fInfo[MAX_FRAC][fraktEnum];Alles anzeigenHey habe ein kleines bis großes Problem....
Meine Errors:
C:\Users\Dustin\Desktop\SA-MP Server\gamemodes\selfmade.pwn(2073) : error 035: argument type mismatch (argument 3)
C:\Users\Dustin\Desktop\SA-MP Server\gamemodes\selfmade.pwn(2104) : error 035: argument type mismatch (argument 3)
C:\Users\Dustin\Desktop\SA-MP Server\gamemodes\selfmade.pwn(3085) : error 017: undefined symbol "cache_get_data"
C:\Users\Dustin\Desktop\SA-MP Server\gamemodes\selfmade.pwn(3090) : error 017: undefined symbol "cache_get_field_content_int"
C:\Users\Dustin\Desktop\SA-MP Server\gamemodes\selfmade.pwn(3091) : error 017: undefined symbol "cache_get_field_content_int"
C:\Users\Dustin\Desktop\SA-MP Server\gamemodes\selfmade.pwn(3092) : error 017: undefined symbol "cache_get_field_content_Float"
C:\Users\Dustin\Desktop\SA-MP Server\gamemodes\selfmade.pwn(3093) : error 017: undefined symbol "cache_get_field_content_Float"
C:\Users\Dustin\Desktop\SA-MP Server\gamemodes\selfmade.pwn(3094) : error 017: undefined symbol "cache_get_field_content_Float"
C:\Users\Dustin\Desktop\SA-MP Server\gamemodes\selfmade.pwn(3095) : error 017: undefined symbol "cache_get_field_content_Float"
C:\Users\Dustin\Desktop\SA-MP Server\gamemodes\selfmade.pwn(3096) : error 017: undefined symbol "cache_get_field_content_int"
C:\Users\Dustin\Desktop\SA-MP Server\gamemodes\selfmade.pwn(3084) : warning 203: symbol is never used: "num_fields"
C:\Users\Dustin\Desktop\SA-MP Server\gamemodes\selfmade.pwn(3103) : warning 202: number of arguments does not match definition
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhaseMeine Codes mit den Fehlern direkt markiert:
public carSavedToDB(carid){cInfo[carid][db_id]=cache_insert_id(handle);//3103return 1;}
public OnPlayerCarsLoad(playerid){new num_fields,num_rows; //3085cache_get_data(num_rows,num_fields,dbhandle);//3086if(!num_rows)return 1;for(new i=0; i<num_rows; i++){new id=getFreeCarID();cInfo[id][model]=cache_get_field_content_int(i,"model",dbhandle);//3090cInfo[id][besitzer]=cache_get_field_content_int(i,"besitzer",dbhandle);//3091cInfo[id][c_x]=cache_get_field_content_Float(i,"x",dbhandle);//3092cInfo[id][c_y]=cache_get_field_content_Float(i,"y",dbhandle);//3093cInfo[id][c_z]=cache_get_field_content_Float(i,"z",dbhandle);//3094cInfo[id][c_r]=cache_get_field_content_Float(i,"r",dbhandle);//3095cInfo[id][db_id]=cache_get_field_content_int(i,"id",dbhandle);//3096CreateVehicle(cInfo[id][model],cInfo[id][c_x],cInfo[id][c_y],cInfo[id][c_z],cInfo[id][c_r],-1,-1,-1);}return 1;}
loadPlayerCars(playerid){new query[128];format(query,sizeof(query),"SELECT * FROM autos WHERE besitzer='%i'",PlayerInfo[playerid][p_id]);mysql_pquery(handle, query,true,"OnPlayerCarsLoad","i",playerid);//2073return 1;}
saveCarToDB(playerid,carid){new query[256];format(query,sizeof(query),"INSERT INTO autos (besitzer,model,x,y,z,r) VALUES ('%i','%i','%f','%f','%f','%f')",PlayerInfo[playerid][p_id],cInfo[carid][model],cInfo[carid][c_x],cInfo[carid][c_y],cInfo[carid][c_z],cInfo[carid][c_r]);mysql_query(handle,query);mysql_pquery(handle, query,true,"carSavedToDB","i",carid);//2105return 1;}
Sollte ich etwas vergessen haben einfach bescheid sagen ist mir grad ein wenig viel

Welche MySQL Version besitzt du?
-
Er gibt das aus bei MySQL: #1136 - Column count doesn't match value count at row 1
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', '%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.solange ab bis MAX_FRAC erreicht wurde. Kann es daran liegen?
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;
} -
@The Sensei Ich müsste die Version R41 benutzen wenn mich nicht alles täuscht

-
Alles anzeigen
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', '%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); -
Wie funktioniert das, dass ich bei cfraktion Leerzeichen bei [Namen] machen kann?
Das geht nur, wenn du den Name ganz am Ende hin schreibst. Sonst weiß sscanf ja nicht, wann es zum nächsten Parameter gehen soll.
-
Das geht nur, wenn du den Name ganz am Ende hin schreibst. Sonst weiß sscanf ja nicht, wann es zum nächsten Parameter gehen soll.
Hast du nen Plan warum bei mir immer /f [nachricht] kommt?
ocmd@2:f,familie(playerid,params[])
{
if(isPlayerInFrakt(playerid, 0))return SCM(playerid, ERROR_FARBE, ERROR_FRAKTION);
new string[256];
if(sscanf(params, "s[256]", string))return SCM(playerid, -1, "Tippe: /f [nachricht]");
new fID = PlayerInfo[playerid][pF_id];
new fRang = PlayerInfo[playerid][pF_rank];
format(string,sizeof(string),"**((%s %s: %s ))**",rInfo[fID][fRang],NamePlayer(playerid), string);
for(new i=0; i<MAX_PLAYERS; i++)
{
if(!IsPlayerConnected(i))continue;
if(!isPlayerInFrakt(i, fID))continue;
SCM(i, BABYBLAU, string);
}
return 1;
} -
C:\Users\Dustin\Desktop\SA-MP Server\gamemodes\selfmade.pwn(2074) : error 035: argument type mismatch (argument 3)
C:\Users\Dustin\Desktop\SA-MP Server\gamemodes\selfmade.pwn(2105) : error 035: argument type mismatch (argument 3)
C:\Users\Dustin\Desktop\SA-MP Server\gamemodes\selfmade.pwn(3086) : error 017: undefined symbol "cache_get_data"
C:\Users\Dustin\Desktop\SA-MP Server\gamemodes\selfmade.pwn(3091) : error 017: undefined symbol "dbhandle"
C:\Users\Dustin\Desktop\SA-MP Server\gamemodes\selfmade.pwn(3092) : error 017: undefined symbol "dbhandle"
C:\Users\Dustin\Desktop\SA-MP Server\gamemodes\selfmade.pwn(3093) : error 017: undefined symbol "dbhandle"
C:\Users\Dustin\Desktop\SA-MP Server\gamemodes\selfmade.pwn(3094) : error 017: undefined symbol "dbhandle"
C:\Users\Dustin\Desktop\SA-MP Server\gamemodes\selfmade.pwn(3095) : error 017: undefined symbol "dbhandle"
C:\Users\Dustin\Desktop\SA-MP Server\gamemodes\selfmade.pwn(3096) : error 017: undefined symbol "dbhandle"
C:\Users\Dustin\Desktop\SA-MP Server\gamemodes\selfmade.pwn(3097) : error 017: undefined symbol "dbhandle"
C:\Users\Dustin\Desktop\SA-MP Server\gamemodes\selfmade.pwn(3085) : warning 203: symbol is never used: "num_fields"
C:\Users\Dustin\Desktop\SA-MP Server\gamemodes\selfmade.pwn(3105) : warning 202: number of arguments does not match definition
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase10 Errors.
public OnPlayerCarsLoad(playerid)
{
new num_fields,num_rows; //3085
cache_get_data(num_rows,num_fields,dbhandle);//3086
if(!num_rows)return 1;
for(new i=0; i<num_rows; i++)
{saveCarToDB(playerid,carid)
{
new query[256];
format(query,sizeof(query),"INSERT INTO autos (besitzer,model,x,y,z,r) VALUES ('%i','%i','%f','%f','%f','%f')",PlayerInfo[playerid][p_id],cInfo[carid][model],cInfo[carid][c_x],cInfo[carid][c_y],cInfo[carid][c_z],cInfo[carid][c_r]);mysql_query(handle,query);
mysql_pquery(handle, query,true,"carSavedToDB","i",carid);//2105
return 1;
} -
Hast du nen Plan warum bei mir immer /f [nachricht] kommt?
Gleiches Problem wie beim anderen Befehl:
if(sscanf(params, "s[256]", string))return SCM(playerid, -1, "Tippe: /f [nachricht]");
zu:
if(sscanf(params, "s", string))return SCM(playerid, -1, "Tippe: /f [nachricht]"); -
Alles anzeigen
C:\Users\Dustin\Desktop\SA-MP Server\gamemodes\selfmade.pwn(2074) : error 035: argument type mismatch (argument 3)
C:\Users\Dustin\Desktop\SA-MP Server\gamemodes\selfmade.pwn(2105) : error 035: argument type mismatch (argument 3)
C:\Users\Dustin\Desktop\SA-MP Server\gamemodes\selfmade.pwn(3086) : error 017: undefined symbol "cache_get_data"
C:\Users\Dustin\Desktop\SA-MP Server\gamemodes\selfmade.pwn(3091) : error 017: undefined symbol "dbhandle"
C:\Users\Dustin\Desktop\SA-MP Server\gamemodes\selfmade.pwn(3092) : error 017: undefined symbol "dbhandle"
C:\Users\Dustin\Desktop\SA-MP Server\gamemodes\selfmade.pwn(3093) : error 017: undefined symbol "dbhandle"
C:\Users\Dustin\Desktop\SA-MP Server\gamemodes\selfmade.pwn(3094) : error 017: undefined symbol "dbhandle"
C:\Users\Dustin\Desktop\SA-MP Server\gamemodes\selfmade.pwn(3095) : error 017: undefined symbol "dbhandle"
C:\Users\Dustin\Desktop\SA-MP Server\gamemodes\selfmade.pwn(3096) : error 017: undefined symbol "dbhandle"
C:\Users\Dustin\Desktop\SA-MP Server\gamemodes\selfmade.pwn(3097) : error 017: undefined symbol "dbhandle"
C:\Users\Dustin\Desktop\SA-MP Server\gamemodes\selfmade.pwn(3085) : warning 203: symbol is never used: "num_fields"
C:\Users\Dustin\Desktop\SA-MP Server\gamemodes\selfmade.pwn(3105) : warning 202: number of arguments does not match definition
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase10 Errors.
public OnPlayerCarsLoad(playerid){new num_fields,num_rows; //3085cache_get_data(num_rows,num_fields,dbhandle);//3086if(!num_rows)return 1;for(new i=0; i<num_rows; i++){
saveCarToDB(playerid,carid){new query[256];format(query,sizeof(query),"INSERT INTO autos (besitzer,model,x,y,z,r) VALUES ('%i','%i','%f','%f','%f','%f')",PlayerInfo[playerid][p_id],cInfo[carid][model],cInfo[carid][c_x],cInfo[carid][c_y],cInfo[carid][c_z],cInfo[carid][c_r]);mysql_query(handle,query);mysql_pquery(handle, query,true,"carSavedToDB","i",carid);//2105return 1;}
dbhandle zu handle
-
-
Das meiste handelt sich immer noch um die selben zeilen nur das ich jetzt dbhandle zu handle geändert....
C:\Users\Dustin\Desktop\SA-MP Server\gamemodes\selfmade.pwn(2074) : error 035: argument type mismatch (argument 3)
C:\Users\Dustin\Desktop\SA-MP Server\gamemodes\selfmade.pwn(2105) : error 035: argument type mismatch (argument 3)
C:\Users\Dustin\Desktop\SA-MP Server\gamemodes\selfmade.pwn(3086) : error 017: undefined symbol "cache_get_data"
C:\Users\Dustin\Desktop\SA-MP Server\gamemodes\selfmade.pwn(3091) : warning 213: tag mismatch
C:\Users\Dustin\Desktop\SA-MP Server\gamemodes\selfmade.pwn(3092) : warning 213: tag mismatch
C:\Users\Dustin\Desktop\SA-MP Server\gamemodes\selfmade.pwn(3093) : warning 213: tag mismatch
C:\Users\Dustin\Desktop\SA-MP Server\gamemodes\selfmade.pwn(3094) : warning 213: tag mismatch
C:\Users\Dustin\Desktop\SA-MP Server\gamemodes\selfmade.pwn(3095) : warning 213: tag mismatch
C:\Users\Dustin\Desktop\SA-MP Server\gamemodes\selfmade.pwn(3096) : warning 213: tag mismatch
C:\Users\Dustin\Desktop\SA-MP Server\gamemodes\selfmade.pwn(3097) : warning 213: tag mismatch
C:\Users\Dustin\Desktop\SA-MP Server\gamemodes\selfmade.pwn(3085) : warning 203: symbol is never used: "num_fields"
C:\Users\Dustin\Desktop\SA-MP Server\gamemodes\selfmade.pwn(3105) : warning 202: number of arguments does not match definition
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase3 Errors.
-
Beitrag von reaL. ()
Dieser Beitrag wurde vom Autor gelöscht (). -
Beitrag von MGPK-1323 ()
Dieser Beitrag wurde vom Autor gelöscht (). -
Beitrag von reaL. ()
Dieser Beitrag wurde vom Autor gelöscht (). -
Hey,
er speichert nur den ersten Buchstaben von pBan_admin.Das Enum:
enum pDataEnum
{
p_id,
bool:pLoggedIn,
pName[MAX_PLAYER_NAME],
pLevel,
pMoney,
pKills,
pDeaths,
pAdmin,
pF_id,
pF_rank,
pSkin,
pBanned,
pBan_reason[255],
pBan_admin[MAX_PLAYER_NAME],
pBan_date[56],
pPremium,
pVIP
}
new PlayerInfo[MAX_PLAYERS][pDataEnum];Der Befehl:
ocmd:ban(playerid, params[])
{
if(!isPlayerAnAdmin(playerid,2))return SCM(playerid, ERROR_FARBE, ERROR_ADMIN);
new pID,grund[255],string[1028], query[256], datum[56], Hour, Minute, Second, Year, Month, Day;
if(sscanf(params,"us",pID,grund))return SCM(playerid, ERROR_FARBE, "Tippe: /ban [spieler] [grund]");
getdate(Year, Month, Day);
gettime(Hour, Minute, Second);
if(PlayerInfo[playerid][pAdmin] < PlayerInfo[pID][pAdmin])return SCM(playerid, ERROR_FARBE, ERROR_ADMIN_BAN);
format(datum, sizeof(datum), "%02d.%02d.%d - %02d:%02d:%02d", Year, Month, Day, Hour, Minute, Second);
format(query, sizeof(query), "INSERT INTO Userakte (User, Typ, Date, Reason, Name_From) VALUES ('%s', '%s', '%02d.%02d.%d - %02d:%02d:%02d','%s','%s')", PlayerInfo[pID][pName], TYP_PERM_BAN, Day, Month, Year, Hour, Minute, Second, grund, PlayerInfo[playerid][pName]);
mysql_tquery(handle, query);
format(string, sizeof(string), "%s wurde von %s vom Server gebannt. Grund: %s", PlayerInfo[pID][pName],PlayerInfo[playerid][pName],grund);
SCMA(ERROR_FARBE, string);
format(string, sizeof(string), "Du wurdest von %s vom Server gebannt. Grund: %s", PlayerInfo[playerid][pName], grund);
SCM(pID, ERROR_FARBE, string);
PlayerInfo[playerid][pBanned] = 1;
PlayerInfo[playerid][pBan_reason] = grund;
PlayerInfo[playerid][pBan_admin] = NamePlayer(playerid);
PlayerInfo[playerid][pBan_date] = datum;
SetTimerEx("DelayedKick", 500, false, "i", pID);
return 1;
}
NamePlayer:
stock NamePlayer(playerid)
{
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
return name;
}
Wo es angewand wird:
forward OnUserLogin(playerid);
public OnUserLogin(playerid)
{
//Query wurde ausgeführt und das Ergebnis im Cache gespeichert
new rows, string[128];
cache_get_row_count(rows);
if(rows == 0)
{
//Der Spieler hat ein falsches Passwort eingegeben
ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, SERVER_NAME"("SERVER_VERSION")", "Herzlich Willkommen zurück,\nbitte logge Dich nun ein:\n{FF0000}Falsches Passwort!", "Ok", "Abbrechen");
}
else
{
cache_get_value_name_int(0, "id", PlayerInfo[playerid][p_id]);
cache_get_value_name_int(0, "level", PlayerInfo[playerid][pLevel]);
cache_get_value_name_int(0, "money", PlayerInfo[playerid][pMoney]);
cache_get_value_name_int(0, "kills", PlayerInfo[playerid][pKills]);
cache_get_value_name_int(0, "deaths", PlayerInfo[playerid][pDeaths]);
cache_get_value_name_int(0, "admin", PlayerInfo[playerid][pAdmin]);
cache_get_value_name_int(0, "f_id", PlayerInfo[playerid][pF_id]);
cache_get_value_name_int(0, "f_rank", PlayerInfo[playerid][pF_rank]);
cache_get_value_name_int(0, "skin", PlayerInfo[playerid][pSkin]);
cache_get_value_name_int(0, "banned", PlayerInfo[playerid][pBanned]);
cache_get_value_name(0, "ban_reason", PlayerInfo[playerid][pBan_reason], 255);
cache_get_value_name(0, "ban_admin", PlayerInfo[playerid][pBan_admin], 20);
cache_get_value_name(0, "ban_date", PlayerInfo[playerid][pBan_date], 56);
cache_get_value_name_int(0, "premium", PlayerInfo[playerid][pPremium]);
cache_get_value_name_int(0, "vip", PlayerInfo[playerid][pVIP]);
PlayerInfo[playerid][pLoggedIn] = true;
if(PlayerInfo[playerid][pBanned] == 1)
{
new header[256], mid[512], Year, Month, Day, Hour, Minute, Second;
getdate(Year, Month, Day);
gettime(Hour, Minute, Second);
format(header,sizeof(header), "Account(%s) Permanent Gesperrt", PlayerInfo[playerid][pName]);
format(mid,sizeof(mid), "Guten Tag,\ndieser Account wurde gesperrt und kann nicht mehr verwendet werden.\nAusführender Admin: %s\nBandatum: %s\nGrund: %s", PlayerInfo[playerid][pBan_admin], PlayerInfo[playerid][pBan_date], PlayerInfo[playerid][pBan_reason]);
SPD(playerid, DIALOG_BAN_MESSAGEBOX, DIALOG_STYLE_MSGBOX, header, mid,"Bestätigen","");
SetTimerEx("Banned", 500, false, "i", playerid);
return 1;
}
if(PlayerInfo[playerid][pPremium] == 1) { SCM(playerid, ORANGE, "Du besitzt Premium(Permanent)"); }
else if(PlayerInfo[playerid][pPremium] == 1 && PlayerInfo[playerid][pVIP] == 1) { SCM(playerid, ORANGE, "Du besitzt V.I.P.(Permanent)"); }
format(string, sizeof(string), "Willkommen %s", NamePlayer(playerid));
SCM(playerid, 0x00FF00FF, string);
GivePlayerMoney(playerid, PlayerInfo[playerid][pMoney]);
SpawnPlayer(playerid);
}
return 1;
} -
@The Sensei:
Vergrößere mal deine query -
Gleiches Problem wie beim anderen Befehl:if(sscanf(params, "s[256]", string))return SCM(playerid, -1, "Tippe: /f [nachricht]");
zu:
if(sscanf(params, "s", string))return SCM(playerid, -1, "Tippe: /f [nachricht]");Immer noch das selbe problem Server: Unknown Command
ocmd@2:f,familie(playerid,params[])
{
if(isPlayerInFrakt(playerid, 0))return SCM(playerid, ERROR_FARBE, ERROR_FRAKTION);
new string[256];
if(sscanf(params, "s", string))return SCM(playerid, -1, "Tippe: /f [nachricht]");
new fID = PlayerInfo[playerid][pF_id];
new fRang = PlayerInfo[playerid][pF_rank];
format(string,sizeof(string),"**((%s %s: %s ))**",rInfo[fID][fRang],NamePlayer(playerid), string);
for(new i=0; i<MAX_PLAYERS; i++)
{
if(!IsPlayerConnected(i))continue;
if(!isPlayerInFrakt(i, fID))continue;
SCM(i, BABYBLAU, string);
}
return 1;
} -
@The Sensei:
Wird trotzdem eine Nachricht ausgesendet ?
Funktioniert es wenn du nur mit ein Befehl machst ?
SprichCode
Alles anzeigenocmd:familie(playerid,params[]) { if(isPlayerInFrakt(playerid, 0))return SCM(playerid, ERROR_FARBE, ERROR_FRAKTION); new string[256]; if(sscanf(params, "s", string))return SCM(playerid, -1, "Tippe: /f [nachricht]"); new fID = PlayerInfo[playerid][pF_id]; new fRang = PlayerInfo[playerid][pF_rank]; format(string,sizeof(string),"**((%s %s: %s ))**",rInfo[fID][fRang],NamePlayer(playerid), string); for(new i=0; i<MAX_PLAYERS; i++) { if(!IsPlayerConnected(i))continue; if(!isPlayerInFrakt(i, fID))continue; SCM(i, BABYBLAU, string); } return 1; } -
@The Sensei:
Wird trotzdem eine Nachricht ausgesendet ?
Funktioniert es wenn du nur mit ein Befehl machst ?
SprichCode
Alles anzeigenocmd:familie(playerid,params[]) { if(isPlayerInFrakt(playerid, 0))return SCM(playerid, ERROR_FARBE, ERROR_FRAKTION); new string[256]; if(sscanf(params, "s", string))return SCM(playerid, -1, "Tippe: /f [nachricht]"); new fID = PlayerInfo[playerid][pF_id]; new fRang = PlayerInfo[playerid][pF_rank]; format(string,sizeof(string),"**((%s %s: %s ))**",rInfo[fID][fRang],NamePlayer(playerid), string); for(new i=0; i<MAX_PLAYERS; i++) { if(!IsPlayerConnected(i))continue; if(!isPlayerInFrakt(i, fID))continue; SCM(i, BABYBLAU, string); } return 1; }Nein tut es nicht immer noch Server Unknown Command oder /f [nachricht]
-
Schau mal ob es was Printete und wenn ja wie weit
Code
Alles anzeigenocmd@2:f,familie(playerid,params[]) { if(isPlayerInFrakt(playerid, 0))return SCM(playerid, ERROR_FARBE, ERROR_FRAKTION); printf("1"); new string[256]; printf("2"); if(sscanf(params, "s", string))return SCM(playerid, -1, "Tippe: /f [nachricht]"); new fID = PlayerInfo[playerid][pF_id]; printf("3"); new fRang = PlayerInfo[playerid][pF_rank]; printf("4"); format(string,sizeof(string),"**((%s %s: %s ))**",rInfo[fID][fRang],NamePlayer(playerid), string); for(new i=0; i<MAX_PLAYERS; i++) { printf("5"); if(!IsPlayerConnected(i))continue; if(!isPlayerInFrakt(i, fID))continue; printf("6"); SCM(i, BABYBLAU, string); } return 1; }
