Advertisement
Guest User

Fraktionssystem

a guest
Oct 22nd, 2017
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 22.31 KB | None | 0 0
  1. #define MAX_FRAKTIONEN 10
  2.  
  3. enum FraktionsDatenEnum {
  4.     f_ID,
  5.     f_Name[32],
  6.     f_Abkuerzung[8],
  7.     f_Geld,
  8.     f_Max_Fahrzeuge,
  9.     f_Fahrzeuge,
  10.     f_FahrzeugFarbe1,
  11.     f_FahrzeugFarbe2,
  12.     f_RangName1[25],
  13.     f_RangName2[25],
  14.     f_RangName3[25],
  15.     f_RangName4[25],
  16.     f_RangName5[25],
  17.     f_RangName6[25],
  18.     Float:f_PickupX_In,
  19.     Float:f_PickupY_In,
  20.     Float:f_PickupZ_In,
  21.     Float:f_PickupR_In,
  22.     Float:f_PickupX_Out,
  23.     Float:f_PickupY_Out,
  24.     Float:f_PickupZ_Out,
  25.     Float:f_PickupR_Out,
  26.     Float:f_SpawnX_In,
  27.     Float:f_SpawnY_In,
  28.     Float:f_SpawnZ_In,
  29.     Float:f_SpawnR_In,
  30.     Float:f_SpawnX_Out,
  31.     Float:f_SpawnY_Out,
  32.     Float:f_SpawnZ_Out,
  33.     Float:f_SpawnR_Out,
  34.     f_Int,
  35.     f_VWorld,
  36.     f_Pickup_In,
  37.     f_Pickup_Out
  38. };
  39.  
  40. enum PlayerDatenEnum {
  41.     bool:pLogged,
  42.     pName[MAX_PLAYER_NAME],
  43.     pFraktion,
  44.     pRang
  45. }
  46. enum {
  47.     DIALOG_FL,
  48.     DIALOG_FRAKTION_BEARBEITEN_1,
  49.     DIALOG_FRAKTION_BEARBEITEN_2,
  50.     DIALOG_FRAKTION_BEARBEITEN_3,
  51.     DIALOG_FRAKTION_BEARBEITEN_4,
  52.     DIALOG_FRAK_INVITE
  53. }
  54.  
  55. forward LadeFraktionsDaten();
  56.  
  57. new fInfo[MAX_FRAKTIONEN][FraktionsDatenEnum];
  58. new pInfo[MAX_PLAYERS][PlayerDatenEnum];
  59.  
  60. public OnGameModeInit()
  61. {
  62.     new string[256];
  63.     mysql_format(handle, string, sizeof(string), "SELECT * FROM `fraktionen`");
  64.     mysql_pquery(handle, string, "LadeFraktionsDaten");
  65. }
  66.  
  67. public LadeFraktionsDaten()
  68. {
  69.     new rows;
  70.     cache_get_row_count(rows);
  71.     if(rows == 0)
  72.     {
  73.         printf("- Es konnten keine Fraktionen gefunden werden!");
  74.         return 1;
  75.     }
  76.     new var, string[128];
  77.     for(new i; i<rows; i++)
  78.     {
  79.         cache_get_value_name_int(i, "id", fInfo[i][f_ID]);
  80.         fInfo[i][f_VWorld] = fInfo[i][f_ID] + 100;
  81.         cache_get_value_name_int(i, "Geld", fInfo[i][f_Geld]);
  82.         cache_get_value_name_int(i, "Max_Fahrzeuge", fInfo[i][f_Max_Fahrzeuge]);
  83.         cache_get_value_name_int(i, "Fahrzeuge", fInfo[i][f_Fahrzeuge]);
  84.         cache_get_value_name_int(i, "Interior", fInfo[i][f_Int]);
  85.         cache_get_value_name_int(i, "FahrzeugFarbe1", fInfo[i][f_FahrzeugFarbe1]);
  86.         cache_get_value_name_int(i, "FahrzeugFarbe2", fInfo[i][f_FahrzeugFarbe2]);
  87.         cache_get_value_name_float(i, "SpawnX_In", fInfo[i][f_SpawnX_In]);
  88.         cache_get_value_name_float(i, "SpawnY_In", fInfo[i][f_SpawnY_In]);
  89.         cache_get_value_name_float(i, "SpawnZ_In", fInfo[i][f_SpawnZ_In]);
  90.         cache_get_value_name_float(i, "SpawnR_In", fInfo[i][f_SpawnR_In]);
  91.         cache_get_value_name_float(i, "SpawnX_Out", fInfo[i][f_SpawnX_Out]);
  92.         cache_get_value_name_float(i, "SpawnY_Out", fInfo[i][f_SpawnY_Out]);
  93.         cache_get_value_name_float(i, "SpawnZ_Out", fInfo[i][f_SpawnZ_Out]);
  94.         cache_get_value_name_float(i, "SpawnR_Out", fInfo[i][f_SpawnR_Out]);
  95.         cache_get_value_name_float(i, "PickupX_In", fInfo[i][f_PickupX_In]);
  96.         cache_get_value_name_float(i, "PickupY_In", fInfo[i][f_PickupY_In]);
  97.         cache_get_value_name_float(i, "PickupZ_In", fInfo[i][f_PickupZ_In]);
  98.         cache_get_value_name_float(i, "PickupX_Out", fInfo[i][f_PickupX_Out]);
  99.         cache_get_value_name_float(i, "PickupY_Out", fInfo[i][f_PickupY_Out]);
  100.         cache_get_value_name_float(i, "PickupZ_Out", fInfo[i][f_PickupZ_Out]);
  101.         cache_get_value_name(i, "Name", string, sizeof(string));
  102.         format(fInfo[i][f_Name], sizeof(string), string);
  103.         cache_get_value_name(i, "Abkürzung", string, sizeof(string));
  104.         format(fInfo[i][f_Abkuerzung], sizeof(string), string);
  105.         cache_get_value_name(i, "RangName1", string, sizeof(string));
  106.         format(fInfo[i][f_RangName1], sizeof(string), string);
  107.         cache_get_value_name(i, "RangName2", string, sizeof(string));
  108.         format(fInfo[i][f_RangName2], sizeof(string), string);
  109.         cache_get_value_name(i, "RangName3", string, sizeof(string));
  110.         format(fInfo[i][f_RangName3], sizeof(string), string);
  111.         cache_get_value_name(i, "RangName4", string, sizeof(string));
  112.         format(fInfo[i][f_RangName4], sizeof(string), string);
  113.         cache_get_value_name(i, "RangName5", string, sizeof(string));
  114.         format(fInfo[i][f_RangName5], sizeof(string), string);
  115.         cache_get_value_name(i, "RangName6", string, sizeof(string));
  116.         format(fInfo[i][f_RangName6], sizeof(string), string);
  117.         if(fInfo[i][f_PickupX_In] != 0)
  118.         {
  119.             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]);
  120.             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);
  121.  
  122.             format(string, sizeof(string), "%s-Gebäude\nZum Verlassen 'Enter'", fInfo[i][f_Name]);
  123.             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]);
  124.  
  125.             format(string, sizeof(string), "%s-Gebäude\nZum Betreten 'Enter'", fInfo[i][f_Name]);
  126.             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);
  127.         }
  128.         var++;
  129.  }
  130.     printf("- Es wurden erfolgreich %d Fraktionen geladen!", var);
  131.     return 1;
  132. }
  133.  
  134. public OnPlayerKeyStateChange(playerid, newinteriorid, oldinteriorid)
  135. {
  136.             for(new x; x<sizeof(fInfo); x++)
  137.             {
  138.                 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
  139.                 {
  140.                     if(pInfo[playerid][pFraktion] != fInfo[x][f_ID])
  141.                     {
  142.                         new string[128];
  143.                         format(string, sizeof(string), "[SERVER]{FFFFFF} Du bist nicht in der Fraktion '%s'!", fInfo[x][f_Name]);
  144.                         SendClientMessage(playerid, COLOR_RED, string);
  145.                         return 1;
  146.                     }
  147.                     SetPlayerPos(playerid, fInfo[x][f_SpawnX_In], fInfo[x][f_SpawnY_In], fInfo[x][f_SpawnZ_In]);
  148.                     SetPlayerFacingAngle(playerid, fInfo[x][f_SpawnR_In]);
  149.                     SetPlayerVirtualWorld(playerid, fInfo[x][f_VWorld]);
  150.                     SetPlayerInterior(playerid, fInfo[x][f_Int]);
  151.                     pInfo[playerid][pPos_X] = fInfo[x][f_SpawnX_In];
  152.                     pInfo[playerid][pPos_Y] = fInfo[x][f_SpawnY_In];
  153.                     pInfo[playerid][pPos_Z] = fInfo[x][f_SpawnZ_In];
  154.                     pInfo[playerid][pPos_R] = fInfo[x][f_SpawnR_In];
  155.                     pInfo[playerid][pInt] = fInfo[x][f_Int];
  156.                     pInfo[playerid][pVWorld] = fInfo[x][f_VWorld];
  157.                     SetCameraBehindPlayer(playerid);
  158.                     return 1;
  159.                 }
  160.                 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
  161.                 {
  162.                     if(pInfo[playerid][pInt] != 0 && pInfo[playerid][pVWorld] == fInfo[x][f_VWorld])
  163.                     SetPlayerPos(playerid, fInfo[x][f_SpawnX_Out], fInfo[x][f_SpawnY_Out], fInfo[x][f_SpawnZ_Out]);
  164.                     SetPlayerFacingAngle(playerid, fInfo[x][f_SpawnR_Out]);
  165.                     SetPlayerVirtualWorld(playerid, 0);
  166.                     SetPlayerInterior(playerid, 0);
  167.                     pInfo[playerid][pPos_X] = fInfo[x][f_SpawnX_Out];
  168.                     pInfo[playerid][pPos_Y] = fInfo[x][f_SpawnY_Out];
  169.                     pInfo[playerid][pPos_Z] = fInfo[x][f_SpawnZ_Out];
  170.                     pInfo[playerid][pPos_R] = fInfo[x][f_SpawnR_Out];
  171.                     pInfo[playerid][pInt] = 0;
  172.                     pInfo[playerid][pVWorld] = 0;
  173.                     SetCameraBehindPlayer(playerid);
  174.                     return 1;
  175.                 }
  176.             }
  177.             return 1;
  178. }
  179.  
  180. stock SendFrakMessage(FraktionsID, Farbe, Nachricht[])
  181. {
  182.     for(new i; i<MAX_PLAYERS; i++)
  183.     {
  184.         if(!IsPlayerConnected(i)) continue;
  185.         if(!pInfo[i][pLogged]) continue;
  186.         if(pInfo[i][pFraktion] != FraktionsID) continue;
  187.         SendClientMessageEx(i, Farbe, Nachricht);
  188.     }
  189.     return 1;
  190. }
  191.  
  192. stock GetFraktionsRang(playerid)
  193. {
  194.     new Rang[26], fID = pInfo[playerid][pFraktion];
  195.     switch(pInfo[playerid][pRang])
  196.     {
  197.         case 1: { format(Rang, sizeof(Rang), fInfo[fID][f_RangName1]); }
  198.         case 2: { format(Rang, sizeof(Rang), fInfo[fID][f_RangName2]); }
  199.         case 3: { format(Rang, sizeof(Rang), fInfo[fID][f_RangName3]); }
  200.         case 4: { format(Rang, sizeof(Rang), fInfo[fID][f_RangName4]); }
  201.         case 5: { format(Rang, sizeof(Rang), fInfo[fID][f_RangName5]); }
  202.         case 6: { format(Rang, sizeof(Rang), fInfo[fID][f_RangName6]); }
  203.         default: { format(Rang, sizeof(Rang), "-"); }
  204.     }
  205.     return Rang;
  206. }
  207.  
  208. ocmd:f(playerid, params[])
  209. {
  210.     if(!pInfo[playerid][pLogged]) return SendClientMessage(playerid, COLOR_RED, "[SERVER]{FFFFFF} Es ist ein Fehler aufgetreten! Bitte melde dich bei einem Teammitglied!");
  211.     if(!pInfo[playerid][pFraktion]) return SendClientMessage(playerid, COLOR_RED, "[SERVER]{FFFFFF} Du brauchst dafür eine Fraktion!");
  212.     new string[512], fID = pInfo[playerid][pFraktion], Nachricht[256];
  213.     if(sscanf(params, "s[256]", Nachricht)) return SendClientMessage(playerid, COLOR_RED, "Benutzung:{FFFFFF} /f [Nachricht]");
  214.     for(new i; i<MAX_PLAYERS; i++)
  215.     {
  216.         if(!IsPlayerConnected(i)) continue;
  217.         if(!pInfo[i][pLogged]) continue;
  218.         if(fID != pInfo[i][pFraktion] && !pInfo[i][pBigEars]) continue;
  219.         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);
  220.         else format(string, sizeof(string), "(( ** %s %s sagt: %s  ** ))", GetFraktionsRang(playerid), SpielerName(playerid), Nachricht);
  221.         SendClientMessage(i, COLOR_FRAKTION, string);
  222.     }
  223.     format(string, sizeof(string), "[F-Chat %s]{FFFFFF} %s %s sagt: %s", fInfo[fID][f_Abkuerzung], GetFraktionsRang(playerid), SpielerName(playerid), Nachricht);
  224.     Log("fraktions_log", string);
  225.     return 1;
  226. }
  227.  
  228. ocmd:setrang(playerid, params[])
  229. {
  230.     if(!pInfo[playerid][pLogged]) return SendClientMessage(playerid, COLOR_RED, "[SERVER]{FFFFFF} Es ist ein Fehler aufgetreten! Bitte melde dich bei einem Teammitglied!");
  231.     if(!pInfo[playerid][pFraktion]) return SendClientMessage(playerid, COLOR_RED, "[SERVER]{FFFFFF} Du brauchst dafür eine Fraktion!");
  232.     if(pInfo[playerid][pRang] < 5) return SendClientMessage(playerid, COLOR_RED, "[SERVER]{FFFFFF} Du brauchst mindestens Rang 5!");
  233.     new pID, Rang;
  234.     if(sscanf(params, "ud", pID, Rang)) return SendClientMessage(playerid, COLOR_RED, "Benutzung:{FFFFFF} /setrang [ID/Name] [Rang]");
  235.     if(!pInfo[pID][pLogged]) return SendClientMessage(playerid, COLOR_RED, "[SERVER]{FFFFFF} Der Spieler ist nicht eingeloggt!");
  236.     if(Rang < 1 || Rang > 5) return SendClientMessage(playerid, COLOR_RED, "[SERVER]{FFFFFF} Der Rang muss zwischen 1 und 5 liegen!");
  237.     if(playerid == pID) return SendClientMessage(playerid, COLOR_RED, "[SERVER]{FFFFFF} Du kann deinen eigenen Rang nicht verändern!");
  238.     if(pInfo[pID][pRang] == Rang) return SendClientMessage(playerid, COLOR_RED, "[SERVER]{FFFFFF} Der Spieler hat bereits den besagten Rang!");
  239.     if(pInfo[playerid][pFraktion] != pInfo[pID][pFraktion]) return SendClientMessage(playerid, COLOR_RED, "[SERVER]{FFFFFF} Der Spieler ist nicht in deiner Fraktion!");
  240.     if(pInfo[playerid][pRang] == 5 && Rang == 5) return SendClientMessage(playerid, COLOR_RED, "[SERVER]{FFFFFF} Nur der Leiter einer Fraktion kann Co-/Leiter bestimmen!");
  241.     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!");
  242.     if(pInfo[pID][pRang] == 6) return SendClientMessage(playerid, COLOR_RED, "[SERVER]{FFFFFF} Du kannst keinem Leiter die Rechte entziehen!");
  243.     new Status[12], string[256];
  244.     if(Rang > pInfo[pID][pRang]) format(Status, sizeof(Status), "befördert");
  245.     else format(Status, sizeof(Status), "degradiert");
  246.     pInfo[pID][pRang] = Rang;
  247.     format(string, sizeof(string), "[Fraktion]{FFFFFF} %s %s hat %s zum %s %s!", GetFraktionsRang(playerid), SpielerName(playerid), SpielerName(pID), GetFraktionsRang(pID), Status);
  248.     SendFrakMessage(pInfo[playerid][pFraktion], COLOR_FRAKTION, string);
  249.     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]);
  250.     Log("fraktions_log", string);
  251.     return 1;
  252. }
  253.  
  254. ocmd@2:rauswerfen,uninvite(playerid, params[])
  255. {
  256.     if(!pInfo[playerid][pLogged]) return SendClientMessage(playerid, COLOR_RED, "[SERVER]{FFFFFF} Es ist ein Fehler aufgetreten! Bitte melde dich bei einem Teammitglied!");
  257.     if(!pInfo[playerid][pFraktion]) return SendClientMessage(playerid, COLOR_RED, "[SERVER]{FFFFFF} Du brauchst dafür eine Fraktion!");
  258.     if(pInfo[playerid][pRang] < 5) return SendClientMessage(playerid, COLOR_RED, "[SERVER]{FFFFFF} Du brauchst mindestens Rang 5!");
  259.     new pID;
  260.     if(sscanf(params, "u", pID)) return SendClientMessage(playerid, COLOR_RED, "Benutzung:{FFFFFF} /rauswerfen [ID/Name]");
  261.     if(!pInfo[pID][pLogged]) return SendClientMessage(playerid, COLOR_RED, "[SERVER]{FFFFFF} Der Spieler ist nicht eingeloggt!");
  262.     if(pInfo[pID][pFraktion] != pInfo[playerid][pFraktion]) return SendClientMessage(playerid, COLOR_RED, "[SERVER]{FFFFFF} Der Spieler ist nicht in deiner Fraktion!");
  263.     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!");
  264.     if(pInfo[pID][pRang] == 6) return SendClientMessage(playerid, COLOR_RED, "[SERVER]{FFFFFF} Einen Leiter kann nur ein Admin rauswerfen!");
  265.     pInfo[pID][pEingeladen] = false;
  266.     pInfo[pID][pEinladerFraktion] = 0;
  267.     pInfo[pID][pFraktion] = 0;
  268.     pInfo[pID][pRang] = 0;
  269.     new string[256];
  270.     format(string, sizeof(string), "[Fraktion] %s wurde von %s %s aus der Fraktion geworfen!", SpielerName(pID), GetFraktionsRang(playerid), SpielerName(playerid));
  271.     SendFrakMessage(pInfo[playerid][pFraktion], COLOR_FRAKTION, string);
  272.     format(string, sizeof(string), "[Fraktion] Du wurdest von %s %s aus der Fraktion geworfen!", GetFraktionsRang(playerid), SpielerName(playerid));
  273.     SendClientMessage(pID, COLOR_FRAKTION, string);
  274.     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]);
  275.     Log("fraktions_log", string);
  276.     return 1;
  277. }
  278.  
  279. ocmd@2:einladen,invite(playerid, params[])
  280. {
  281.     if(!pInfo[playerid][pLogged]) return SendClientMessage(playerid, COLOR_RED, "[SERVER]{FFFFFF} Es ist ein Fehler aufgetreten! Bitte melde dich bei einem Teammitglied!");
  282.     if(!pInfo[playerid][pFraktion]) return SendClientMessage(playerid, COLOR_RED, "[SERVER]{FFFFFF} Du brauchst dafür eine Fraktion!");
  283.     if(pInfo[playerid][pRang] < 5) return SendClientMessage(playerid, COLOR_RED, "[SERVER]{FFFFFF} Du brauchst mindestens Rang 5!");
  284.     new pID;
  285.     if(sscanf(params, "u", pID)) return SendClientMessage(playerid, COLOR_RED, "Benutzung:{FFFFFF} /einladen [ID/Name]");
  286.     if(!pInfo[pID][pLogged]) return SendClientMessage(playerid, COLOR_RED, "[SERVER]{FFFFFF} Der Spieler ist nicht eingeloggt!");
  287.     if(pInfo[pID][pFraktion] != 0) return SendClientMessage(playerid, COLOR_RED, "[SERVER]{FFFFFF} Der Spieler ist bereits in einer Fraktion!");
  288.     if(pInfo[pID][pEingeladen]) return SendClientMessage(playerid, COLOR_RED, "[SERVER]{FFFFFF} Der Spieler wurde bereits in eine Fraktion eingeladen!");
  289.     new string[256];
  290.     pInfo[pID][pEingeladen] = true;
  291.     pInfo[pID][pEinladerFraktion] = pInfo[playerid][pFraktion];
  292.     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]);
  293.     ShowPlayerDialog(pID, DIALOG_FRAK_INVITE, DIALOG_STYLE_MSGBOX, "{FFFFFF}Fraktionseinladung", string, "{FFFFFF}Annehmen", "{FFFFFF}Ablehnen");
  294.     format(string, sizeof(string), "[Fraktion]{FFFFFF} %s %s hat %s in die Fraktion eingeladen!", GetFraktionsRang(playerid), SpielerName(playerid), SpielerName(pID));
  295.     SendFrakMessage(pInfo[playerid][pFraktion], COLOR_FRAKTION, string);
  296.     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]);
  297.     Log("fraktions_log", string);
  298.     return 1;
  299. }
  300.  
  301. ocmd:makezivi(playerid, params[])
  302. {
  303.     if(!pInfo[playerid][pLogged]) return SendClientMessage(playerid, COLOR_RED, "[SERVER]{FFFFFF} Es ist ein Fehler aufgetreten! Bitte melde dich bei einem Teammitglied!");
  304.     if(pInfo[playerid][pAdmin] < 1 || pInfo[playerid][pAdmin] > 5) return SendClientMessage(playerid, COLOR_RED, "[SERVER]{FFFFFF} Du verfügst nicht die nötigen Berechtiungen!");
  305.     new string[256], pID;
  306.     if(!Adminduty[playerid])
  307.     {
  308.         format(string, sizeof(string), "[SERVER]{FFFFFF} Du bist nicht als %s im Dienst!", GetAdminRang(playerid));
  309.         SendClientMessage(playerid, COLOR_RED, string);
  310.         return 1;
  311.     }
  312.     if(sscanf(params, "u", pID)) return SendClientMessage(playerid, COLOR_RED, "Benutzung:{FFFFFF} /makezivi [ID/Name]");
  313.     if(!pInfo[pID][pLogged]) return SendClientMessage(playerid, COLOR_RED, "[SERVER]{FFFFFF} Der Spieler ist nicht eingeloggt!");
  314.     if(pInfo[playerid][pFraktion] == 0) return SendClientMessage(playerid, COLOR_RED, "[SERVER]{FFFFFF} Der Spieler ist in keiner Fraktion!");
  315.     format(string, sizeof(string), "[Adm-Cmd]{FFFFFF} %s %s hat %s aus der Fraktion geschmissen!", GetAdminRang(playerid), SpielerName(playerid), SpielerName(pID));
  316.     SendAdminMessage(string);
  317.     format(string, sizeof(string), "%s Alte Fraktion: %s", string, fInfo[pInfo[pID][pFraktion]][f_Name]);
  318.     Log("admin_log", string);
  319.     format(string, sizeof(string), "[Adm-Cmd]{FFFFFF} %s %s hat dich aus der Fraktion geschmissen!", GetAdminRang(playerid), SpielerName(playerid));
  320.     SendClientMessage(pID, COLOR_RED, string);
  321.     pInfo[pID][pFraktion] = 0;
  322.     pInfo[pID][pRang] = 0;
  323.     SpielerSpeichern(pID);
  324.     return 1;
  325. }
  326.  
  327. ocmd:asetrang(playerid, params[])
  328. {
  329.     if(!pInfo[playerid][pLogged]) return SendClientMessage(playerid, COLOR_RED, "[SERVER]{FFFFFF} Es ist ein Fehler aufgetreten! Bitte melde dich bei einem Teammitglied!");
  330.     if(pInfo[playerid][pAdmin] < 1 || pInfo[playerid][pAdmin] > 5) return SendClientMessage(playerid, COLOR_RED, "[SERVER]{FFFFFF} Du verfügst nicht die nötigen Berechtiungen!");
  331.     new string[256];
  332.     if(!Adminduty[playerid])
  333.     {
  334.         format(string, sizeof(string), "[SERVER]{FFFFFF} Du bist nicht als %s im Dienst!", GetAdminRang(playerid));
  335.         SendClientMessage(playerid, COLOR_RED, string);
  336.         return 1;
  337.     }
  338.     new pID, Rang;
  339.     if(sscanf(params, "ud", pID, Rang)) return SendClientMessage(playerid, COLOR_RED, "Benutzung:{FFFFFF} /asetrang [ID/Name] [Rang]");
  340.     if(!pInfo[pID][pLogged]) return SendClientMessage(playerid, COLOR_RED, "[SERVER]{FFFFFF} Der Spieler ist nicht eingeloggt!");
  341.     if(Rang < 1 || Rang > 6) return SendClientMessage(playerid, COLOR_RED, "[SERVER]{FFFFFF} Der Rang muss zwischen 1 und 6 liegen!");
  342.     if(pInfo[pID][pRang] == Rang) return SendClientMessage(playerid, COLOR_RED, "[SERVER]{FFFFFF} Der Spieler hat bereits den besagten Rang!");
  343.     new Status[12];
  344.     if(Rang > pInfo[pID][pRang]) format(Status, sizeof(Status), "befördert");
  345.     else format(Status, sizeof(Status), "degradiert");
  346.     pInfo[pID][pRang] = Rang;
  347.     format(string, sizeof(string), "[Adm-Cmd]{FFFFFF} %s %s hat %s zum %s %s!", GetAdminRang(playerid), SpielerName(playerid), SpielerName(pID), GetFraktionsRang(pID), Status);
  348.     SendFrakMessage(pInfo[playerid][pFraktion], COLOR_RED, string);
  349.     SendAdminMessage(string);
  350.     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]);
  351.     Log("admin_log", string);
  352.     return 1;
  353. }
  354.  
  355. ocmd:setfraktion(playerid, params[])
  356. {
  357.     if(!pInfo[playerid][pLogged]) return SendClientMessage(playerid, COLOR_RED, "[SERVER]{FFFFFF} Es ist ein Fehler aufgetreten! Bitte melde dich bei einem Teammitglied!");
  358.     if(pInfo[playerid][pAdmin] < 1 || pInfo[playerid][pAdmin] > 5) return SendClientMessage(playerid, COLOR_RED, "[SERVER]{FFFFFF} Du verfügst nicht die nötigen Berechtiungen!");
  359.     new string[128], pID, fID;
  360.     if(!Adminduty[playerid])
  361.     {
  362.         format(string, sizeof(string), "[SERVER]{FFFFFF} Du bist nicht als %s im Dienst!", GetAdminRang(playerid));
  363.         SendClientMessage(playerid, COLOR_RED, string);
  364.         return 1;
  365.     }
  366.     if(sscanf(params, "ud", pID, fID)) return SendClientMessage(playerid, COLOR_RED, "Benutzung:{FFFFFF} /setfraktion [ID/Name] [Fraktions-ID]");
  367.     if(!pInfo[pID][pLogged]) return SendClientMessage(playerid, COLOR_RED, "[SERVER]{FFFFFF} Der Spieler ist nicht eingeloggt!");
  368.     if(!IsValidFraktion(fID)) return SendClientMessage(playerid, COLOR_RED, "[SERVER]{FFFFFF} Diese Fraktion existiert nicht!");
  369.     if(fID == pInfo[pID][pFraktion]) return SendClientMessage(playerid, COLOR_RED, "[SERVER]{FFFFFF} Der Spieler ist bereits in der Fraktion!");
  370.     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]);
  371.     SendAdminMessage(string);
  372.     SendFrakMessage(fID, COLOR_RED, string);
  373.     Log("admin_log", string);
  374.     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]);
  375.     SendClientMessage(pID, COLOR_RED, string);
  376.     pInfo[pID][pFraktion] = fID;
  377.     pInfo[pID][pRang] = 1;
  378.     SpielerSpeichern(pID);
  379.     return 1;
  380. }
  381.  
  382. ocmd@2:fl,fraktionsliste(playerid, params[])
  383. {
  384.     if(!pInfo[playerid][pLogged]) return SendClientMessage(playerid, COLOR_RED, "[SERVER]{FFFFFF} Es ist ein Fehler aufgetreten! Bitte melde dich bei einem Teammitglied!");
  385.     if(pInfo[playerid][pAdmin] < 1 || pInfo[playerid][pAdmin] > 5) return SendClientMessage(playerid, COLOR_RED, "[SERVER]{FFFFFF} Du verfügst nicht die nötigen Berechtiungen!");
  386.     new string[512], var;
  387.     if(!Adminduty[playerid])
  388.     {
  389.         format(string, sizeof(string),"[SERVER]{FFFFFF} Du bist nicht als %s im Dienst!", GetAdminRang(playerid));
  390.         SendClientMessage(playerid, COLOR_RED, string);
  391.         return 1;
  392.     }
  393.     for(new i = 1; i<MAX_FRAKTIONEN; i++)
  394.     {
  395.         if(fInfo[i][f_ID] == 0) continue;
  396.         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]);
  397.         else format(string, sizeof(string), "%s%d - %s (Abk.: %s)\n", string, fInfo[i][f_ID], fInfo[i][f_Name], fInfo[i][f_Abkuerzung]);
  398.         var++;
  399.     }
  400.     ShowPlayerDialog(playerid, DIALOG_FL, DIALOG_STYLE_LIST, "{FFFFFF}Fraktionsliste", string, "{FFFFFF}Schließen", "");
  401.     return 1;
  402. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement