#define MAX_FRAKTIONEN 10
enum FraktionsDatenEnum {
f_ID,
f_Name[32],
f_Abkuerzung[8],
f_Geld,
f_Max_Fahrzeuge,
f_Fahrzeuge,
f_FahrzeugFarbe1,
f_FahrzeugFarbe2,
f_RangName1[25],
f_RangName2[25],
f_RangName3[25],
f_RangName4[25],
f_RangName5[25],
f_RangName6[25],
Float:f_PickupX_In,
Float:f_PickupY_In,
Float:f_PickupZ_In,
Float:f_PickupR_In,
Float:f_PickupX_Out,
Float:f_PickupY_Out,
Float:f_PickupZ_Out,
Float:f_PickupR_Out,
Float:f_SpawnX_In,
Float:f_SpawnY_In,
Float:f_SpawnZ_In,
Float:f_SpawnR_In,
Float:f_SpawnX_Out,
Float:f_SpawnY_Out,
Float:f_SpawnZ_Out,
Float:f_SpawnR_Out,
f_Int,
f_VWorld,
f_Pickup_In,
f_Pickup_Out
};
enum PlayerDatenEnum {
bool:pLogged,
pName[MAX_PLAYER_NAME],
pFraktion,
pRang
}
enum {
DIALOG_FL,
DIALOG_FRAKTION_BEARBEITEN_1,
DIALOG_FRAKTION_BEARBEITEN_2,
DIALOG_FRAKTION_BEARBEITEN_3,
DIALOG_FRAKTION_BEARBEITEN_4,
DIALOG_FRAK_INVITE
}
forward LadeFraktionsDaten();
new fInfo[MAX_FRAKTIONEN][FraktionsDatenEnum];
new pInfo[MAX_PLAYERS][PlayerDatenEnum];
public OnGameModeInit()
{
new string[256];
mysql_format(handle, string, sizeof(string), "SELECT * FROM `fraktionen`");
mysql_pquery(handle, string, "LadeFraktionsDaten");
}
public LadeFraktionsDaten()
{
new rows;
cache_get_row_count(rows);
if(rows == 0)
{
printf("- Es konnten keine Fraktionen gefunden werden!");
return 1;
}
new var, string[128];
for(new i; i<rows; i++)
{
cache_get_value_name_int(i, "id", fInfo[i][f_ID]);
fInfo[i][f_VWorld] = fInfo[i][f_ID] + 100;
cache_get_value_name_int(i, "Geld", fInfo[i][f_Geld]);
cache_get_value_name_int(i, "Max_Fahrzeuge", fInfo[i][f_Max_Fahrzeuge]);
cache_get_value_name_int(i, "Fahrzeuge", fInfo[i][f_Fahrzeuge]);
cache_get_value_name_int(i, "Interior", fInfo[i][f_Int]);
cache_get_value_name_int(i, "FahrzeugFarbe1", fInfo[i][f_FahrzeugFarbe1]);
cache_get_value_name_int(i, "FahrzeugFarbe2", fInfo[i][f_FahrzeugFarbe2]);
cache_get_value_name_float(i, "SpawnX_In", fInfo[i][f_SpawnX_In]);
cache_get_value_name_float(i, "SpawnY_In", fInfo[i][f_SpawnY_In]);
cache_get_value_name_float(i, "SpawnZ_In", fInfo[i][f_SpawnZ_In]);
cache_get_value_name_float(i, "SpawnR_In", fInfo[i][f_SpawnR_In]);
cache_get_value_name_float(i, "SpawnX_Out", fInfo[i][f_SpawnX_Out]);
cache_get_value_name_float(i, "SpawnY_Out", fInfo[i][f_SpawnY_Out]);
cache_get_value_name_float(i, "SpawnZ_Out", fInfo[i][f_SpawnZ_Out]);
cache_get_value_name_float(i, "SpawnR_Out", fInfo[i][f_SpawnR_Out]);
cache_get_value_name_float(i, "PickupX_In", fInfo[i][f_PickupX_In]);
cache_get_value_name_float(i, "PickupY_In", fInfo[i][f_PickupY_In]);
cache_get_value_name_float(i, "PickupZ_In", fInfo[i][f_PickupZ_In]);
cache_get_value_name_float(i, "PickupX_Out", fInfo[i][f_PickupX_Out]);
cache_get_value_name_float(i, "PickupY_Out", fInfo[i][f_PickupY_Out]);
cache_get_value_name_float(i, "PickupZ_Out", fInfo[i][f_PickupZ_Out]);
cache_get_value_name(i, "Name", string, sizeof(string));
format(fInfo[i][f_Name], sizeof(string), string);
cache_get_value_name(i, "Abkürzung", string, sizeof(string));
format(fInfo[i][f_Abkuerzung], sizeof(string), string);
cache_get_value_name(i, "RangName1", string, sizeof(string));
format(fInfo[i][f_RangName1], sizeof(string), string);
cache_get_value_name(i, "RangName2", string, sizeof(string));
format(fInfo[i][f_RangName2], sizeof(string), string);
cache_get_value_name(i, "RangName3", string, sizeof(string));
format(fInfo[i][f_RangName3], sizeof(string), string);
cache_get_value_name(i, "RangName4", string, sizeof(string));
format(fInfo[i][f_RangName4], sizeof(string), string);
cache_get_value_name(i, "RangName5", string, sizeof(string));
format(fInfo[i][f_RangName5], sizeof(string), string);
cache_get_value_name(i, "RangName6", string, sizeof(string));
format(fInfo[i][f_RangName6], sizeof(string), string);
if(fInfo[i][f_PickupX_In] != 0)
{
fInfo[i][f_Pickup_In] = CreateDynamicPickup(1559, 1, fInfo[i][f_PickupX_In], fInfo[i][f_PickupY_In], fInfo[i][f_PickupZ_In], fInfo[i][f_VWorld], fInfo[i][f_Int]);
fInfo[i][f_Pickup_Out] = CreateDynamicPickup(1559, 1, fInfo[i][f_PickupX_Out], fInfo[i][f_PickupY_Out], fInfo[i][f_PickupZ_Out], 0, 0);
format(string, sizeof(string), "%s-Gebäude\nZum Verlassen 'Enter'", fInfo[i][f_Name]);
CreateDynamic3DTextLabel(string, COLOR_WHITE, fInfo[i][f_PickupX_In], fInfo[i][f_PickupY_In], fInfo[i][f_PickupZ_In], 10, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 1, fInfo[i][f_VWorld], fInfo[i][f_Int]);
format(string, sizeof(string), "%s-Gebäude\nZum Betreten 'Enter'", fInfo[i][f_Name]);
CreateDynamic3DTextLabel(string, COLOR_WHITE, fInfo[i][f_PickupX_Out], fInfo[i][f_PickupY_Out], fInfo[i][f_PickupZ_Out], 10, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 1, 0, 0);
}
var++;
}
printf("- Es wurden erfolgreich %d Fraktionen geladen!", var);
return 1;
}
public OnPlayerKeyStateChange(playerid, newinteriorid, oldinteriorid)
{
for(new x; x<sizeof(fInfo); x++)
{
if(IsPlayerInRangeOfPoint(playerid, 2.5, fInfo[x][f_PickupX_Out], fInfo[x][f_PickupY_Out], fInfo[x][f_PickupZ_Out])) // Spieler ist draußen -> Geht rein
{
if(pInfo[playerid][pFraktion] != fInfo[x][f_ID])
{
new string[128];
format(string, sizeof(string), "[SERVER]{FFFFFF} Du bist nicht in der Fraktion '%s'!", fInfo[x][f_Name]);
SendClientMessage(playerid, COLOR_RED, string);
return 1;
}
SetPlayerPos(playerid, fInfo[x][f_SpawnX_In], fInfo[x][f_SpawnY_In], fInfo[x][f_SpawnZ_In]);
SetPlayerFacingAngle(playerid, fInfo[x][f_SpawnR_In]);
SetPlayerVirtualWorld(playerid, fInfo[x][f_VWorld]);
SetPlayerInterior(playerid, fInfo[x][f_Int]);
pInfo[playerid][pPos_X] = fInfo[x][f_SpawnX_In];
pInfo[playerid][pPos_Y] = fInfo[x][f_SpawnY_In];
pInfo[playerid][pPos_Z] = fInfo[x][f_SpawnZ_In];
pInfo[playerid][pPos_R] = fInfo[x][f_SpawnR_In];
pInfo[playerid][pInt] = fInfo[x][f_Int];
pInfo[playerid][pVWorld] = fInfo[x][f_VWorld];
SetCameraBehindPlayer(playerid);
return 1;
}
if(IsPlayerInRangeOfPoint(playerid, 2.5, fInfo[x][f_PickupX_In], fInfo[x][f_PickupY_In], fInfo[x][f_PickupZ_In])) // Spieler ist innen -> Geht raus
{
if(pInfo[playerid][pInt] != 0 && pInfo[playerid][pVWorld] == fInfo[x][f_VWorld])
SetPlayerPos(playerid, fInfo[x][f_SpawnX_Out], fInfo[x][f_SpawnY_Out], fInfo[x][f_SpawnZ_Out]);
SetPlayerFacingAngle(playerid, fInfo[x][f_SpawnR_Out]);
SetPlayerVirtualWorld(playerid, 0);
SetPlayerInterior(playerid, 0);
pInfo[playerid][pPos_X] = fInfo[x][f_SpawnX_Out];
pInfo[playerid][pPos_Y] = fInfo[x][f_SpawnY_Out];
pInfo[playerid][pPos_Z] = fInfo[x][f_SpawnZ_Out];
pInfo[playerid][pPos_R] = fInfo[x][f_SpawnR_Out];
pInfo[playerid][pInt] = 0;
pInfo[playerid][pVWorld] = 0;
SetCameraBehindPlayer(playerid);
return 1;
}
}
return 1;
}
stock SendFrakMessage(FraktionsID, Farbe, Nachricht[])
{
for(new i; i<MAX_PLAYERS; i++)
{
if(!IsPlayerConnected(i)) continue;
if(!pInfo[i][pLogged]) continue;
if(pInfo[i][pFraktion] != FraktionsID) continue;
SendClientMessageEx(i, Farbe, Nachricht);
}
return 1;
}
stock GetFraktionsRang(playerid)
{
new Rang[26], fID = pInfo[playerid][pFraktion];
switch(pInfo[playerid][pRang])
{
case 1: { format(Rang, sizeof(Rang), fInfo[fID][f_RangName1]); }
case 2: { format(Rang, sizeof(Rang), fInfo[fID][f_RangName2]); }
case 3: { format(Rang, sizeof(Rang), fInfo[fID][f_RangName3]); }
case 4: { format(Rang, sizeof(Rang), fInfo[fID][f_RangName4]); }
case 5: { format(Rang, sizeof(Rang), fInfo[fID][f_RangName5]); }
case 6: { format(Rang, sizeof(Rang), fInfo[fID][f_RangName6]); }
default: { format(Rang, sizeof(Rang), "-"); }
}
return Rang;
}
ocmd:f(playerid, params[])
{
if(!pInfo[playerid][pLogged]) return SendClientMessage(playerid, COLOR_RED, "[SERVER]{FFFFFF} Es ist ein Fehler aufgetreten! Bitte melde dich bei einem Teammitglied!");
if(!pInfo[playerid][pFraktion]) return SendClientMessage(playerid, COLOR_RED, "[SERVER]{FFFFFF} Du brauchst dafür eine Fraktion!");
new string[512], fID = pInfo[playerid][pFraktion], Nachricht[256];
if(sscanf(params, "s[256]", Nachricht)) return SendClientMessage(playerid, COLOR_RED, "Benutzung:{FFFFFF} /f [Nachricht]");
for(new i; i<MAX_PLAYERS; i++)
{
if(!IsPlayerConnected(i)) continue;
if(!pInfo[i][pLogged]) continue;
if(fID != pInfo[i][pFraktion] && !pInfo[i][pBigEars]) continue;
if(pInfo[i][pBigEars] && fID != pInfo[i][pFraktion]) format(string, sizeof(string), "[F-Chat %s]{FFFFFF} %s %s sagt: %s", fInfo[fID][f_Abkuerzung], GetFraktionsRang(playerid), SpielerName(playerid), Nachricht);
else format(string, sizeof(string), "(( ** %s %s sagt: %s ** ))", GetFraktionsRang(playerid), SpielerName(playerid), Nachricht);
SendClientMessage(i, COLOR_FRAKTION, string);
}
format(string, sizeof(string), "[F-Chat %s]{FFFFFF} %s %s sagt: %s", fInfo[fID][f_Abkuerzung], GetFraktionsRang(playerid), SpielerName(playerid), Nachricht);
Log("fraktions_log", string);
return 1;
}
ocmd:setrang(playerid, params[])
{
if(!pInfo[playerid][pLogged]) return SendClientMessage(playerid, COLOR_RED, "[SERVER]{FFFFFF} Es ist ein Fehler aufgetreten! Bitte melde dich bei einem Teammitglied!");
if(!pInfo[playerid][pFraktion]) return SendClientMessage(playerid, COLOR_RED, "[SERVER]{FFFFFF} Du brauchst dafür eine Fraktion!");
if(pInfo[playerid][pRang] < 5) return SendClientMessage(playerid, COLOR_RED, "[SERVER]{FFFFFF} Du brauchst mindestens Rang 5!");
new pID, Rang;
if(sscanf(params, "ud", pID, Rang)) return SendClientMessage(playerid, COLOR_RED, "Benutzung:{FFFFFF} /setrang [ID/Name] [Rang]");
if(!pInfo[pID][pLogged]) return SendClientMessage(playerid, COLOR_RED, "[SERVER]{FFFFFF} Der Spieler ist nicht eingeloggt!");
if(Rang < 1 || Rang > 5) return SendClientMessage(playerid, COLOR_RED, "[SERVER]{FFFFFF} Der Rang muss zwischen 1 und 5 liegen!");
if(playerid == pID) return SendClientMessage(playerid, COLOR_RED, "[SERVER]{FFFFFF} Du kann deinen eigenen Rang nicht verändern!");
if(pInfo[pID][pRang] == Rang) return SendClientMessage(playerid, COLOR_RED, "[SERVER]{FFFFFF} Der Spieler hat bereits den besagten Rang!");
if(pInfo[playerid][pFraktion] != pInfo[pID][pFraktion]) return SendClientMessage(playerid, COLOR_RED, "[SERVER]{FFFFFF} Der Spieler ist nicht in deiner Fraktion!");
if(pInfo[playerid][pRang] == 5 && Rang == 5) return SendClientMessage(playerid, COLOR_RED, "[SERVER]{FFFFFF} Nur der Leiter einer Fraktion kann Co-/Leiter bestimmen!");
if(pInfo[playerid][pRang] == 5 && pInfo[pID][pRang] >= 5) return SendClientMessage(playerid, COLOR_RED, "[SERVER]{FFFFFF} Nur der Leiter einer Fraktion kann Co-/Leiter bearbeiten!");
if(pInfo[pID][pRang] == 6) return SendClientMessage(playerid, COLOR_RED, "[SERVER]{FFFFFF} Du kannst keinem Leiter die Rechte entziehen!");
new Status[12], string[256];
if(Rang > pInfo[pID][pRang]) format(Status, sizeof(Status), "befördert");
else format(Status, sizeof(Status), "degradiert");
pInfo[pID][pRang] = Rang;
format(string, sizeof(string), "[Fraktion]{FFFFFF} %s %s hat %s zum %s %s!", GetFraktionsRang(playerid), SpielerName(playerid), SpielerName(pID), GetFraktionsRang(pID), Status);
SendFrakMessage(pInfo[playerid][pFraktion], COLOR_FRAKTION, string);
format(string, sizeof(string), "%s %s hat %s zum %s %s (%s)!", GetFraktionsRang(playerid), SpielerName(playerid), SpielerName(pID), GetFraktionsRang(pID), Status, fInfo[pInfo[playerid][pFraktion]][f_Name]);
Log("fraktions_log", string);
return 1;
}
ocmd@2:rauswerfen,uninvite(playerid, params[])
{
if(!pInfo[playerid][pLogged]) return SendClientMessage(playerid, COLOR_RED, "[SERVER]{FFFFFF} Es ist ein Fehler aufgetreten! Bitte melde dich bei einem Teammitglied!");
if(!pInfo[playerid][pFraktion]) return SendClientMessage(playerid, COLOR_RED, "[SERVER]{FFFFFF} Du brauchst dafür eine Fraktion!");
if(pInfo[playerid][pRang] < 5) return SendClientMessage(playerid, COLOR_RED, "[SERVER]{FFFFFF} Du brauchst mindestens Rang 5!");
new pID;
if(sscanf(params, "u", pID)) return SendClientMessage(playerid, COLOR_RED, "Benutzung:{FFFFFF} /rauswerfen [ID/Name]");
if(!pInfo[pID][pLogged]) return SendClientMessage(playerid, COLOR_RED, "[SERVER]{FFFFFF} Der Spieler ist nicht eingeloggt!");
if(pInfo[pID][pFraktion] != pInfo[playerid][pFraktion]) return SendClientMessage(playerid, COLOR_RED, "[SERVER]{FFFFFF} Der Spieler ist nicht in deiner Fraktion!");
if(pInfo[pID][pRang] > 4 && pInfo[playerid][pRang] != 6) return SendClientMessage(playerid, COLOR_RED, "[SERVER]{FFFFFF} Um einen Co-Leiter rauszuwerfen, muss du Leiter sein!");
if(pInfo[pID][pRang] == 6) return SendClientMessage(playerid, COLOR_RED, "[SERVER]{FFFFFF} Einen Leiter kann nur ein Admin rauswerfen!");
pInfo[pID][pEingeladen] = false;
pInfo[pID][pEinladerFraktion] = 0;
pInfo[pID][pFraktion] = 0;
pInfo[pID][pRang] = 0;
new string[256];
format(string, sizeof(string), "[Fraktion] %s wurde von %s %s aus der Fraktion geworfen!", SpielerName(pID), GetFraktionsRang(playerid), SpielerName(playerid));
SendFrakMessage(pInfo[playerid][pFraktion], COLOR_FRAKTION, string);
format(string, sizeof(string), "[Fraktion] Du wurdest von %s %s aus der Fraktion geworfen!", GetFraktionsRang(playerid), SpielerName(playerid));
SendClientMessage(pID, COLOR_FRAKTION, string);
format(string, sizeof(string), "[Fraktion] %s wurde von %s %s aus der Fraktion (%s) geworfen!", SpielerName(pID), GetFraktionsRang(playerid), SpielerName(playerid), fInfo[pInfo[playerid][pFraktion]][f_Name]);
Log("fraktions_log", string);
return 1;
}
ocmd@2:einladen,invite(playerid, params[])
{
if(!pInfo[playerid][pLogged]) return SendClientMessage(playerid, COLOR_RED, "[SERVER]{FFFFFF} Es ist ein Fehler aufgetreten! Bitte melde dich bei einem Teammitglied!");
if(!pInfo[playerid][pFraktion]) return SendClientMessage(playerid, COLOR_RED, "[SERVER]{FFFFFF} Du brauchst dafür eine Fraktion!");
if(pInfo[playerid][pRang] < 5) return SendClientMessage(playerid, COLOR_RED, "[SERVER]{FFFFFF} Du brauchst mindestens Rang 5!");
new pID;
if(sscanf(params, "u", pID)) return SendClientMessage(playerid, COLOR_RED, "Benutzung:{FFFFFF} /einladen [ID/Name]");
if(!pInfo[pID][pLogged]) return SendClientMessage(playerid, COLOR_RED, "[SERVER]{FFFFFF} Der Spieler ist nicht eingeloggt!");
if(pInfo[pID][pFraktion] != 0) return SendClientMessage(playerid, COLOR_RED, "[SERVER]{FFFFFF} Der Spieler ist bereits in einer Fraktion!");
if(pInfo[pID][pEingeladen]) return SendClientMessage(playerid, COLOR_RED, "[SERVER]{FFFFFF} Der Spieler wurde bereits in eine Fraktion eingeladen!");
new string[256];
pInfo[pID][pEingeladen] = true;
pInfo[pID][pEinladerFraktion] = pInfo[playerid][pFraktion];
format(string, sizeof(string), "{FFFFFF}Du wurdest von %s %s in die Fraktion (%s) eingeladen!\nMöchtest du Mitglied dieser Fraktion werden?", GetFraktionsRang(playerid), SpielerName(playerid), fInfo[pInfo[playerid][pFraktion]][f_Name]);
ShowPlayerDialog(pID, DIALOG_FRAK_INVITE, DIALOG_STYLE_MSGBOX, "{FFFFFF}Fraktionseinladung", string, "{FFFFFF}Annehmen", "{FFFFFF}Ablehnen");
format(string, sizeof(string), "[Fraktion]{FFFFFF} %s %s hat %s in die Fraktion eingeladen!", GetFraktionsRang(playerid), SpielerName(playerid), SpielerName(pID));
SendFrakMessage(pInfo[playerid][pFraktion], COLOR_FRAKTION, string);
format(string, sizeof(string), "[Fraktion]{FFFFFF} %s %s hat %s in die Fraktion (%s) eingeladen!", GetFraktionsRang(playerid), SpielerName(playerid), SpielerName(pID), fInfo[pInfo[playerid][pFraktion]][f_Name]);
Log("fraktions_log", string);
return 1;
}
ocmd:makezivi(playerid, params[])
{
if(!pInfo[playerid][pLogged]) return SendClientMessage(playerid, COLOR_RED, "[SERVER]{FFFFFF} Es ist ein Fehler aufgetreten! Bitte melde dich bei einem Teammitglied!");
if(pInfo[playerid][pAdmin] < 1 || pInfo[playerid][pAdmin] > 5) return SendClientMessage(playerid, COLOR_RED, "[SERVER]{FFFFFF} Du verfügst nicht die nötigen Berechtiungen!");
new string[256], pID;
if(!Adminduty[playerid])
{
format(string, sizeof(string), "[SERVER]{FFFFFF} Du bist nicht als %s im Dienst!", GetAdminRang(playerid));
SendClientMessage(playerid, COLOR_RED, string);
return 1;
}
if(sscanf(params, "u", pID)) return SendClientMessage(playerid, COLOR_RED, "Benutzung:{FFFFFF} /makezivi [ID/Name]");
if(!pInfo[pID][pLogged]) return SendClientMessage(playerid, COLOR_RED, "[SERVER]{FFFFFF} Der Spieler ist nicht eingeloggt!");
if(pInfo[playerid][pFraktion] == 0) return SendClientMessage(playerid, COLOR_RED, "[SERVER]{FFFFFF} Der Spieler ist in keiner Fraktion!");
format(string, sizeof(string), "[Adm-Cmd]{FFFFFF} %s %s hat %s aus der Fraktion geschmissen!", GetAdminRang(playerid), SpielerName(playerid), SpielerName(pID));
SendAdminMessage(string);
format(string, sizeof(string), "%s Alte Fraktion: %s", string, fInfo[pInfo[pID][pFraktion]][f_Name]);
Log("admin_log", string);
format(string, sizeof(string), "[Adm-Cmd]{FFFFFF} %s %s hat dich aus der Fraktion geschmissen!", GetAdminRang(playerid), SpielerName(playerid));
SendClientMessage(pID, COLOR_RED, string);
pInfo[pID][pFraktion] = 0;
pInfo[pID][pRang] = 0;
SpielerSpeichern(pID);
return 1;
}
ocmd:asetrang(playerid, params[])
{
if(!pInfo[playerid][pLogged]) return SendClientMessage(playerid, COLOR_RED, "[SERVER]{FFFFFF} Es ist ein Fehler aufgetreten! Bitte melde dich bei einem Teammitglied!");
if(pInfo[playerid][pAdmin] < 1 || pInfo[playerid][pAdmin] > 5) return SendClientMessage(playerid, COLOR_RED, "[SERVER]{FFFFFF} Du verfügst nicht die nötigen Berechtiungen!");
new string[256];
if(!Adminduty[playerid])
{
format(string, sizeof(string), "[SERVER]{FFFFFF} Du bist nicht als %s im Dienst!", GetAdminRang(playerid));
SendClientMessage(playerid, COLOR_RED, string);
return 1;
}
new pID, Rang;
if(sscanf(params, "ud", pID, Rang)) return SendClientMessage(playerid, COLOR_RED, "Benutzung:{FFFFFF} /asetrang [ID/Name] [Rang]");
if(!pInfo[pID][pLogged]) return SendClientMessage(playerid, COLOR_RED, "[SERVER]{FFFFFF} Der Spieler ist nicht eingeloggt!");
if(Rang < 1 || Rang > 6) return SendClientMessage(playerid, COLOR_RED, "[SERVER]{FFFFFF} Der Rang muss zwischen 1 und 6 liegen!");
if(pInfo[pID][pRang] == Rang) return SendClientMessage(playerid, COLOR_RED, "[SERVER]{FFFFFF} Der Spieler hat bereits den besagten Rang!");
new Status[12];
if(Rang > pInfo[pID][pRang]) format(Status, sizeof(Status), "befördert");
else format(Status, sizeof(Status), "degradiert");
pInfo[pID][pRang] = Rang;
format(string, sizeof(string), "[Adm-Cmd]{FFFFFF} %s %s hat %s zum %s %s!", GetAdminRang(playerid), SpielerName(playerid), SpielerName(pID), GetFraktionsRang(pID), Status);
SendFrakMessage(pInfo[playerid][pFraktion], COLOR_RED, string);
SendAdminMessage(string);
format(string, sizeof(string), "%s %s hat %s zum %s %s (%s)!", GetAdminRang(playerid), SpielerName(playerid), SpielerName(pID), GetFraktionsRang(pID), Status, fInfo[pInfo[pID][pFraktion]][f_Name]);
Log("admin_log", string);
return 1;
}
ocmd:setfraktion(playerid, params[])
{
if(!pInfo[playerid][pLogged]) return SendClientMessage(playerid, COLOR_RED, "[SERVER]{FFFFFF} Es ist ein Fehler aufgetreten! Bitte melde dich bei einem Teammitglied!");
if(pInfo[playerid][pAdmin] < 1 || pInfo[playerid][pAdmin] > 5) return SendClientMessage(playerid, COLOR_RED, "[SERVER]{FFFFFF} Du verfügst nicht die nötigen Berechtiungen!");
new string[128], pID, fID;
if(!Adminduty[playerid])
{
format(string, sizeof(string), "[SERVER]{FFFFFF} Du bist nicht als %s im Dienst!", GetAdminRang(playerid));
SendClientMessage(playerid, COLOR_RED, string);
return 1;
}
if(sscanf(params, "ud", pID, fID)) return SendClientMessage(playerid, COLOR_RED, "Benutzung:{FFFFFF} /setfraktion [ID/Name] [Fraktions-ID]");
if(!pInfo[pID][pLogged]) return SendClientMessage(playerid, COLOR_RED, "[SERVER]{FFFFFF} Der Spieler ist nicht eingeloggt!");
if(!IsValidFraktion(fID)) return SendClientMessage(playerid, COLOR_RED, "[SERVER]{FFFFFF} Diese Fraktion existiert nicht!");
if(fID == pInfo[pID][pFraktion]) return SendClientMessage(playerid, COLOR_RED, "[SERVER]{FFFFFF} Der Spieler ist bereits in der Fraktion!");
format(string, sizeof(string), "[Adm-Cmd]{FFFFFF} %s %s hat %s in die Fraktion %s gesetzt!", GetAdminRang(playerid), SpielerName(playerid), SpielerName(pID), fInfo[GetFraktionsID(fID)][f_ID]);
SendAdminMessage(string);
SendFrakMessage(fID, COLOR_RED, string);
Log("admin_log", string);
format(string, sizeof(string), "[Adm-Cmd]{FFFFFF} %s %s hat dich in die Fraktion %s gesetzt!", GetAdminRang(playerid), SpielerName(playerid), fInfo[GetFraktionsID(fID)][f_ID]);
SendClientMessage(pID, COLOR_RED, string);
pInfo[pID][pFraktion] = fID;
pInfo[pID][pRang] = 1;
SpielerSpeichern(pID);
return 1;
}
ocmd@2:fl,fraktionsliste(playerid, params[])
{
if(!pInfo[playerid][pLogged]) return SendClientMessage(playerid, COLOR_RED, "[SERVER]{FFFFFF} Es ist ein Fehler aufgetreten! Bitte melde dich bei einem Teammitglied!");
if(pInfo[playerid][pAdmin] < 1 || pInfo[playerid][pAdmin] > 5) return SendClientMessage(playerid, COLOR_RED, "[SERVER]{FFFFFF} Du verfügst nicht die nötigen Berechtiungen!");
new string[512], var;
if(!Adminduty[playerid])
{
format(string, sizeof(string),"[SERVER]{FFFFFF} Du bist nicht als %s im Dienst!", GetAdminRang(playerid));
SendClientMessage(playerid, COLOR_RED, string);
return 1;
}
for(new i = 1; i<MAX_FRAKTIONEN; i++)
{
if(fInfo[i][f_ID] == 0) continue;
if(var == 0) format(string, sizeof(string), "{FFFFFF}%d - %s (Abk.: %s)\n", fInfo[i][f_ID], fInfo[i][f_Name], fInfo[i][f_Abkuerzung]);
else format(string, sizeof(string), "%s%d - %s (Abk.: %s)\n", string, fInfo[i][f_ID], fInfo[i][f_Name], fInfo[i][f_Abkuerzung]);
var++;
}
ShowPlayerDialog(playerid, DIALOG_FL, DIALOG_STYLE_LIST, "{FFFFFF}Fraktionsliste", string, "{FFFFFF}Schließen", "");
return 1;
}
Alles anzeigen