Guten Morgen aller Seits.
Ich habe bei mein Fraktionssystem ein problem.
Kommen wir nun erst mal zu den Enums:
Frakenum:
enum frakteEnum{
f_name[300],
Float:f_x,
Float:f_y,
Float:f_z,
Float:f_r,
f_inter,
f_world,
f_color
}
fInfo:
new fInfo[][frakteEnum] ={
{"zivi",0.0,0.0,0.0,0.0,0,0,weiß}, //zivi
{"LVPD",2286.9927,2431.6108,10.8203,176.4932,0,0,dunkelblau}, //LVPD
{"SWAT",-2719.8411,-318.3455,7.8438,46.7307,0,0,helblau}, //SWAT
{"FBI",-1606.3145,712.2166,13.8672,14.9407,0,0,duneklhelblau}, //FBI
{"ARMY",245.4032,1859.6956,14.0840,86.8001,0,0,hellgrün}, //ARMY
{"Medic/Feuerwehr",-319.8502,1049.1862,20.3403,351.6078,0,0,rot}, //MEDIC/FEUERWEHR
{"FAHRSCHULE",662.8862,1716.9479,7.1875,37.0085,0,0,orange}, //FAHRSCHULE
{"Aztecas",1531.2836,751.6505,11.0234,265.7675,0,0,türkis}, //Aztecas
{"VAGOS",-2280.8035,2288.0842,4.9590,285.9662,0,0,gelb}, //VAGOS
{"BALLAS",1457.6174,2772.6257,10.8203,263.1655,0,0,pink}, //BALLAS
{"YAKUZA",1956.0493,729.8642,10.8203,106.5192,0,0,grau}// YAKUZA
}; mit den positionen der Basen.
Spieler abspeichern:
savePlayer(playerid)
{
if(sInfo[playerid][eingeloggt]==0)return 1;
//speichern level,money
new query[256];
format(query,sizeof(query),"UPDATE user SET level='%i', money='%i', alevel='%i', fraktion='%i', rang='%i' , spawnchange='%i' WHERE id='%i'",sInfo[playerid][level],GetPlayerMoney(playerid),sInfo[playerid][alevel],sInfo[playerid][fraktion],sInfo[playerid][rang],sInfo[playerid][spawnchange],sInfo[playerid][db_id]);
mysql_function_query(dbhandle,query,false,"","");
return 1;
}
eigene Funktion:
sPlayerInFrakt(playerid,f_id){
if(sInfo[playerid][fraktion]==f_id)return 1;
return 0;
}
Spielerspawn:
public OnPlayerSpawn(playerid)
{
if(!isPlayerInFrakt(playerid,0))
{
if(sInfo[playerid][spawnchange]==1)
{
new fID;
fID= sInfo[playerid][fraktion];
SetPlayerPos(playerid,fInfo[fID][f_x],fInfo[fID][f_y],fInfo[fID][f_z]);
SetPlayerFacingAngle(playerid,fInfo[fID][f_r]);
SetPlayerInterior(playerid,fInfo[fID][f_inter]);
SetPlayerVirtualWorld(playerid,fInfo[fID][f_world]);
SetPlayerColor(playerid,fInfo[fID][f_color]);
}
}
return 1;
}
Funktion für Leadererstellen und spawnchange-Befehl erstellt:
getPlayerName(playerid)
{
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
return name;
}
//ocmd Befehle:
ocmd:spawnchange(playerid,params[])
{
if(isPlayerInFrakt(playerid,0))return SendClientMessage(playerid,rot,"Du bist in keiner Fraktion.");
if(sInfo[playerid][spawnchange] ==0)
{
sInfo[playerid][spawnchange]=1;
}
if(sInfo[playerid][spawnchange] ==1)
{
sInfo[playerid][spawnchange]=0;
}
SendClientMessage(playerid,grün,"Spawn geändert");
return 1;
}
ocmd:Leadererstellen(playerid,params[])
{
if(!isAdmin(playerid,5))return SendClientMessage(playerid,grün,"Du hast keine Berechtigung dazu!");
new pID, fID;
if(sscanf(params,"ui",pID,fID))return SendClientMessage(playerid,rot,"INFO: /Leadererstellen[playerid][fraktid]");
if(fID>= sizeof(fInfo))return SendClientMessage(playerid,rot,"Fraktion existiert nicht.");
sInfo[pID][fraktion] = fID;
sInfo[pID][rang] = 6;
new string[128];
format(string,sizeof(string),"%s hat dich zum Leader der Fraktion %s gemacht",getPlayerName(playerid),fInfo[fID][f_name]);
SendClientMessage(pID,gelb,string);
SendClientMessage(playerid,grün,"Du hast einen Spieler zum Leader gemacht.");
return 1;
}
Unter PasswordResponse:
public OnPasswordResponse(playerid)
{
new num_rows,num_fields;
cache_get_data(num_rows,num_fields,dbhandle);
if(num_rows==1)
{
//passwort Richtig
sInfo[playerid][eingeloggt] = 1;
sInfo[playerid][level] = cache_get_field_content_int(0,"level",dbhandle);
SetPlayerScore(playerid,sInfo[playerid][level]);
sInfo[playerid][db_id] = cache_get_field_content_int(0,"id",dbhandle);
SetPlayerMoney(playerid,cache_get_field_content_int(0,"money",dbhandle));
sInfo[playerid][alevel] = cache_get_field_content_int(0,"alevel",dbhandle);
sInfo[playerid][fraktion] = cache_get_field_content_int(0,"fraktion",dbhandle);
sInfo[playerid][rang] = cache_get_field_content_int(0,"rang",dbhandle);
sInfo[playerid][spawnchange]= cache_get_field_content_int(0,"spawnchange",dbhandle);
loadPlayerCars(playerid);
}
else
{
//Passwort Falsch
SendClientMessage(playerid,grün,"Du hast dein Passwort falsch eingetippt. Versuche es nochmal!");
ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login","Gibt bitte dein Passwort ein:","Anmelden","Abbrechen");
}
return 1;
}.
So nun wenn ich Ingame gehe und mich Selbst mit /Leadererstellen [playerid][fraktid] eintippe und auch da steht das ich Leader gemacht wurde von SWAT und nach dem Tod nicht bei der SWAT-Base Spawne.
Ich frage mich nun wo mein Fehler sein könnte.
Ich hoffe man kann mir hierbei helfen.