Advertisement
Guest User

Dynamisches Fraksystem SQLite by Music4You

a guest
Sep 28th, 2013
778
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 46.81 KB | None | 0 0
  1. /*
  2. ====================================================================================================================================
  3. Dynamisches Fraktionssystem by Items4Landwirt aka. Music4You
  4. Es ist verboten meinen Namen zu löschen, es sieht ja eh keiner ;)
  5. Es ist verboten, das script neu zu releasen oder zu verkaufen, egal wie weit es editiert ist.
  6.  
  7. Falls ihr hilfe beim einstieg von SQLite braucht, hier 2 Links.
  8. http://wiki.sa-mp.com/wiki/SQLite
  9. http://forum.sa-mp.de/gta-multiplayer-mods/san-andreas-multiplayer/scripting-base/tutorials/121557-sqlite-die-alternative-zu-mysql/
  10.  
  11. Schaut doch auch mal auf meinem YT Kanal vorbei:
  12. http://www.youtube.com/user/Music4You43
  13.  
  14. Viel Spaß mit dem Script.
  15. ====================================================================================================================================
  16. */
  17.  
  18. #define FILTERSCRIPT
  19. //=============== Includes ===============
  20. #include <a_samp>
  21. #include <ocmd>
  22. #include <sscanf2>
  23. //=============== Defines ===============
  24. #define MAX_FRAKT 10
  25. #define MAX_FCARS 100
  26. #define MAX_PICK  10
  27.  
  28. #define SCM SendClientMessage
  29. #define SCMT SendClientMessageToAll
  30.  
  31. #define MSGTOALL // Aktiviert messages für alle user (/makeleader etc.)
  32. #define SKIN
  33.  
  34. #define rot 0xFF0A00FF
  35. #define gruen 0x4BB400FF
  36. #define orange 0xFF9600FF
  37. #define grau 0xB4B4B4FF
  38. #define department 0xFF6259D4
  39. #define fchat 0x00FFFFFF
  40. #define radio 0xB900E4A6
  41.  
  42. //=============== News ===============
  43. new DB:Data,fraks,wahl[MAX_PLAYERS],money[MAX_PLAYERS],duty[MAX_PLAYERS],heals[MAX_PLAYERS],healman,healgeld[MAX_PLAYERS];
  44.  
  45. new VehicleName[212][] =
  46. {
  47.     {"Landstalker"},{"Bravura"},{"Buffalo"},{"Linerunner"},{"Perrenial"},{"Sentinel"},{"Dumper"},{"Firetruck"},{"Trashmaster"},{"Stretch"},{"Manana"},{"Infernus"},{"Voodoo"},{"Pony"},{"Mule"},{"Cheetah"},
  48.     {"Ambulance"},{"Leviathan"},{"Moonbeam"},{"Esperanto"},{"Taxi"},{"Washington"},{"Bobcat"},{"MrWhoopee"},{"BFInjection"},{"Hunter"},{"Premier"},{"Enforcer"},{"Securicar"},{"Banshee"},{"Predator"},
  49.     {"Bus"},{"Rhino"},{"Barracks"},{"Hotknife"},{"Trailer1"},{"Previon"},{"Coach"},{"Cabbie"},{"Stallion"},{"Rumpo"},{"RCBandit"},{"Romero"},{"Packer"},{"Monster"},{"Admiral"},{"Squalo"},{"Seasparrow"},
  50.     {"Pizzaboy"},{"Tram"},{"Trailer2"},{"Turismo"},{"Speeder"},{"Reefer"},{"Tropic"},{"Flatbed"},{"Yankee"},{"Caddy"},{"Solair"},{"BerkleyRCVan"},{"Skimmer"},{"PCJ-600"},{"Faggio"},{"Freeway"},
  51.     {"RCBaron"},{"RCRaider"},{"Glendale"},{"Oceanic"},{"Sanchez"},{"Sparrow"},{"Patriot"},{"Quad"},{"Coastguard"},{"Dinghy"},{"Hermes"},{"Sabre"},{"Rustler"},{"ZR-350"},{"Walton"},{"Regina"},{"Comet"},
  52.     {"BMX"},{"Burrito"},{"Camper"},{"Marquis"},{"Baggage"},{"Dozer"},{"Maverick"},{"NewsChopper"},{"Rancher"},{"FBIRancher"},{"Virgo"},{"Greenwood"},{"Jetmax"},{"Hotring"},{"Sandking"},{"Blista Compact"},
  53.     {"Police Maverick"},{"Boxville"},{"Benson"},{"Mesa"},{"RCGoblin"},{"HotringRacer A"},{"HotringRacer B"},{"BloodringBanger"},{"Rancher"},{"SuperGT"},{"Elegant"},{"Journey"},{"Bike"},{"MountainBike"},
  54.     {"Beagle"},{"Cropdust"},{"Stunt"},{"Tanker"},{"Roadtrain"},{"Nebula"},{"Majestic"},{"Buccaneer"},{"Shamal"},{"Hydra"},{"FCR-900"},{"NRG-500"},{"HPV1000"},{"CementTruck"},{"TowTruck"},{"Fortune"},
  55.     {"Cadrona"},{"FBITruck"},{"Willard"},{"Forklift"},{"Tractor"},{"Combine"},{"Feltzer"},{"Remington"},{"Slamvan"},{"Blade"},{"Freight"},{"Streak"},{"Vortex"},{"Vincent"},{"Bullet"},{"Clover"},
  56.     {"Sadler"},{"FiretruckLA"},{"Hustler"},{"Intruder"},{"Primo"},{"Cargobob"},{"Tampa"},{"Sunrise"},{"Merit"},{"Utility"},{"Nevada"},{"Yosemite"},{"Windsor"},{"MonsterA"},{"MonsterB"},{"Uranus"},
  57.     {"Jester"},{"Sultan"},{"Stratum"},{"Elegy"},{"Raindance"},{"RC Tiger"},{"Flash"},{"Tahoma"},{"Savanna"},{"Bandito"},{"FreightFlat"},{"SreakCarriage"},{"Kart"},{"Mower"},{"Duneride"},{"Sweeper"},
  58.     {"Broadway"},{"Tornado"},{"AT-400"},{"DFT-30"},{"Huntley"},{"Stafford"},{"BF-400"},{"Newsvan"},{"Tug"},{"Trailer 3"},{"Emperor"},{"Wayfarer"},{"Euros"},{"Hotdog"},{"Club"},{"FreightCarriage"},
  59.     {"Trailer3"},{"Andromada"},{"Dodo"},{"RCCam"},{"Launch"},{"PoliceCar(LSPD)"},{"PoliceCar(SFPD)"},{"PoliceCar(LVPD)"},{"PoliceRanger"},{"Picador"},{"S.W.A.T.Van"},{"Alpha"},{"Phoenix"},
  60.     {"Glendale"},{"Sadler"},{"LuggageTrailerA"},{"LuggageTrailerB"},{"StairTrailer"},{"Boxville"},{"FarmPlow"},{"UtilityTrailer"}
  61. };
  62.  
  63.  
  64. //=============== Enums ===============
  65. enum frakt
  66. {
  67.     bool:erstellt,
  68.     Frakid,
  69.     Frakname[128],
  70.     Leader[MAX_PLAYER_NAME],
  71.     Gehalt1,
  72.     Gehalt2,
  73.     Gehalt3,
  74.     Gehalt4,
  75.     Gehalt5,
  76.     Gehalt6,
  77.     Member,
  78.     Kasse,
  79.     skinl,
  80.     skin,
  81.     frakart,
  82.     dutys,
  83. }
  84. new FrakInfo[MAX_FRAKT][frakt];
  85.  
  86. enum usr
  87. {
  88.     Name[MAX_PLAYER_NAME],
  89.     Frak,
  90.     Leader,
  91.     invite,
  92.     paytime,
  93.     Rang,
  94.     wanted,
  95.     jailtime,
  96.     jailed,
  97. }
  98. new UserInfo[MAX_PLAYERS][usr];
  99.  
  100. enum car
  101. {
  102.     Frakid,
  103.     bool:erstellt,
  104.     Float:x,
  105.     Float:y,
  106.     Float:z,
  107.     Float:a,
  108.     carobj,
  109.     modelids,
  110.     colors,
  111.     Rang,
  112. }
  113. new FrakCar[MAX_FCARS][car];
  114.  
  115. enum pick
  116. {
  117.     bool:erstellt,
  118.     Float:px,
  119.     Float:py,
  120.     Float:pz,
  121.     pickobj,
  122.     Text3D:pLabel,
  123.     art,
  124.     fraktions,
  125. }
  126. new PickInfo[MAX_PICK][pick];
  127.  
  128. enum
  129. {
  130.     DIALOG_FRAK=900,
  131.     faction,
  132.     geld,
  133.     ausw,
  134.     cars,
  135.     kassse,
  136.     eingabe,
  137.     member,
  138. }
  139.  
  140. public OnFilterScriptInit()
  141. {
  142.     print("\n=============================================================");
  143.     print(" Dynamisches Fraktions system by Items4Landwirt aka Music4You");
  144.     print("=============================================================\n");
  145.    
  146.     Data = db_open("Frak.db");
  147.     db_query(Data,"CREATE TABLE IF NOT EXISTS `frak`(`ID`,`Frakid`,`Frakname`,`Leader`,`Gehalt1`,`Gehalt2`,`Gehalt3`,`Gehalt4`,`Gehalt5`,`Gehalt6`,`Member`,`Kasse`,`skinl`,`skin`,`frakart`,`dutys`)");
  148.     db_query(Data,"CREATE TABLE IF NOT EXISTS `user`(`Name`,`Frak`,`Leader`,`invite`,`paytime`,`Rang`,`wanted`,`jailtime`,`jailed`)");
  149.     db_query(Data,"CREATE TABLE IF NOT EXISTS `cars`(`ID`,`Frakid`,`Model`,`Color`,`Rang`,`X`,`Y`,`Z`,`A`)");
  150.     db_query(Data,"CREATE TABLE IF NOT EXISTS `pickup`(`ID`,`X`,`Y`,`Z`,`art`,`fraktions`)");
  151.    
  152.     loadfrak();
  153.     SetTimer("jail",60000,true);
  154.     return 1;
  155. }
  156.  
  157. public OnFilterScriptExit()
  158. {
  159.     for(new i=0;i<MAX_PLAYERS;i++)
  160.     {
  161.         SaveUser(i);
  162.     }
  163.     return 1;
  164. }
  165.  
  166. public OnPlayerConnect(playerid)
  167. {
  168.     new DBResult:Result,str[75],query[256],rows,i=0,string[128];
  169.     #pragma unused rows
  170.     format(str,sizeof(str),"SELECT * FROM `user` where NAME = '%s'",SpielerName(playerid));
  171.     Result=db_query(Data,str);
  172.     if(db_num_rows(Result) > 0){}
  173.     else
  174.     {
  175.         format(query,sizeof(query),"INSERT INTO `user` (`Name`,`Frak`,`Leader`,`invite`,`paytime`,`Rang`,`wanted`,`jailtime`,`jailed`) VALUES ('%s','0','0','0','0','0','0','0','0')",SpielerName(playerid));
  176.         db_query(Data,query);
  177.     }
  178.     db_get_field_assoc(Result,"Frak",str,sizeof(str));
  179.     UserInfo[playerid][Frak]=strval(str);
  180.     db_get_field_assoc(Result,"Leader",str,sizeof(str));
  181.     UserInfo[playerid][Leader]=strval(str);
  182.     db_get_field_assoc(Result,"invite",str,sizeof(str));
  183.     UserInfo[playerid][invite]=strval(str);
  184.     db_get_field_assoc(Result,"paytime",str,sizeof(str));
  185.     UserInfo[playerid][paytime]=strval(str);
  186.     db_get_field_assoc(Result,"Rang",str,sizeof(str));
  187.     UserInfo[playerid][Rang]=strval(str);
  188.     db_get_field_assoc(Result,"wanted",str,sizeof(str));
  189.     UserInfo[playerid][wanted]=strval(str);
  190.     db_get_field_assoc(Result,"jailtime",str,sizeof(str));
  191.     UserInfo[playerid][jailtime]=strval(str);
  192.     db_get_field_assoc(Result,"jailed",str,sizeof(str));
  193.     UserInfo[playerid][jailed]=strval(str);
  194.    
  195.     #if defined MSGTOALL
  196.         for(;i<MAX_PLAYERS;i++)
  197.         {
  198.             if(UserInfo[i][Frak]==UserInfo[playerid][Frak])
  199.             {
  200.                 format(string,sizeof(string),"[Fraktion] %s hat sich eingeloggt",SpielerName(playerid));
  201.                 SCM(i,orange,string);
  202.                 return 1;
  203.             }
  204.         }
  205.     #endif  
  206.     db_free_result(Result);
  207.     SetTimerEx("FrakPay", 60000, true, "i", playerid);
  208.     return 1;
  209. }
  210. public OnPlayerDisconnect(playerid)
  211. {
  212.     SaveUser(playerid);
  213.     return 1;
  214. }
  215. public OnPlayerSpawn(playerid)
  216. {
  217.     #if defined SKIN
  218.         if(UserInfo[playerid][Frak]>=1)
  219.         {
  220.             SetPlayerSkin(playerid,FrakInfo[UserInfo[playerid][Frak]][skin]);
  221.         }
  222.         else if(UserInfo[playerid][Leader]==1)
  223.         {
  224.             SetPlayerSkin(playerid,FrakInfo[UserInfo[playerid][Frak]][skinl]);
  225.         }
  226.         else return 1;
  227.     #endif
  228.     return 1;
  229. }
  230. public OnPlayerDeath(playerid,killerid,reason)
  231. {
  232.     duty[playerid]=0;
  233.     return 1;
  234. }
  235. //================================================ Create Frak ================================================
  236. ocmd:cfrak(playerid,params[])
  237. {
  238.     new frakids,mskin,dut,arts,lskin,frakname[128],query[256],query1[256],string[128];
  239.     //if(!IsPlayerAdmin(playerid)) return SCM(playerid,rot,"Du bist nicht befugt!");
  240.     if(sscanf(params,"s[32]dddd",frakname,arts,dut,lskin,mskin)) return SCM(playerid,grau,"Benutze: /cfrak [Frakname][Frakart 1-3][Duty 1=ja|0=Nein][Leader-Skin ID][Member-Skin ID]");
  241.    
  242.     for(new i=1;i<MAX_FRAKT;i++)
  243.     {
  244.         if(FrakInfo[i][erstellt] == true)continue;
  245.         FrakInfo[i][erstellt] = true;
  246.         FrakInfo[i][Frakid]=frakids;
  247.         FrakInfo[i][Frakname]=frakname;
  248.         FrakInfo[i][skinl]=lskin;
  249.         FrakInfo[i][skin]=mskin;
  250.         FrakInfo[i][frakart]=arts;
  251.         FrakInfo[i][dutys]=dut;
  252.        
  253.         format(query,sizeof(query),"INSERT INTO `frak` (`ID`, `Frakid`,`Frakname`,`Leader`,`Member`,`Kasse`,`skin`,`skinl`,`frakart`,`dutys`) VALUES ('%i','%i','%s','0','0','10000','%d','%d','%d','%d')",i,i,frakname,mskin,lskin,arts,dut);
  254.         format(query1,sizeof(query1),"UPDATE `frak` SET `Gehalt1`='0',`Gehalt2`='0',`Gehalt3`='0',`Gehalt4`='0',`Gehalt5`='0',`Gehalt6`='0' WHERE `Frakname`='%s'",frakname);
  255.         db_query(Data,query);
  256.         db_query(Data,query1);
  257.        
  258.         format(string,sizeof(string),"Du hast die Fraktion %s mit der ID %d erstellt",frakname,i);
  259.         SCM(playerid,gruen,string);
  260.         return 1;
  261.     }
  262.     return 1;
  263. }
  264. ocmd:dfrak(playerid,params[])
  265. {
  266.     new frakname[128],query[256],string[128];
  267.     //if(!IsPlayerAdmin(playerid)) return SCM(playerid,rot,"Du bist nicht befugt!");
  268.     if(sscanf(params,"s[32]",frakname)) return SCM(playerid,grau,"Benutze: /dfrak [Frakname]");
  269.  
  270.     format(query,sizeof(query),"DELETE FROM `frak` WHERE `Name`='%s'",frakname);
  271.     db_query(Data,query);
  272.     format(string,sizeof(string),"Du hast die Fraktion %s gelöscht",frakname);
  273.     SCM(playerid,gruen,string);
  274.     return 1;
  275. }
  276. //================================================ Adminbefehle (Rcon) ================================================
  277. ocmd:setleader(playerid,params[])
  278. {
  279.     new pID,fid,query[256],query1[256],str[128],rows,string[128];
  280.     #pragma unused rows
  281.     //if(!IsPlayerAdmin(playerid)) return SCM(playerid,rot,"Du bist nicht befugt!");
  282.     if(sscanf(params,"ud",pID,fid)) return SCM(playerid,grau,"Benutze: /setleader [Name|ID][Frak-ID]");
  283.     if(fid==0)return SCM(playerid,rot,"Benutze: /entleader!");
  284.     UserInfo[pID][Frak]=fid;
  285.     UserInfo[pID][Leader]=1;
  286.     FrakInfo[fid][Member]+=1;
  287.     format(query,sizeof(query),"UPDATE `frak` SET `Leader`='%s',`Member`='%d' WHERE `Frakid`='%d'",SpielerName(pID),FrakInfo[fid][Member],fid);
  288.     format(query1,sizeof(query1),"UPDATE `user` SET `Frak`='%d',`Leader`='1' WHERE `Name`='%s'",fid,SpielerName(pID));
  289.     db_query(Data,query);
  290.     db_query(Data,query1);
  291.     SetPlayerSkin(pID,FrakInfo[fid][skin]);
  292.    
  293.     #if defined MSGTOALL
  294.         format(str,MAX_PLAYER_NAME,"%s",FrakInfo[fid][Frakname]);
  295.         format(string,sizeof(string),"Admin %s hat den Spieler %s zum Leader der Fraktion %s Ernannt",SpielerName(playerid),SpielerName(pID),str);
  296.         SCMT(orange,string);
  297.     #endif
  298.     return 1;
  299. }
  300. ocmd:entleader(playerid,params[])
  301. {
  302.     new pID,string1[128],str[128],DBResult:Result,rows,query[256],string[128];
  303.     #pragma unused rows
  304.     //if(!IsPlayerAdmin(playerid)) return SCM(playerid,rot,"Du bist nicht befugt!");
  305.     if(sscanf(params,"u",pID)) return SCM(playerid,grau,"Benutze: /entleader [Name|ID]");
  306.     UserInfo[pID][Leader]=0;
  307.     SetPlayerSkin(pID,0);
  308.    
  309.     format(query,sizeof(query),"UPDATE `frak` SET `Leader`='0' WHERE `Leader`='%s'",SpielerName(playerid));
  310.     db_query(Data,query);
  311.  
  312.     #if defined MSGTOALL
  313.         format(str,sizeof(str),"SELECT * FROM `frak` WHERE `Leader` = '%s'",SpielerName(pID));
  314.         Result = db_query(Data,str);
  315.         rows = db_num_rows(Result);
  316.  
  317.         db_get_field_assoc(Result,"Frakname",str,sizeof(str));
  318.         format(string1,MAX_PLAYER_NAME,"%s",str);
  319.  
  320.         format(string,sizeof(string),"Admin %s hat den Spieler %s aus der Fraktion %s Entleadert",SpielerName(playerid),SpielerName(pID),string1);
  321.         SCMT(orange,string);
  322.     #endif
  323.     return 1;
  324. }
  325. ocmd:resetfkassen(playerid,params[])
  326. {
  327.     new query[128],i=1;
  328.     //if(!IsPlayerAdmin(playerid)) return SCM(playerid,rot,"Du bist nicht befugt!");
  329.     for(;i<MAX_FRAKT;i++)
  330.     {
  331.         FrakInfo[i][Kasse]=10000;
  332.     }
  333.     format(query,sizeof(query),"UPDATE `frak` SET `Kasse`='1000'");
  334.     SCM(playerid,gruen,"Du hast alle Fraktionskassen auf 1000$ Resettet");
  335.     db_query(Data,query);
  336. }
  337. //================================================ Allgemeine Frakbefehle ================================================
  338. ocmd:showfraks(playerid,params[])
  339. {
  340.     new string1[128],string2[1000],str[128],string[128],DBResult:Result,rows,i=1;
  341.     #pragma unused rows
  342.     for(;i<MAX_FRAKT;i++)
  343.     {
  344.         format(str,sizeof(str),"SELECT * FROM `frak` WHERE `ID`='%d'",i);
  345.         Result = db_query(Data,str);
  346.         rows = db_num_rows(Result);
  347.         if(rows == 0)continue;
  348.  
  349.         db_get_field_assoc(Result,"Frakname",str,sizeof(str));
  350.         format(string1,MAX_PLAYER_NAME,"%s",str);
  351.         db_get_field_assoc(Result,"Leader",str,sizeof(str));
  352.         format(string2,MAX_PLAYER_NAME,"%s",str);
  353.         db_get_field_assoc(Result,"Member",str,sizeof(str));
  354.         FrakInfo[i][Member]=strval(str);
  355.  
  356.         format(string,sizeof(string),"%sFraktion: %s, Leader:%s, Memberstand: %i\n",string,string1,string2,FrakInfo[i][Member]);
  357.     }
  358.     SCM(playerid,gruen,string);
  359.     db_free_result(Result);
  360.     return 1;
  361. }
  362. ocmd:invite(playerid,params[])
  363. {
  364.     if(UserInfo[playerid][Frak]>=1)
  365.     {
  366.         if(UserInfo[playerid][Leader]==1)
  367.         {
  368.             new pID,string1[128],string[128];
  369.             if(sscanf(params,"u",pID)) return SCM(playerid,grau,"Benutze: /invite [Name|ID]");
  370.             if(UserInfo[pID][Frak]>=1)return SCM(playerid,rot,"Der Spieler ist bereits in einer Fraktion!");
  371.             UserInfo[pID][invite]=UserInfo[playerid][Frak];
  372.            
  373.             format(string1,MAX_PLAYER_NAME,"%s",UserInfo[playerid][Frak]);
  374.  
  375.             format(string,sizeof(string),"Du wurdest vom Leader %s in die Fraktion %s eingaladen, Benutze /acceptfrak",SpielerName(playerid),string1);
  376.             SCM(pID,gruen,string);
  377.         }
  378.         else return SCM(playerid,rot,"Du bist kein Leader!");
  379.     }
  380.     else return SCM(playerid,rot,"Du bist in keiner Fraktion!");
  381.     return 1;
  382. }
  383. ocmd:acceptinvite(playerid,params[])
  384. {
  385.     if(UserInfo[playerid][invite]>=1)
  386.     {
  387.         new string[128],query[128],string1[127],string2[128];
  388.         UserInfo[playerid][Frak]=UserInfo[playerid][invite];
  389.        
  390.         format(string,MAX_PLAYER_NAME,"%s",FrakInfo[UserInfo[playerid][invite]][Frakname]);
  391.  
  392.         format(string2,sizeof(string2),"Du hast die Einladung in die Fraktion: %s angenommen",string);
  393.         SCM(playerid,gruen,string2);
  394.        
  395.         FrakInfo[UserInfo[playerid][Frak]][Member]+=1;
  396.         format(query,sizeof(query),"UPDATE `frak` SET `Member`='%d' WHERE `Frakid`='%d'",FrakInfo[UserInfo[playerid][Frak]][Member],UserInfo[playerid][Frak]);
  397.         db_query(Data,query);
  398.         SetPlayerSkin(playerid,FrakInfo[UserInfo[playerid][Frak]][skin]);
  399.        
  400.         for(new i=0;i<MAX_PLAYERS;i++)
  401.         {
  402.             if(UserInfo[i][Frak]==UserInfo[playerid][Frak])
  403.             {
  404.                 format(string1,sizeof(string1),"%s hat die einladung in eure Fraktion angenommen",SpielerName(playerid));
  405.                 SCM(i,orange,string1);
  406.                 return 1;
  407.             }
  408.         }
  409.         UserInfo[playerid][invite]=0;
  410.     }
  411.     else return SCM(playerid,rot,"Du wurdest in keine Fraktion invitet");
  412.     return 1;
  413. }
  414. ocmd:uninvite(playerid,params[])
  415. {
  416.     if(UserInfo[playerid][Frak]>=1)
  417.     {
  418.         if(UserInfo[playerid][Leader]==1)
  419.         {
  420.             new pID,string1[128],query[128],string[128];
  421.             if(sscanf(params,"u",pID)) return SCM(playerid,grau,"Benutze: /uninvite [Name|ID]");
  422.             if(UserInfo[pID][Frak]!=UserInfo[playerid][Frak])return SCM(playerid,rot,"Der Spieler ist nicht in deiner Fraktion!");
  423.             if(UserInfo[pID][Frak]!=0)return SCM(playerid,rot,"Du kannst keine Leader entlassen!");
  424.  
  425.             format(string1,MAX_PLAYER_NAME,"%s",UserInfo[playerid][Frak]);
  426.             format(string,sizeof(string),"Du wurdest vom Leader %s aus der Fraktion %s entlassen!",SpielerName(playerid),string1);
  427.             SCM(pID,rot,string);
  428.            
  429.             FrakInfo[UserInfo[playerid][Frak]][Member]-=1;
  430.             format(query,sizeof(query),"UPDATE `frak` SET `Member`='%d' WHERE `Frakid`='%d'",FrakInfo[UserInfo[playerid][Frak]][Member],UserInfo[playerid][Frak]);
  431.             db_query(Data,query);
  432.            
  433.             UserInfo[pID][Frak]=0;
  434.             SetPlayerSkin(playerid,0);
  435.         }
  436.         else return SCM(playerid,rot,"Du bist kein Leader!");
  437.     }
  438.     else return SCM(playerid,rot,"Du bist in keiner Fraktion!");
  439.     return 1;
  440. }
  441. ocmd:faction(playerid,params[])
  442. {
  443.     if(UserInfo[playerid][Frak]>=1)
  444.     {
  445.         if(UserInfo[playerid][Leader]==1)
  446.         {
  447.             ShowPlayerDialog(playerid,faction,DIALOG_STYLE_LIST,"Fraktionsverwaltung","Gehalt ändern\nFraktionsfahrzeuge\nFraktions Kasse","Weiter","Abbrechen");
  448.         }
  449.         else return SCM(playerid,rot,"Du bist kein Leader!");
  450.     }
  451.     else return SCM(playerid,rot,"Du bist in keiner Fraktion!");
  452.     return 1;
  453. }
  454. ocmd:giverang(playerid,params[])
  455. {
  456.     if(UserInfo[playerid][Frak]>=1)
  457.     {
  458.         if(UserInfo[playerid][Leader]==1)
  459.         {
  460.             new pID,rank,string[128],string1[128];
  461.             if(sscanf(params,"ud",pID,rank)) return SCM(playerid,grau,"Benutze: /giverang [Name|ID][Rang 1-6]");
  462.             if(UserInfo[pID][Frak]!=UserInfo[playerid][Frak])return SCM(playerid,rot,"Der Spieler ist nicht in deiner Fraktion!");
  463.             if(rank >6) return SCM(playerid,rot,"Es gibt nur 6 Ränge");
  464.             UserInfo[pID][Rang]=rank;
  465.  
  466.             format(string,sizeof(string),"Leader %s hat dir den Rang %d gegeben!",SpielerName(playerid),rank);
  467.             SCM(pID,orange,string);
  468.             format(string1,sizeof(string1),"Du hast %s den Rang %d gegeben",SpielerName(pID),rank);
  469.             SCM(playerid,gruen,string1);
  470.         }
  471.         else return SCM(playerid,rot,"Du bist kein Leader!");
  472.     }
  473.     else return SCM(playerid,rot,"Du bist in keiner Fraktion!");
  474.     return 1;
  475. }
  476. ocmd:duty(playerid,params[])
  477. {
  478.     new id = IsPick(playerid);
  479.     if(UserInfo[playerid][Frak]>=1)
  480.     {
  481.         if(FrakInfo[UserInfo[playerid][Frak]][dutys]==1)
  482.         {
  483.             if(id != -1)
  484.             {
  485.                 if(PickInfo[id][art]==2)
  486.                 {
  487.                     if(PickInfo[id][fraktions]!=UserInfo[playerid][Frak]) return SCM(playerid,rot,"Das Pickup gehört nicht zu eurer Fraktion!");
  488.                     if(duty[playerid]==1)
  489.                     {
  490.                         duty[playerid]=0;
  491.                         SCM(playerid,gruen,"Du bist nun nichtmehr im Dienst");
  492.                     }
  493.                     else
  494.                     {
  495.                         duty[playerid]=1;
  496.                         SCM(playerid,gruen,"Du bist nun im Dienst");
  497.                     }
  498.                 }
  499.                 else return SCM(playerid,rot,"Du bist an keinem Duty Punkt!");
  500.             }
  501.             else return SCM(playerid,rot,"Du bist an keinem Pickup!");
  502.         }
  503.         else return SCM(playerid,rot,"Du kannst nicht in den Dienst gehen!");
  504.     }
  505.     else return SCM(playerid,rot,"Du bist in keiner Fraktion!");
  506.     return 1;
  507. }
  508. ocmd:member(playerid,params[])
  509. {
  510.     new string[1000];
  511.     if(UserInfo[playerid][Frak]>=1)
  512.     {
  513.         for(new i=0;i<MAX_PLAYERS;i++)
  514.         {
  515.             if(UserInfo[i][Frak]==UserInfo[playerid][Frak])
  516.             {
  517.                 format(string,sizeof(string),"%sName: %s, Rang: %d\n",string,SpielerName(i),UserInfo[i][Rang]);
  518.             }
  519.         }
  520.         ShowPlayerDialog(playerid,member,DIALOG_STYLE_MSGBOX,"Fraktionsmember",string,"Ok","");
  521.     }
  522.     else return SCM(playerid,rot,"Du bist in keiner Fraktion!");
  523.     return 1;
  524. }
  525. ocmd:f(playerid,params[])
  526. {
  527.     new string[128],text[128],i=0;
  528.     if(UserInfo[playerid][Frak]>=1)
  529.     {
  530.         if(sscanf(params,"s[128]",text))return SCM(playerid,grau,"Benutze: /f [Text]");
  531.         for(;i<MAX_PLAYERS;i++)
  532.         {
  533.             if(UserInfo[i][Frak]==UserInfo[playerid][Frak])
  534.             {
  535.                 format(string,sizeof(string),"[Fraktion] %s",text);
  536.                 SCM(i,fchat,string);
  537.                 return 1;
  538.             }
  539.         }
  540.     }
  541.     else return SCM(playerid,rot,"Du bist in keiner Fraktion!");
  542.     return 1;
  543. }
  544. ocmd:d(playerid,params[])
  545. {
  546.     new string[128],text[128],i=0;
  547.     if(UserInfo[playerid][Frak]>=1)
  548.     {
  549.         if(FrakInfo[UserInfo[playerid][Frak]][frakart]==1||FrakInfo[UserInfo[playerid][Frak]][frakart]==2)
  550.         {
  551.             if(sscanf(params,"s[128]",text))return SCM(playerid,grau,"Benutze: /d [Text]");
  552.             for(;i<MAX_PLAYERS;i++)
  553.             {
  554.                 if(FrakInfo[UserInfo[i][Frak]][frakart]==1 || FrakInfo[UserInfo[i][Frak]][frakart]==2)
  555.                 {
  556.                     format(string,sizeof(string),"[Department] %s",text);
  557.                     SCM(i,department,string);
  558.                     return 1;
  559.                 }
  560.             }
  561.         }
  562.         else return SCM(playerid,rot,"Du bist nicht befugt!");
  563.     }
  564.     else return SCM(playerid,rot,"Du bist in keiner Fraktion!");
  565.     return 1;
  566. }
  567. //================================================ Fraktions Car System ================================================
  568. ocmd:cfcar(playerid,params[])
  569. {
  570.     new frakid,modelid,color,query[256],Float:pX,Float:pY,Float:pZ,Float:pA,string[128],frakmsg[128];
  571.     //if(!IsPlayerAdmin(playerid)) return SCM(playerid,rot,"Du bist nicht befugt!");
  572.     if(sscanf(params,"ddd",frakid,modelid,color)) return SCM(playerid,grau,"Benutze: /cfcar [Frakid][Fahrzeug ID][Farb ID]");
  573.  
  574.     for(new i=1;i<MAX_FRAKT;i++)
  575.     {
  576.         GetPlayerPos(playerid,pX,pY,pZ);
  577.         GetPlayerFacingAngle(playerid,pA);
  578.         if(FrakCar[i][erstellt] == true)continue;
  579.         FrakCar[i][erstellt]=true;
  580.         FrakCar[i][x]=pX,
  581.         FrakCar[i][y]=pY,
  582.         FrakCar[i][z]=pZ,
  583.         FrakCar[i][a]=pA,
  584.         FrakCar[i][modelids]=modelid,
  585.         FrakCar[i][colors]=color,
  586.  
  587.         format(query,sizeof(query),"INSERT INTO `cars` (`ID`,`Frakid`,`Model`,`Color`,`Rang`,`X`,`Y`,`Z`,`A`) VALUES ('%i','%d','%d','%d','0','%f','%f','%f','%f')",i,frakid,modelid,color,pX,pY,pZ,pA);
  588.         db_query(Data,query);
  589.        
  590.         FrakCar[i][carobj]=AddStaticVehicleEx(FrakCar[i][modelids],FrakCar[i][x],FrakCar[i][y],FrakCar[i][z],FrakCar[i][a],FrakCar[i][colors],FrakCar[i][colors],-1);
  591.         format(string,sizeof(string),"Du hast einen %s für die Fraktion %s erstellt",VehicleName[modelid-400],FrakInfo[frakid][Frakname]);
  592.         SCM(playerid,gruen,string);
  593.         for(new o=0;o<MAX_PLAYERS;o++)
  594.         {
  595.             if(UserInfo[o][Frak]==frakid)
  596.             {
  597.                 format(frakmsg,sizeof(frakmsg),"Admin %s hat für eure Fraktion einen %s erstellt",SpielerName(playerid),VehicleName[modelid-400]);
  598.                 SCM(o,orange,frakmsg);
  599.                 return 1;
  600.             }
  601.         }
  602.         return 1;
  603.     }
  604.     return 1;
  605. }
  606. ocmd:delfcar(playerid,params[])
  607. {
  608.     new query[128],i=1,veh=GetPlayerVehicleID(playerid);
  609.     //if(!IsPlayerAdmin(playerid)) return SCM(playerid,rot,"Du bist nicht befugt!");
  610.     if(!IsPlayerInAnyVehicle(playerid)) return SCM(playerid,rot,"Du bist in keinem Fahrzeug");
  611.    
  612.     for(;i<MAX_FRAKT;i++)
  613.     {
  614.         if(veh==FrakCar[i][carobj])
  615.         {
  616.             format(query,sizeof(query),"DELETE FROM `cars` WHERE `ID`='%d'",i);
  617.             db_query(Data,query);
  618.             SCM(playerid,gruen,"Fraktionsfahrzeug erfolgreich Gelöscht!");
  619.             DestroyVehicle(FrakCar[i][carobj]);
  620.         }
  621.         else return SCM(playerid,rot,"Das ist kein Fraktionsfahrzeug!");
  622.     }
  623.     i=0;
  624.     return 1;
  625. }
  626. ocmd:fpark(playerid,params[])
  627. {
  628.     new query[128],i=1,veh=GetPlayerVehicleID(playerid),Float:xx,Float:yy,Float:zz,Float:aa;
  629.     //if(!IsPlayerAdmin(playerid)) return SCM(playerid,rot,"Du bist nicht befugt!");
  630.     if(UserInfo[playerid][Leader]!=1) return SCM(playerid,rot,"Du bist kein Leader");
  631.     if(!IsPlayerInAnyVehicle(playerid)) return SCM(playerid,rot,"Du bist in keinem Fahrzeug");
  632.     GetVehiclePos(veh, xx, yy, zz);
  633.     GetVehicleZAngle(veh,aa);
  634.     for(;i<MAX_FRAKT;i++)
  635.     {
  636.         if(veh==FrakCar[i][carobj])
  637.         {
  638.             if(FrakCar[i][Frakid]!=UserInfo[playerid][Frak])return SCM(playerid,rot,"Das Fahrzeug gehört nicht zu deiner Fraktion!");
  639.             format(query,sizeof(query),"UPDATE `cars` SET `X`='%f',`Y`='%f',`Z`='%f',`A`='%f' WHERE `ID`='%i'",xx,yy,zz,aa,i);
  640.             db_query(Data,query);
  641.             SCM(playerid,gruen,"Fraktionsfahrzeug erfolgreich Umgeparkt!");
  642.         }
  643.     }
  644.     i=0;
  645.     return 1;
  646. }
  647. //================================================ Pickup Befehle ================================================
  648. ocmd:cpick(playerid,params[])
  649. {
  650.     new Float:ppx,Float:ppy,Float:ppz, query[256],type,Text[256],i=1,frakids;
  651.     //if(!IsPlayerAdmin(playerid)) return SCM(playerid,rot,"Du bist nicht befugt!");
  652.     if(sscanf(params,"dd",type,frakids)) return SCM(playerid,grau,"Benutze: /cpick [Pickup Typ][Frakid]");
  653.     GetPlayerPos(playerid, ppx, ppy, ppz);
  654.     for(;i < MAX_PICK; i++)
  655.     {
  656.         if(PickInfo[i][erstellt] == true)continue;
  657.         PickInfo[i][erstellt] = true;
  658.         PickInfo[i][px] = ppx;
  659.         PickInfo[i][py] = ppy;
  660.         PickInfo[i][pz] = ppz;
  661.         PickInfo[i][art] = type;
  662.         PickInfo[i][fraktions] = frakids;
  663.         PickInfo[i][pickobj] = CreatePickup(1239, 1, PickInfo[i][px], PickInfo[i][py], PickInfo[i][pz]);
  664.        
  665.         if(type==1)
  666.         {
  667.             format(Text,sizeof(Text),"Arrest Pickup\n/arrest um den Spieler zu arresten");
  668.         }
  669.         else if(type==2)
  670.         {
  671.             format(Text,sizeof(Text),"Duty Pickup\n/duty um in den Dienst zu gehen");
  672.         }
  673.         PickInfo[i][pLabel]= Create3DTextLabel(Text, orange, PickInfo[i][px], PickInfo[i][py], PickInfo[i][pz], 15, 0);
  674.        
  675.         format(query,sizeof(query),"INSERT INTO `pickup` (`ID`,`X`,`Y`,`Z`,`art`,`fraktions`) VALUES ('%i','%f','%f','%f','%d','%d')",i,ppx,ppy,ppz,type,frakids);
  676.         db_query(Data,query);
  677.         SCM(playerid,gruen,"Pickup erstellt");
  678.         print(query);
  679.         return 1;
  680.     }
  681.     return 1;
  682. }
  683. ocmd:dpick(playerid, params[])
  684. {
  685.     //if(!IsPlayerAdmin(playerid)) return SCM(playerid,rot,"Du bist nicht befugt!");
  686.     new id = IsPick(playerid),query[256];
  687.     if(id != -1)
  688.     {
  689.         PickInfo[id][erstellt] = false;
  690.         PickInfo[id][px] = 0;
  691.         PickInfo[id][py] = 0;
  692.         PickInfo[id][pz] = 0;
  693.         PickInfo[id][art] = 0;
  694.         PickInfo[id][fraktions] = 0;
  695.         SCM(playerid,gruen,"Du hast das Pickup gelöscht");
  696.        
  697.         DestroyPickup(PickInfo[id][pickobj]);
  698.         Delete3DTextLabel(PickInfo[id][pLabel]);
  699.  
  700.         format(query,sizeof(query),"SELECT * FROM pickup WHERE ID = '%d'",id);
  701.         format(query,sizeof(query),"DELETE FROM pickup WHERE ID = '%d'",id);
  702.         db_query(Data,query);
  703.         return 1;
  704.     }
  705.     else return SCM(playerid,rot,"Du bist an keinem Pickup");
  706. }
  707.  
  708. //================================================ Cop befehle Frak art 1 ================================================
  709. ocmd:arrest(playerid,params[])
  710. {
  711.     new id = IsPick(playerid),pID,string[128];
  712.     if(UserInfo[playerid][Frak]>=1)
  713.     {
  714.         if(FrakInfo[UserInfo[playerid][Frak]][frakart]==1)
  715.         {
  716.             if(duty[playerid]!=1)return SCM(playerid,rot,"Du bist nicht im Dienst!");
  717.             if(id != -1)
  718.             {
  719.                 if(PickInfo[id][art]==1)
  720.                 {
  721.                     if(sscanf(params,"u",pID))return SCM(playerid,grau,"Benutze: /arrest [Name|ID]");
  722.                     if(UserInfo[pID][wanted]>=1)
  723.                     {
  724.                         UserInfo[pID][jailtime]=UserInfo[pID][wanted];
  725.                         format(string,sizeof(string),"Beamter %s hat dich für %d Minuten arrestet",SpielerName(playerid),UserInfo[pID][jailtime]);
  726.                         SCM(pID,rot,string);
  727.                         UserInfo[pID][wanted]=0;
  728.                         UserInfo[pID][jailed]=1;
  729.                     }
  730.                     else return SCM(playerid,rot,"Der Spieler hat keine Wanteds!");
  731.                 }
  732.                 else return SCM(playerid,rot,"Du bist an keinem Arrest Punkt!");
  733.             }
  734.             else return SCM(playerid,rot,"Du bist an keinem Pickup!");
  735.         }
  736.         else return SCM(playerid,rot,"Du darfst niemanden Arresten!");
  737.     }
  738.     else return SCM(playerid,rot,"Du bist in keiner Fraktion!");
  739.     return 1;
  740. }
  741. ocmd:wantedliste(playerid,params[])
  742. {
  743.     new i=0,string[1000];
  744.     if(UserInfo[playerid][Frak]>=1)
  745.     {
  746.         if(FrakInfo[UserInfo[playerid][Frak]][frakart]!=1)return SCM(playerid,rot,"Du bist nicht befugt!");
  747.         if(duty[playerid]!=1)return SCM(playerid,rot,"Du bist nicht im Dienst!");
  748.         SCM(playerid,grau,"==================================");
  749.         for(;i<MAX_PLAYERS;i++)
  750.         {
  751.             if(UserInfo[i][wanted]>=1)
  752.             {
  753.                 format(string,sizeof(string),"Spieler: %s, Wantedanzahl: %d\n",SpielerName(i),UserInfo[i][wanted]);
  754.                 SCM(playerid,-1,string);
  755.             }
  756.         }
  757.         SCM(playerid,grau,"==================================");
  758.     }
  759.     else return SCM(playerid,rot,"Du bist in keiner Fraktion!");
  760.     return 1;
  761. }
  762. ocmd:givewanted(playerid,params[])
  763. {
  764.     if(UserInfo[playerid][Frak]>=1)
  765.     {
  766.         new pID,zahl,reason[32],string[128];
  767.         if(FrakInfo[UserInfo[playerid][Frak]][frakart]!=1)return SCM(playerid,rot,"Du darfst das nicht!");
  768.         if(duty[playerid]!=1) return SCM(playerid,rot,"Du bist nicht im Dienst!");
  769.         if(sscanf(params,"uis[32]",pID,zahl,reason)) return SCM(playerid,grau,"Benutze: /givewanted [Name|ID][Anzahl][Grund]");
  770.         UserInfo[pID][wanted]+=zahl;
  771.         format(string,sizeof(string),"Beamter %s hat dir %d Wanteds gegeben, Grund: %s, Aktuelles Wantedlevel: %d",SpielerName(playerid),zahl,reason,UserInfo[pID][wanted]);
  772.         SCM(pID,rot,string);
  773.         return 1;
  774.     }
  775.     else return SCM(playerid,rot,"Du bist in keiner Fraktion");
  776.     //return 1;
  777. }
  778. ocmd:r(playerid,params[])
  779. {
  780.     new string[128],text[128],i=0;
  781.     if(UserInfo[playerid][Frak]>=1)
  782.     {
  783.         if(FrakInfo[UserInfo[playerid][Frak]][frakart]==1)
  784.         {
  785.             if(sscanf(params,"s[128]",text))return SCM(playerid,grau,"Benutze: /r [Text]");
  786.             for(;i<MAX_PLAYERS;i++)
  787.             {
  788.                 if(FrakInfo[UserInfo[i][Frak]][frakart]==1)
  789.                 {
  790.                     format(string,sizeof(string),"[Radiochat] %s",text);
  791.                     SCM(i,radio,string);
  792.                     return 1;
  793.                 }
  794.             }
  795.         }
  796.         else return SCM(playerid,rot,"Du bist nicht befugt!");
  797.     }
  798.     else return SCM(playerid,rot,"Du bist in keiner Fraktion!");
  799.     return 1;
  800. }
  801. ocmd:clear(playerid,params[])
  802. {
  803.     new pID,string[128],string1[128],reason[32],zahl,i=0;
  804.     if(UserInfo[playerid][Frak]>=1)
  805.     {
  806.         if(FrakInfo[UserInfo[playerid][Frak]][frakart]!=1)return SCM(playerid,rot,"Du bist nicht befugt!");
  807.         if(sscanf(params,"uds[32]",pID,zahl,reason)) return SCM(playerid,grau,"Benutze: /clear [Name|ID][Wantedzahl][Grund]");
  808.         UserInfo[pID][wanted]-=zahl;
  809.         format(string,sizeof(string),"Beamter %s hat dir %d Wanteds gecleart, Grund: %s",SpielerName(playerid),zahl,reason);
  810.         SCM(pID,orange,string);
  811.  
  812.         for(;i<MAX_PLAYERS;i++)
  813.         {
  814.             if(FrakInfo[UserInfo[playerid][Frak]][frakart]==1)
  815.             {
  816.                 format(string1,sizeof(string1),"Beamter %s hat dem Spieler %s, %d Wanteds gecleart, Grund: %s",SpielerName(playerid),SpielerName(pID),zahl,reason);
  817.                 SCM(i,radio,string1);
  818.             }
  819.         }
  820.     }
  821.     else return SCM(playerid,rot,"Du bist nicht befugt!");
  822.     return 1;
  823. }
  824. //================================================ Medic Befehle Frakart 2 ================================================
  825. ocmd:heal(playerid,params[])
  826. {
  827.     new pID,string[128],gelds;
  828.     if(UserInfo[playerid][Frak]>=1)
  829.     {
  830.         if(FrakInfo[UserInfo[playerid][Frak]][frakart]!=2)return SCM(playerid,rot,"Du darfst das nicht!");
  831.         if(duty[playerid]!=1)return SCM(playerid,rot,"Du bist nicht im Dienst!");
  832.         if(sscanf(params,"ud",pID,gelds))return SCM(playerid,grau,"Benutze: /heal [Name|ID][Preis]");
  833.         heals[pID]=1;
  834.         healgeld[pID]=gelds;
  835.         healman=playerid;
  836.         format(string,sizeof(string),"Sanitäter %s hat dir für %d$ einen Heal angeboten, /acceptheal um ihn anzunehmen",SpielerName(playerid),healgeld[pID]);
  837.         SCM(pID,orange,string);
  838.     }
  839.     else return SCM(playerid,rot,"Du bist in keiner Fraktion!");
  840.     return 1;
  841. }
  842. ocmd:acceptheal(playerid,params[])
  843. {
  844.     new string[128],query[256];
  845.     if(heals[playerid]!=1)return SCM(playerid,rot,"Niemand hat dir einen Heal angeboten!");
  846.     SCM(playerid,gruen,"Du hast den Heal angenommen");
  847.     format(string,sizeof(string),"%s hat deinen Heal angenommen, Es kommen %d$ in die Frakkasse",SpielerName(playerid),healgeld[playerid]);
  848.     SCM(healman,gruen,string);
  849.     FrakInfo[UserInfo[healman][Frak]][Kasse]+=healgeld[playerid];
  850.     GivePlayerMoney(playerid,-healgeld[playerid]);
  851.     GivePlayerMoney(healman,healgeld[playerid]);
  852.     healgeld[playerid]=0;
  853.     healman=0;
  854.     heals[playerid]=0;
  855.     format(query,sizeof(query),"UPDATE `frak` SET `Kasse`='%d' WHERE `Frakid`='%d'",FrakInfo[UserInfo[healman][Frak]][Kasse],healman);
  856.     return 1;
  857. }
  858.  
  859. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  860. {
  861.     switch(dialogid)
  862.     {
  863.         case faction:
  864.         {
  865.             if(response)
  866.             {
  867.                 switch(listitem)
  868.                 {
  869.                     case 0:
  870.                     {
  871.                         ShowPlayerDialog(playerid,ausw,DIALOG_STYLE_LIST,"Gehalt änderung","Rang 1\nRang 2\nRang 3\nRang 4\nRang 5\nRang 6","Weiter","Abbrechen");
  872.                     }
  873.                     case 1:
  874.                     {
  875.                         new str[128],string[1000],DBResult:Result,rows,i=1;
  876.                         #pragma unused rows
  877.                         for(;i<MAX_FCARS;i++)
  878.                         {
  879.                             format(str,sizeof(str),"SELECT * FROM `cars` WHERE `ID`='%d'",i);
  880.                             Result = db_query(Data,str);
  881.                             rows = db_num_rows(Result);
  882.                             if(rows == 0)continue;
  883.  
  884.                             db_get_field_assoc(Result,"Frakid",str,sizeof(str));
  885.                             FrakCar[i][Frakid]=strval(str);
  886.                             db_get_field_assoc(Result,"Model",str,sizeof(str));
  887.                             FrakCar[i][modelids]=strval(str);
  888.                             db_get_field_assoc(Result,"Rang",str,sizeof(str));
  889.                             FrakCar[i][Rang]=strval(str);
  890.                            
  891.                             if(FrakCar[i][Frakid]==UserInfo[playerid][Frak])
  892.                             {
  893.                                 format(string,sizeof(string),"%sTyp: %s Rang: %d\n",string,VehicleName[FrakCar[i][modelids]-400],FrakCar[i][Rang]);
  894.                             }
  895.                         }
  896.                         SCM(playerid,gruen,string);
  897.                         db_free_result(Result);
  898.                         ShowPlayerDialog(playerid,cars,DIALOG_STYLE_LIST,"Frak Fahrzeuge",string,"Weiter","Abbrechen");
  899.                         i=0;
  900.                     }
  901.                     case 2:
  902.                     {
  903.                         new string[1000],fid=UserInfo[playerid][Frak];
  904.                         format(string,sizeof(string),"Fraktionskasse der Fraktion:\t%s\n\nKassenstand:\t%d",FrakInfo[fid][Kasse]);
  905.                         ShowPlayerDialog(playerid,kassse,DIALOG_STYLE_MSGBOX,"Frakkasse",string,"Einzahlen","Abbrechen");
  906.                     }
  907.                 }
  908.             }
  909.         }
  910.         case kassse:
  911.         {
  912.             if(response)
  913.             {
  914.                 ShowPlayerDialog(playerid,eingabe,DIALOG_STYLE_INPUT,"Kassen Einzahlung","Geben sie den Betrag ein, welchen sie einzahlen wollen.","Einzahlen","Abbrechen");
  915.             }
  916.         }
  917.         case eingabe:
  918.         {
  919.             if(response)
  920.             {
  921.                 new string[128],query[256];
  922.                 FrakInfo[UserInfo[playerid][Frak]][Kasse]+=strval(inputtext);
  923.                 format(query,sizeof(query),"UPDATE `frak` SET `Kasse`='%s' WHERE `Frakid`='%d'",FrakInfo[UserInfo[playerid][Frak]][Kasse],UserInfo[playerid][Frak]);
  924.                 db_query(Data,query);
  925.                 format(string,sizeof(string),"Du hast %d$ in die Frak Kasse eingezahlt",inputtext);
  926.                 SCM(playerid,orange,string);
  927.                 GivePlayerMoney(playerid,-strval(inputtext));
  928.             }
  929.         }
  930.         case ausw:
  931.         {
  932.             if(response)
  933.             {
  934.                 switch(listitem)
  935.                 {
  936.                     case 0:
  937.                     {
  938.                         ShowPlayerDialog(playerid,geld,DIALOG_STYLE_INPUT,"Gehalt Eingabe","Gebe das gewünschte Gehalt für den ersten Rang ein","Weiter","Abbrechen");
  939.                         wahl[playerid]=1;
  940.                     }
  941.                     case 1:
  942.                     {
  943.                         ShowPlayerDialog(playerid,geld,DIALOG_STYLE_INPUT,"Gehalt Eingabe","Gebe das gewünschte Gehalt für den zweiten Rang ein","Weiter","Abbrechen");
  944.                         wahl[playerid]=2;
  945.                     }
  946.                     case 2:
  947.                     {
  948.                         ShowPlayerDialog(playerid,geld,DIALOG_STYLE_INPUT,"Gehalt Eingabe","Gebe das gewünschte Gehalt für den dritten Rang ein","Weiter","Abbrechen");
  949.                         wahl[playerid]=3;
  950.                     }
  951.                     case 3:
  952.                     {
  953.                         ShowPlayerDialog(playerid,geld,DIALOG_STYLE_INPUT,"Gehalt Eingabe","Gebe das gewünschte Gehalt für den vierten Rang ein","Weiter","Abbrechen");
  954.                         wahl[playerid]=4;
  955.                     }
  956.                     case 4:
  957.                     {
  958.                         ShowPlayerDialog(playerid,geld,DIALOG_STYLE_INPUT,"Gehalt Eingabe","Gebe das gewünschte Gehalt für den fünften Rang ein","Weiter","Abbrechen");
  959.                         wahl[playerid]=5;
  960.                     }
  961.                     case 5:
  962.                     {
  963.                         ShowPlayerDialog(playerid,geld,DIALOG_STYLE_INPUT,"Gehalt Eingabe","Gebe das gewünschte Gehalt für den sechsten Rang ein","Weiter","Abbrechen");
  964.                         wahl[playerid]=6;
  965.                     }
  966.                 }
  967.             }
  968.         }
  969.         case geld:
  970.         {
  971.             if(response)
  972.             {
  973.                 ShowPlayerDialog(playerid,ausw,DIALOG_STYLE_LIST,"Gehalt änderung","Rang 1\nRang 2\nRang 3\nRang 4\nRang 5\nRang 6","Weiter","Abbrechen");
  974.                 new string[128],query[128];
  975.                 if(wahl[playerid]==1)
  976.                 {
  977.                     format(query,sizeof(query),"UPDATE `Frak` SET `Gehalt1`='%s' WHERE `Frakid`='%d'",inputtext,UserInfo[playerid][Frak]);
  978.                     db_query(Data,query);
  979.                     format(string,sizeof(string),"Du hast das Gehalt des ersten Rangs auf %s gesetzt",inputtext);
  980.                     SCM(playerid,orange,string);
  981.                     wahl[playerid]=0;
  982.                 }
  983.                 if(wahl[playerid]==2)
  984.                 {
  985.                     format(query,sizeof(query),"UPDATE `Frak` SET `Gehalt2`='%s' WHERE `Frakid`='%d'",inputtext,UserInfo[playerid][Frak]);
  986.                     db_query(Data,query);
  987.                     format(string,sizeof(string),"Du hast das Gehalt des zweiten Rangs auf %s gesetzt",inputtext);
  988.                     SCM(playerid,orange,string);
  989.                     wahl[playerid]=0;
  990.                 }
  991.                 if(wahl[playerid]==3)
  992.                 {
  993.                     format(query,sizeof(query),"UPDATE `Frak` SET `Gehalt3`='%s' WHERE `Frakid`='%d'",inputtext,UserInfo[playerid][Frak]);
  994.                     db_query(Data,query);
  995.                     format(string,sizeof(string),"Du hast das Gehalt des dritten Rangs auf %s gesetzt",inputtext);
  996.                     SCM(playerid,orange,string);
  997.                     wahl[playerid]=0;
  998.                 }
  999.                 if(wahl[playerid]==4)
  1000.                 {
  1001.                     format(query,sizeof(query),"UPDATE `Frak` SET `Gehalt4`='%s' WHERE `Frakid`='%d'",inputtext,UserInfo[playerid][Frak]);
  1002.                     db_query(Data,query);
  1003.                     format(string,sizeof(string),"Du hast das Gehalt des vierten Rangs auf %s gesetzt",inputtext);
  1004.                     SCM(playerid,orange,string);
  1005.                     wahl[playerid]=0;
  1006.                 }
  1007.                 if(wahl[playerid]==5)
  1008.                 {
  1009.                     format(query,sizeof(query),"UPDATE `Frak` SET `Gehalt5`='%s' WHERE `Frakid`='%d'",inputtext,UserInfo[playerid][Frak]);
  1010.                     db_query(Data,query);
  1011.                     format(string,sizeof(string),"Du hast das Gehalt des fünften Rangs auf %s gesetzt",inputtext);
  1012.                     SCM(playerid,orange,string);
  1013.                     wahl[playerid]=0;
  1014.                 }
  1015.                 if(wahl[playerid]==6)
  1016.                 {
  1017.                     format(query,sizeof(query),"UPDATE `Frak` SET `Gehalt6`='%s' WHERE `Frakid`='%d'",inputtext,UserInfo[playerid][Frak]);
  1018.                     db_query(Data,query);
  1019.                     format(string,sizeof(string),"Du hast das Gehalt des sechsten Rangs auf %s gesetzt",inputtext);
  1020.                     SCM(playerid,orange,string);
  1021.                     wahl[playerid]=0;
  1022.                 }
  1023.             }
  1024.         }
  1025.     }
  1026.     return 1;
  1027. }
  1028. public OnPlayerStateChange(playerid, newstate, oldstate)
  1029. {
  1030.     if(newstate == PLAYER_STATE_DRIVER)
  1031.     {
  1032.         for(new i = 0; i<MAX_FCARS; i++)
  1033.         {
  1034.             if(GetPlayerVehicleID(playerid) == FrakCar[i][carobj])
  1035.             {
  1036.                 new DBResult:Result,query[512] ,str[512], rows;
  1037.                 format(str,sizeof(str),"SELECT * FROM `cars` WHERE `ID` = '%i'",i);
  1038.                 Result = db_query(Data,str);
  1039.                 rows = db_num_rows(Result);
  1040.                 if(rows == 0)continue;
  1041.  
  1042.                 db_get_field_assoc(Result,"Frakid",query,sizeof(query));
  1043.                 FrakCar[i][Frakid]=strval(query);
  1044.                 db_get_field_assoc(Result,"Rang",query,sizeof(query));
  1045.                 FrakCar[i][Rang]=strval(query);
  1046.                
  1047.                 if(UserInfo[playerid][Frak]==FrakCar[i][Frakid])
  1048.                 {
  1049.                     if(FrakCar[i][Rang]<=UserInfo[playerid][Rang])
  1050.                     {
  1051.  
  1052.                     }
  1053.                     else
  1054.                     {
  1055.                         SCM(playerid,rot,"Dein Rang ist nich hochgenug!");
  1056.                         RemovePlayerFromVehicle(playerid);
  1057.                     }
  1058.                 }
  1059.                 else
  1060.                 {
  1061.                     SCM(playerid,rot,"Du bist nicht in der Fraktion!");
  1062.                     RemovePlayerFromVehicle(playerid);
  1063.                 }
  1064.             }
  1065.         }
  1066.     }
  1067.     return 1;
  1068. }
  1069.  
  1070. stock SpielerName(playerid)
  1071. {
  1072.     new name[MAX_PLAYER_NAME];
  1073.     GetPlayerName(playerid,name,sizeof(name));
  1074.     return name;
  1075. }
  1076. stock SaveUser(playerid)
  1077. {
  1078.     new query[256],query1[256];
  1079.     format(query,sizeof(query),"UPDATE `user` SET `Frak`='%d',`Leader`='%d',`invite`='%d',`paytime`='%d',`Rang`='%d' WHERE `Name`='%s'",UserInfo[playerid][Frak],UserInfo[playerid][Leader],UserInfo[playerid][invite],UserInfo[playerid][paytime],UserInfo[playerid][Rang],SpielerName(playerid));
  1080.     format(query1,sizeof(query1),"UPDATE `user` SET `wanted`='%d',`jailtime`='%d',`jailed`='%d' WHERE `Name`='%s'",UserInfo[playerid][wanted],UserInfo[playerid][jailtime],UserInfo[playerid][jailed],SpielerName(playerid));
  1081.     db_query(Data,query);
  1082.     db_query(Data,query1);
  1083.     return 1;
  1084. }
  1085. forward Tazer(pID);
  1086. public Tazer(pID)
  1087. {
  1088.     TogglePlayerControllable(pID,1);
  1089.     return 1;
  1090. }
  1091.  
  1092. forward jail();
  1093. public jail()
  1094. {
  1095.     for(new i=0;i<MAX_PLAYERS;i++)
  1096.     {
  1097.         if(!IsPlayerConnected(i))continue;
  1098.         if(UserInfo[i][jailed]==1)
  1099.         {
  1100.             UserInfo[i][jailtime]--;
  1101.             if(UserInfo[i][jailtime]==0)
  1102.             {
  1103.                 new string[128];
  1104.                 UserInfo[i][jailtime]=0;
  1105.                 UserInfo[i][jailed]=0;
  1106.                 format(string,sizeof(string),"%s, Du hast deine Jail Zeit abgesessen",SpielerName(i));
  1107.                 SCM(i,gruen,string);
  1108.             }
  1109.         }
  1110.     }
  1111. }
  1112.  
  1113. forward FrakPay(playerid);
  1114. public FrakPay(playerid)
  1115. {
  1116.     UserInfo[playerid][paytime] += 1;
  1117.     {
  1118.         if(UserInfo[playerid][paytime] == 60)
  1119.         {
  1120.             new str[128],string[128],DBResult:Result,rows,query[128];
  1121.             #pragma unused rows
  1122.             format(str,sizeof(str),"SELECT * FROM `frak` WHERE `Frakid`='%d'",UserInfo[playerid][Frak]);
  1123.             Result = db_query(Data,str);
  1124.             rows = db_num_rows(Result);
  1125.             money[playerid]=0;
  1126.            
  1127.             if(UserInfo[playerid][Rang]==1)
  1128.             {
  1129.                 db_get_field_assoc(Result,"Gehalt1",str,sizeof(str));
  1130.                 money[playerid]=strval(str);
  1131.             }
  1132.             else if(UserInfo[playerid][Rang]==2)
  1133.             {
  1134.                 db_get_field_assoc(Result,"Gehalt2",str,sizeof(str));
  1135.                 money[playerid]=strval(str);
  1136.             }
  1137.             else if(UserInfo[playerid][Rang]==3)
  1138.             {
  1139.                 db_get_field_assoc(Result,"Gehalt3",str,sizeof(str));
  1140.                 money[playerid]=strval(str);
  1141.             }
  1142.             else if(UserInfo[playerid][Rang]==4)
  1143.             {
  1144.                 db_get_field_assoc(Result,"Gehalt4",str,sizeof(str));
  1145.                 money[playerid]=strval(str);
  1146.             }
  1147.             else if(UserInfo[playerid][Rang]==5)
  1148.             {
  1149.                 db_get_field_assoc(Result,"Gehalt5",str,sizeof(str));
  1150.                 money[playerid]=strval(str);
  1151.             }
  1152.             else if(UserInfo[playerid][Rang]==6)
  1153.             {
  1154.                 db_get_field_assoc(Result,"Gehalt6",str,sizeof(str));
  1155.                 money[playerid]=strval(str);
  1156.             }
  1157.             SCM(playerid,gruen,"===> Fraktions Payday <===");
  1158.             format(string,sizeof(string),"Du bekommst von deiner Fraktion %d$ Durch das Gehalt",FrakInfo[UserInfo[playerid][Frak]][Gehalt1]);
  1159.             SCM(playerid,gruen,string);
  1160.             GivePlayerMoney(playerid,money[playerid]);
  1161.             UserInfo[playerid][paytime] = 0;
  1162.            
  1163.             FrakInfo[UserInfo[playerid][Frak]][Kasse]-=money[playerid];
  1164.            
  1165.             format(query,sizeof(query),"UPDATE `frak` SET `Kasse`='%d WHERE `Frakid`='%d'",FrakInfo[UserInfo[playerid][Frak]][Kasse],UserInfo[playerid][Frak]);
  1166.             money[playerid]=0;
  1167.         }
  1168.     }
  1169.     return 1;
  1170. }
  1171.  
  1172. stock loadfrak()
  1173. {
  1174.     new DBResult:Result,query[512] ,str[512], rows,i=1,Text[256];
  1175.     for(;i<MAX_FRAKT;i++)
  1176.     {
  1177.         format(str,sizeof(str),"SELECT * FROM `frak` WHERE `ID` = '%i'",i);
  1178.         Result = db_query(Data,str);
  1179.         rows = db_num_rows(Result);
  1180.         if(rows == 0)continue;
  1181.  
  1182.         db_get_field_assoc(Result,"Leader",str,sizeof(str));
  1183.         format(FrakInfo[i][Leader],MAX_PLAYER_NAME,"%s",str);
  1184.         db_get_field_assoc(Result,"Frakname",str,sizeof(str));
  1185.         format(FrakInfo[i][Frakname],MAX_PLAYER_NAME,"%s",str);
  1186.         db_get_field_assoc(Result,"Member",str,sizeof(str));
  1187.         FrakInfo[i][Member]=strval(str);
  1188.         db_get_field_assoc(Result,"Gehalt1",str,sizeof(str));
  1189.         FrakInfo[i][Gehalt1]=strval(str);
  1190.         db_get_field_assoc(Result,"Gehalt2",str,sizeof(str));
  1191.         FrakInfo[i][Gehalt2]=strval(str);
  1192.         db_get_field_assoc(Result,"Gehalt3",str,sizeof(str));
  1193.         FrakInfo[i][Gehalt3]=strval(str);
  1194.         db_get_field_assoc(Result,"Gehalt4",str,sizeof(str));
  1195.         FrakInfo[i][Gehalt4]=strval(str);
  1196.         db_get_field_assoc(Result,"Gehalt5",str,sizeof(str));
  1197.         FrakInfo[i][Gehalt5]=strval(str);
  1198.         db_get_field_assoc(Result,"Gehalt6",str,sizeof(str));
  1199.         FrakInfo[i][Gehalt6]=strval(str);
  1200.         db_get_field_assoc(Result,"Kasse",str,sizeof(str));
  1201.         FrakInfo[i][Kasse]=strval(str);
  1202.         db_get_field_assoc(Result,"skinl",str,sizeof(str));
  1203.         FrakInfo[i][skinl]=strval(str);
  1204.         db_get_field_assoc(Result,"skin",str,sizeof(str));
  1205.         FrakInfo[i][skin]=strval(str);
  1206.         db_get_field_assoc(Result,"frakart",str,sizeof(str));//dutys
  1207.         FrakInfo[i][frakart]=strval(str);
  1208.         db_get_field_assoc(Result,"dutys",str,sizeof(str));//dutys
  1209.         FrakInfo[i][dutys]=strval(str);
  1210.  
  1211.         FrakInfo[i][erstellt] = true;
  1212.         fraks++;
  1213.  
  1214.         db_free_result(Result);
  1215.     }printf(" Es wurden %d Fraktionen erfolgreich Geladen",fraks);
  1216.     fraks=0;
  1217.     i=1;
  1218.  
  1219.     for(;i<MAX_FCARS;i++)
  1220.     {
  1221.         format(str,sizeof(str),"SELECT * FROM `cars` WHERE `ID` = '%i'",i);
  1222.         Result = db_query(Data,str);
  1223.         rows = db_num_rows(Result);
  1224.         if(rows == 0)continue;
  1225.  
  1226.         db_get_field_assoc(Result,"Frakid",query,sizeof(query));
  1227.         FrakCar[i][Frakid]=strval(query);
  1228.         db_get_field_assoc(Result,"Model",query,sizeof(query));
  1229.         FrakCar[i][modelids]=strval(query);
  1230.         db_get_field_assoc(Result,"Color",query,sizeof(query));
  1231.         FrakCar[i][colors]=strval(query);
  1232.         db_get_field_assoc(Result,"X",query,sizeof(query));
  1233.         FrakCar[i][x]=strval(query);
  1234.         db_get_field_assoc(Result,"Y",query,sizeof(query));
  1235.         FrakCar[i][y]=strval(query);
  1236.         db_get_field_assoc(Result,"Z",query,sizeof(query));
  1237.         FrakCar[i][z]=strval(query);
  1238.         db_get_field_assoc(Result,"A",query,sizeof(query));
  1239.         FrakCar[i][a]=strval(query);
  1240.         db_get_field_assoc(Result,"Rang",query,sizeof(query));
  1241.         FrakCar[i][Rang]=strval(query);
  1242.  
  1243.         FrakCar[i][carobj]=AddStaticVehicleEx(FrakCar[i][modelids],FrakCar[i][x],FrakCar[i][y],FrakCar[i][z],FrakCar[i][a],FrakCar[i][colors],FrakCar[i][colors],-1);
  1244.         FrakCar[i][erstellt] = true;
  1245.         fraks++;
  1246.  
  1247.         db_free_result(Result);
  1248.     }printf(" Es wurden %d Fraktionens Cars erfolgreich Geladen",fraks);
  1249.     fraks=0;
  1250.     i=1;
  1251.    
  1252.     for(;i<MAX_PICK;i++)
  1253.     {
  1254.         format(str,sizeof(str),"SELECT * FROM `pickup` WHERE `ID` = '%i'",i);
  1255.         Result = db_query(Data,str);
  1256.         rows = db_num_rows(Result);
  1257.         if(rows == 0)continue;
  1258.  
  1259.         db_get_field_assoc(Result,"X",query,sizeof(query));
  1260.         PickInfo[i][px]=strval(query);
  1261.         db_get_field_assoc(Result,"Y",query,sizeof(query));
  1262.         PickInfo[i][py]=strval(query);
  1263.         db_get_field_assoc(Result,"Z",query,sizeof(query));
  1264.         PickInfo[i][pz]=strval(query);
  1265.         db_get_field_assoc(Result,"art",query,sizeof(query));
  1266.         PickInfo[i][art]=strval(query);
  1267.         db_get_field_assoc(Result,"fraktions",query,sizeof(query));
  1268.         PickInfo[i][fraktions]=strval(query);
  1269.  
  1270.         PickInfo[i][pickobj] = CreatePickup(1239, 1, PickInfo[i][px], PickInfo[i][py], PickInfo[i][pz]);
  1271.        
  1272.         if(PickInfo[i][art]==1)
  1273.         {
  1274.             format(Text,sizeof(Text),"Arrest Pickup\n/arrest um den Spieler zu arresten");
  1275.         }
  1276.         else if(PickInfo[i][art]==2)
  1277.         {
  1278.             format(Text,sizeof(Text),"Duty Pickup\n/duty um in den Dienst zu gehen");
  1279.         }
  1280.         PickInfo[i][pLabel]= Create3DTextLabel(Text, orange, PickInfo[i][px], PickInfo[i][py], PickInfo[i][pz], 15, 0);
  1281.      
  1282.         PickInfo[i][erstellt] = true;
  1283.         fraks++;
  1284.  
  1285.         db_free_result(Result);
  1286.     }printf(" Es wurden %d Pickups erfolgreich Geladen",fraks);
  1287.     fraks=0;
  1288.     i=1;
  1289. }
  1290. stock IsPick(playerid)
  1291. {
  1292.     new i=0;
  1293.     while(i != MAX_PICK)
  1294.     {
  1295.         if(IsPlayerInRangeOfPoint(playerid, 3.0, PickInfo[i][px], PickInfo[i][py], PickInfo[i][pz])) return i;
  1296.         i++;
  1297.     }
  1298.     return -1;
  1299. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement