View difference between Paste ID: aqC08anC and qqp26KbK
SHOW: | | - or go back to the newest paste.
1
#include <a_samp>
2
#include <dini>
3
#include <sscanf2>
4
#include <zcmd>
5
#include <mSelection>
6
7
#define MAX_GANGS 50 // cãte ganguri vrei.
8
9
10
#define Public:%0(%1) \
11
	forward%0(%1); public%0(%1)
12
13
new gpickup[MAX_GANGS];
14
new gangs = 0;
15
new arma1 = mS_INVALID_LISTID;
16
new arma2 = mS_INVALID_LISTID;
17
new arma3 = mS_INVALID_LISTID;
18
new arma4 = mS_INVALID_LISTID;
19
new arma5 = mS_INVALID_LISTID;
20
new arma6 = mS_INVALID_LISTID;
21
new GangInvite[MAX_PLAYERS];
22
new GangInviteTime[MAX_PLAYERS];
23
24
public OnFilterScriptInit()
25
{
26
    LoadGangs();
27
	print("\n--------------------------------------");
28
	print(" Gang System by Gireada");
29
	print("--------------------------------------\n");
30
	arma1 = LoadModelSelectionMenu("arma1.txt");
31
 	arma2 = LoadModelSelectionMenu("arma2.txt");
32
  	arma3 = LoadModelSelectionMenu("arma3.txt");
33
   	arma4 = LoadModelSelectionMenu("arma4.txt");
34
   	arma5 = LoadModelSelectionMenu("arma5.txt");
35
    arma6 = LoadModelSelectionMenu("arma6.txt");
36
	SetTimer("SaveGangs", 1000, 1);
37
	SetTimer("SaveAccounts", 5000, 1);
38
	return 1;
39
}
40
41
public OnFilterScriptExit()
42
{
43
	return 1;
44
}
45
46
enum
47
{
48
    DIALOG_INVITE = 99,//ultimul id din GameMode | last id of dialog from GameMode
49
    DIALOG_SETTINGS,
50
    DIALOG_COLOR,
51
    DIALOG_STATS,
52
}
53
54
main()
55
{
56
	print("\n----------------------------------");
57
	print(" Gang System by Gireada");
58
	print("----------------------------------\n");
59
}
60
61
enum PlayerData
62
{
63
	GangID,
64
	GangRank,
65
	GangName[50],
66
}
67
new PlayerInfo[MAX_PLAYERS][PlayerData];
68
69
enum GangData
70
{
71
	ID,
72
	Name[50],
73
	Leader[MAX_PLAYER_NAME],
74
	Float:Spawnx,
75
	Float:Spawny,
76
	Float:Spawnz,
77
	Weapon1,
78
	Weapon2,
79
	Weapon3,
80
	Weapon4,
81
	Weapon5,
82
	Weapon6,
83
	Color[10],
84
	Interior,
85
	Virtual,
86
	Day,
87
	Month,
88
	Year,
89
	Kills,
90
	Deaths,
91
	Members,
92
}
93
new GangInfo[MAX_GANGS][GangData];
94
95
stock PlayerName(playerid)
96
{
97
	new nume[MAX_PLAYER_NAME];
98
	GetPlayerName(playerid, nume, sizeof(nume));
99
	return nume;
100
}
101
102
public OnPlayerConnect(playerid)
103
{
104
	new file[MAX_PLAYER_NAME];
105
	format(file, sizeof(file), "GangPlayers/%s.ini",PlayerName(playerid));
106
 	if(dini_Exists(file))
107
  	{
108
  	    PlayerInfo[playerid][GangID] = dini_Int(file,"GangID");
109
  	    PlayerInfo[playerid][GangRank] = dini_Int(file,"GangRank");
110
  	    strmid(PlayerInfo[playerid][GangName], dini_Get(file,"GangName"), 0, strlen(dini_Get(file,"GangName")), 255);
111
  	}
112
  	else
113
  	{
114
		dini_Create(file);
115
		dini_IntSet(file,"GangID",0);
116
		dini_IntSet(file,"GangRank",0);
117
		dini_Set(file,"GangName"," ");
118
	}
119
	return 1;
120
}
121
122
public OnPlayerDisconnect(playerid, reason)
123
{
124
	return 1;
125
}
126
127
forward SaveAccounts();
128
public SaveAccounts()
129
{
130
	new file[MAX_PLAYER_NAME];
131
	for(new i=0;i<=MAX_GANGS;i++)
132
	{
133
	    if(IsPlayerConnected(i))
134
	    {
135
		    if(GangInviteTime[i] > 0) GangInviteTime[i]--;
136
		    format(file, sizeof(file), "GangPlayers/%s.ini",PlayerName(i));
137
	     	dini_IntSet(file,"GangID",PlayerInfo[i][GangID]);
138
			dini_IntSet(file,"GangRank",PlayerInfo[i][GangRank]);
139
			dini_Set(file,"GangName",PlayerInfo[i][GangName]);
140
		}
141
	}
142
	return 1;
143
}
144
145
146
public OnPlayerSpawn(playerid)
147
{
148
	new file[256];
149
	format(file, sizeof(file), "Gangs/%d.ini",PlayerInfo[playerid][GangID]);
150
	new gangid = PlayerInfo[playerid][GangID];
151
	if(gangid > 0)
152
	{
153
		if(!(dini_Exists(file)) || strcmp(PlayerInfo[playerid][GangName], GangInfo[gangid][Name], false, strlen(PlayerInfo[playerid][GangName])))
154
		{
155
		    SendClientMessage(playerid, 0xFFFFFFFF , "The Gang has been abolished");
156
		    PlayerInfo[playerid][GangID] = 0;
157
		    PlayerInfo[playerid][GangRank] = 0;
158
		    strmid(PlayerInfo[playerid][GangName], " ", 0, strlen(" "), 255);
159
		}
160
		else
161
		{
162
		    GiveGangWeapon(playerid);
163
		}
164
		return 1;
165
	}
166
	return 1;
167
}
168
169
CMD:gangstats(playerid, params[])
170
{
171
    if(PlayerInfo[playerid][GangID] == 0) return SendClientMessage(playerid, 0xFF0000AA, "You need to be in a gang to use this command.");
172
    new gangid = PlayerInfo[playerid][GangID],string[1024];
173
    new weapon1[32],  weapon2[32],  weapon3[32],  weapon4[32],  weapon5[32],  weapon6[32], kills, death, members,day,month,year,leader[MAX_PLAYER_NAME],name[50];
174
    GetWeaponName(GangInfo[gangid][Weapon1],weapon1,sizeof(weapon1)); GetWeaponName(GangInfo[gangid][Weapon2],weapon2,sizeof(weapon2)); GetWeaponName(GangInfo[gangid][Weapon3],weapon3,sizeof(weapon3));
175
    GetWeaponName(GangInfo[gangid][Weapon4],weapon4,sizeof(weapon4)); GetWeaponName(GangInfo[gangid][Weapon5],weapon5,sizeof(weapon5)); GetWeaponName(GangInfo[gangid][Weapon6],weapon6,sizeof(weapon6));
176
	kills = GangInfo[gangid][Kills]; death = GangInfo[gangid][Deaths]; members = GangInfo[gangid][Members]; day = GangInfo[gangid][Day]; month = GangInfo[gangid][Month];
177
	year = GangInfo[gangid][Year]; format(leader, sizeof(leader), GangInfo[gangid][Leader]); format(name, sizeof(name), GangInfo[gangid][Name]);
178
	
179
	
180
	format(string, sizeof(string), "{FFFF00}%s{FFFFFF} Gang Stats\n\nGang Leader: %s\nGang Weapons:\n1.%s\n2.%s\n3.%s\n4.%s\n5.%s\n6.%s\nKills: %d\nDeaths: %d\nFounded in %d.%d.%d\
181
	\nMembers: %d\nRation: %d",name,leader,weapon1,weapon2,weapon3,weapon4,weapon5,weapon6,kills,death,day,month,year,members,kills-death);
182
	ShowPlayerDialog(playerid, DIALOG_STATS, DIALOG_STYLE_MSGBOX, "Gang Stats", string, "Accept", "");
183
	
184
	
185
	return 1;
186
}
187
	
188
CMD:desgang(playerid, params[])
189
{
190
	new file[256],string[256];
191
    if(!(PlayerInfo[playerid][GangRank] > 5)) return SendClientMessage(playerid, 0xFF0000AA, "You need to be the Big Dog Gangstar to use this command.");
192
    new gangid = PlayerInfo[playerid][GangID];
193
	format(file, sizeof(file), "Gangs/%d.ini",gangid);
194
	dini_Remove(file);
195
	for(new i = 0; i<MAX_PLAYERS;i++)
196
	{
197
	    if(IsPlayerConnected(playerid))
198
	    {
199
	        if(i != playerid)
200
	        {
201
				if(PlayerInfo[i][GangID] == gangid)
202
				{
203
				    PlayerInfo[i][GangID] = 0;
204
				    format(PlayerInfo[i][GangName], 50, " ");
205
				    PlayerInfo[i][GangRank] = 0;
206
				    format(string, sizeof(string), "%s has disbanded gang.",PlayerName(playerid));
207
				    SendClientMessage(i,0xFFFFFFFF, string);
208
209
				}
210
			}
211
		}
212
	}
213
	format(string, sizeof(string), "%s has disbanded gang.",PlayerName(playerid));
214
 	SendClientMessage(playerid,0xFFFFFFFF, string);
215
	PlayerInfo[playerid][GangID] = 0;
216
 	format(PlayerInfo[playerid][GangName], 50, " ");
217
  	PlayerInfo[playerid][GangRank] = 0;
218
	return 1;
219
}
220
221
CMD:qgang(playerid, params[])
222
{
223
	new string[256];
224
	if(PlayerInfo[playerid][GangID] == 0) return SendClientMessage(playerid, 0xFF0000AA, "You need to be in a gang to use this command.");
225
	if(PlayerInfo[playerid][GangRank] == 6) return SendClientMessage(playerid, 0xFF0000AA, "You are Big Dog Gangstar. If you want to quit gang use /desgang");
226
	new gangid = PlayerInfo[playerid][GangID];
227
	GangInfo[gangid][Members]--;
228
	format(string, sizeof(string), "%s has quit the gang.", PlayerName(playerid));
229
	SendGangMessage(PlayerInfo[playerid][GangID],string,-1);
230
	PlayerInfo[playerid][GangID] = 0;
231
	PlayerInfo[playerid][GangRank] = 0;
232
	format(PlayerInfo[playerid][GangName], 50, " ");
233
	return 1;
234
}
235
236
CMD:invite(playerid, params[])
237
{
238
	new giveplayerid,string[256],caption[64];
239
	new gangid = PlayerInfo[playerid][GangID];
240
    if(unformat(params, "u", giveplayerid)) return SendClientMessage(playerid, 0xFF0000AA, "Usage: /invite <playerid/name>");
241
    if(!(PlayerInfo[playerid][GangRank] > 5)) return SendClientMessage(playerid, 0xFF0000AA, "You need to be the Big Dog Gangstar to use this command.");
242
    if(PlayerInfo[giveplayerid][GangID] > 0) return SendClientMessage(playerid, 0xFF0000AA, "Player is already in an another gang.");
243
    if(GangInviteTime[giveplayerid] > 0) return SendClientMessage(playerid, 0xFF0000AA, "That already have an invitation");
244
    if(giveplayerid == playerid) return SendClientMessage(playerid, 0xFF0000AA, "You can not invite you");
245
    
246
	GangInvite[playerid] = PlayerInfo[playerid][GangID];
247
	GangInviteTime[playerid] = 30;
248
	format(caption, sizeof(caption), "%s invitation",GangInfo[gangid][Name]);
249
	format(string, sizeof(string), "%s has invite you in the gang %s with:\n\n%d members\n%d kills\n%d deaths\n%d ration\n\nPress Accept or Cancel",PlayerName(playerid),\
250
	GangInfo[gangid][Name],GangInfo[gangid][Members], GangInfo[gangid][Kills], GangInfo[gangid][Deaths], GangInfo[gangid][Kills] - GangInfo[gangid][Deaths]);
251
	ShowPlayerDialog(giveplayerid, DIALOG_INVITE, DIALOG_STYLE_MSGBOX, caption, string, "Accept", "Cancel");
252
		
253
	return 1;
254
}
255
256
CMD:setrank(playerid, params[])
257
{
258
	new string[256], giveplayerid, rank;
259
    if(unformat(params, "ui", giveplayerid,rank)) return SendClientMessage(playerid, 0xFF0000AA, "Usage: /setrank <playerid/name> <rank>(1-5)");
260
    if(!(IsPlayerConnected(giveplayerid))) return SendClientMessage(playerid, 0xFF0000AA, "Thet player is not connected.");
261
    if(!(PlayerInfo[playerid][GangID] == PlayerInfo[giveplayerid][GangID])) return SendClientMessage(playerid, 0xFF0000AA, "Thet player is not in your gang.");
262
    if(!(rank >= 1 && rank <=5)) return SendClientMessage(playerid, 0xFF0000AA, "Rank must be between 1 and 5.");
263
    if(!(PlayerInfo[playerid][GangRank] == 6)) return SendClientMessage(playerid, 0xFF0000AA, "You need to be the Big Dog Gangstar to use this command.");
264
    if(giveplayerid == playerid) return SendClientMessage(playerid, 0xFF0000AA, "You are Big Dog Gangstar no one can't change your rank.");
265
    PlayerInfo[giveplayerid][GangRank] = rank;
266
    format(string, sizeof(string), "Big Dog Gangstar %s has set your rank to %d",PlayerName(playerid),rank);
267
    SendClientMessage(giveplayerid, 0xFFFFFFFF, string);
268
    format(string, sizeof(string), "You set %s rank to %d",PlayerName(giveplayerid),rank);
269
    SendClientMessage(playerid, 0xFFFFFFFF, string);
270
    return 1;
271
}
272
    
273
CMD:eject(playerid, params[])
274
{
275
	new giveplayerid,string[256];
276
	new gangid = PlayerInfo[playerid][GangID];
277
    if(unformat(params, "u", giveplayerid)) return SendClientMessage(playerid, 0xFF0000AA, "Usage: /eject <playerid/name>");
278
    if(!(PlayerInfo[playerid][GangRank] > 5)) return SendClientMessage(playerid, 0xFF0000AA, "You need to be the Big Dog Gangstar to use this command.");
279
    if(!(PlayerInfo[giveplayerid][GangID] == gangid)) return SendClientMessage(playerid, 0xFF0000AA, "Player is not in your gang.");
280
    if(giveplayerid == playerid) return SendClientMessage(playerid, 0xFF0000AA, "You can't eject your self");
281
	format(string, sizeof(string), "%s has eject %s from gang.",PlayerName(playerid), PlayerName(giveplayerid));
282
	SendGangMessage(gangid,string,-1);
283
	PlayerInfo[giveplayerid][GangRank] = 0;
284
	PlayerInfo[giveplayerid][GangID] = 0;
285
    GangInfo[gangid][Members]--;
286
	return 1;
287
}
288
289
CMD:setspawn(playerid, params[])
290
{
291
	if(!(PlayerInfo[playerid][GangRank] > 5)) return SendClientMessage(playerid, 0xFF0000AA, "You need to be the Big Dog Gangstar to use this command.");
292
	new gangid = PlayerInfo[playerid][GangID],string[256];
293
	new Float:x,Float:y,Float:z;
294
	GetPlayerPos(playerid,x,y,z);
295
    GangInfo[gangid][Spawnx] = x; GangInfo[gangid][Spawny] = y; GangInfo[gangid][Spawnz] = z;
296
    format(string, sizeof(string), "%s has change the spawn.",PlayerName(playerid));
297
    SendGangMessage(gangid,string,-1);
298
    DestroyPickup(gpickup[gangid]);
299
    gpickup[gangid] = CreatePickup(1314, 1, x,y,z, -1);
300
	return 1;
301
}
302
303
CMD:gangchat(playerid, params[])
304
{
305
	new string[500];
306
	if(unformat(params, "s[500]", string)) return SendClientMessage(playerid, 0xFF0000AA, "Usage: /gangchat(/gc) <text>");
307
	if(!(PlayerInfo[playerid][GangID] > 0)) return SendClientMessage(playerid, 0xFF0000AA, "You are not in a gang>");
308
	new gangid = PlayerInfo[playerid][GangID];
309
    SendGangMessage(gangid,string,playerid);
310
	return 1;
311
}
312
313
CMD:alertall(playerid, params[])
314
{
315
	if(!(PlayerInfo[playerid][GangRank] > 5)) return SendClientMessage(playerid, 0xFF0000AA, "You need to be the Big Dog Gangstar to use this command.");
316
	new Float:x,Float:y,Float:z;
317
	GetPlayerPos(playerid,x,y,z);
318
	new interior = GetPlayerInterior(playerid);
319
	new virtualw = GetPlayerVirtualWorld(playerid);
320
	for(new i=0;i<MAX_PLAYERS;i++)
321
	{
322
	    if(IsPlayerConnected(i))
323
	    {
324
	        if(PlayerInfo[i][GangID] == PlayerInfo[playerid][GangID])
325
	        {
326
				SetPlayerPos(i,x,y,z);
327
				SetPlayerInterior(i,interior);
328
				SetPlayerVirtualWorld(i,virtualw);
329
				GameTextForPlayer(playerid, "The Big Dog Gangstar teleport you", 2000, 6);
330
			}
331
		}
332
	}
333
	return 1;
334
}
335
336
CMD:gangweapon(playerid, params[])
337
{
338
	new gangid = PlayerInfo[playerid][GangID];
339
	if(!(gangid > 0)) return SendClientMessage(playerid, 0xFF0000AA, "You need to be in a gang to use this commnad.");
340
	if(!(IsPlayerInRangeOfPoint(playerid, 3.5, GangInfo[gangid][Spawnx], GangInfo[gangid][Spawny], GangInfo[gangid][Spawnz]))) return SendClientMessage(playerid, 0xFF0000AA, "You need to be on the spawn.");
341
	GiveGangWeapon(playerid);
342
	return 1;
343
}
344
345
COMMAND:gc(playerid, params[])
346
{
347
	return cmd_gangchat(playerid, params);
348
}
349
350
351
CMD:creategang(playerid, params[])
352
{
353
	new GangName2[50],day,month,year,file[256],string[256];
354
    if(unformat(params, "s[50]", GangName2)) return SendClientMessage(playerid, 0xFF0000AA, "Usage: /creategang <name>(MAX 50)");
355
    if(PlayerInfo[playerid][GangID] > 0) return SendClientMessage(playerid, 0xFF0000AA, "You aleardy have a gang.");
356
357
	for(new i=1;i<=MAX_GANGS;i++)
358
	{
359
	    format(file, sizeof(file), "Gangs/%i.ini",i);
360
	    if(!dini_Exists(file))
361
	    {
362
            getdate(year, month, day);
363
	    	CreateGang(i,GangName2, PlayerName(playerid), day, month, year, "0xFFFFFFFF");
364
	    	PlayerInfo[playerid][GangID] = i;
365
	    	PlayerInfo[playerid][GangRank] = 6;
366
	    	format(PlayerInfo[playerid][GangName], 50, GangName2);break;
367
	    }
368
	}
369
	format(string, sizeof(string), "You have create gang %s",GangName2);
370
	SendClientMessage(playerid, 0xFF0000AA, string);
371
	return 1;
372
}
373
374
CMD:gangsetting(playerid, params[])
375
{
376
	if(!(PlayerInfo[playerid][GangRank] > 5)) return SendClientMessage(playerid, 0xFF0000AA, "You need to be the Big Dog Gangstar to use this command.");
377
	ShowPlayerDialog(playerid, DIALOG_SETTINGS, DIALOG_STYLE_LIST, "Gang Setting", "Weapons\nColor", "Accept", "Cancel");
378
	return 1;
379
}
380
381
forward SendGangMessage(gangid,const msj[],playerid);
382
public SendGangMessage(gangid,const msj[],playerid)
383
{
384
	new string[500];
385
	for(new i=0;i<MAX_PLAYERS;i++)
386
	{
387
	    if(IsPlayerConnected(i))
388
	    {
389
	    	if(PlayerInfo[i][GangID] == gangid)
390
	    	{
391
	    	    switch(playerid)
392
	    	    {
393
	    	        case -1:
394
	    	        {
395
	    	            SendClientMessage(i, 0xFF0000AA, msj);
396
	    	        }
397
					default:
398
					{
399
						switch(PlayerInfo[playerid][GangRank])
400
						{
401
						    case 1: format(string, sizeof(string), "1*Little Gangsta %s: %s",PlayerName(playerid), msj);
402
						    case 2: format(string, sizeof(string), "2*Gangsta %s: %s",PlayerName(playerid), msj);
403
						    case 3: format(string, sizeof(string), "3*Trouble Gangsta %s: %s",PlayerName(playerid), msj);
404
						    case 4: format(string, sizeof(string), "4*First Gangsta %s: %s",PlayerName(playerid), msj);
405
						    case 5: format(string, sizeof(string), "5*Big Gangsta %s: %s",PlayerName(playerid), msj);
406
						    case 6: format(string, sizeof(string), "6*Big Dog Gangsta %s: %s",PlayerName(playerid), msj);
407
						}
408
						SendClientMessage(i, 0xFF0000AA, string);
409
					}
410
				}
411
			}
412
		}
413
	}
414
	return 1;
415
}
416
	    
417
418
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
419
{
420
	new string[256];
421
	new gangid = PlayerInfo[playerid][GangID];
422
	if(response)
423
	{
424
	    switch(dialogid)
425
	    {
426
	        case DIALOG_INVITE:
427
	        {
428
	            PlayerInfo[playerid][GangID] = GangInvite[playerid];
429
	            GangInviteTime[playerid] = 0;
430
	            GangInvite[playerid] = 0;
431
	            GangInfo[gangid][Members]++;
432
	            format(string, sizeof(string), "[ %s ][ %d ] has enjoy in the gang.",PlayerName(playerid),playerid);
433
	            SendGangMessage(PlayerInfo[playerid][GangID], string,-1);
434
	        }
435
	        case DIALOG_SETTINGS:
436
	        {
437
	            switch(listitem)
438
	            {
439
	                case 0: ShowModelSelectionMenu(playerid, arma1, "Weapon1");
440
	                case 1: ShowPlayerDialog(playerid, DIALOG_COLOR, DIALOG_STYLE_LIST, "Gang Setting", "Red\nBlue\nYellow\nGreen\nWhite\nPurple", "Accept", "Cancel");
441
				}
442
	        }
443
	        case DIALOG_COLOR:
444
	        {
445
                switch(listitem)
446
	            {
447
	                case 0: format(GangInfo[gangid][Color], 10, "0xF90505AA");
448
					case 1: format(GangInfo[gangid][Color], 10, "0x0026FFAA");
449
					case 2: format(GangInfo[gangid][Color], 10, "0xE6FB00AA");
450
					case 3: format(GangInfo[gangid][Color], 10, "0x00FF04AA");
451
					case 4: format(GangInfo[gangid][Color], 10, "0xFFFFFFAA");
452
					case 5: format(GangInfo[gangid][Color], 10, "0xDD00FFAA");
453
	            }
454
	        }
455
		}
456
	}
457
	if(!response)
458
	{
459
		switch(dialogid)
460
		{
461
		    case DIALOG_INVITE:
462
	        {
463
	            format(string, sizeof(string), "[ %s ][ %d ] has refuze the invitation.",PlayerName(playerid),playerid);
464
	            SendGangMessage(GangInvite[playerid],string, -1);
465
	            GangInviteTime[playerid] = 0;
466
	            GangInvite[playerid] = 0;
467
	        }
468
	    }
469
	}
470
	return 1;
471
}
472
473
public OnPlayerDeath(playerid, killerid, reason)
474
{
475
	if(reason > 47)
476
	{
477
		new gangid = PlayerInfo[playerid][GangID];
478
		new gangid2 = PlayerInfo[killerid][GangID];
479
		GangInfo[gangid][Deaths]++;
480
		GangInfo[gangid2][Kills]++;
481
	}
482
	return 1;
483
}
484
485
forward LoadGangs();
486
public LoadGangs()
487
{
488
	new file[256];
489
	for(new i=1;i<=MAX_GANGS;i++)
490
	{
491
	    format(file, sizeof(file), "Gangs/%i.ini",i);
492
	    if(dini_Exists(file))
493
	    {
494
	        GangInfo[i][ID] = dini_Int(file,"ID");
495
	        strmid(GangInfo[i][Name], dini_Get(file,"Name"), 0, strlen(dini_Get(file,"Name")), 255);
496
	        strmid(GangInfo[i][Leader], dini_Get(file,"Leader"), 0, strlen(dini_Get(file,"Leader")), 255);
497
	        GangInfo[i][Spawnx] = dini_Float(file,"Spawnx");
498
	        GangInfo[i][Spawnx] = dini_Float(file,"Spawny");
499
	        GangInfo[i][Spawnx] = dini_Float(file,"Spawnz");
500
	        GangInfo[i][Weapon1] = dini_Int(file,"Weapon1");
501
	        GangInfo[i][Weapon2] = dini_Int(file,"Weapon2");
502
	        GangInfo[i][Weapon3] = dini_Int(file,"Weapon3");
503
	        GangInfo[i][Weapon4] = dini_Int(file,"Weapon4");
504
	        GangInfo[i][Weapon5] = dini_Int(file,"Weapon5");
505
	        GangInfo[i][Weapon6] = dini_Int(file,"Weapon6");
506
	        strmid(GangInfo[i][Color], dini_Get(file,"Color"), 0, strlen(dini_Get(file,"Color")), 255);
507
	        GangInfo[i][Interior] = dini_Int(file,"Interior");
508
	        GangInfo[i][Virtual] = dini_Int(file,"Virtual");
509
	        GangInfo[i][Day] = dini_Int(file,"Day");
510
	        GangInfo[i][Month] = dini_Int(file,"Month");
511
	        GangInfo[i][Year] = dini_Int(file,"Year");
512
	        GangInfo[i][Kills] = dini_Int(file,"Kills");
513
	        GangInfo[i][Deaths] = dini_Int(file,"Deaths");
514
	        GangInfo[i][Members] = dini_Int(file,"Members");
515
	        gangs++;
516
	    }
517
	}
518
	return 1;
519
}
520
521
forward CreateGang(i,const Nume[], const gLeader[], Zi, Luna, An, const color[]);
522
public CreateGang(i,const Nume[], const gLeader[], Zi, Luna, An, const color[])
523
{
524
	new file[256];
525
	format(file, sizeof(file), "Gangs/%i.ini",i);
526
	dini_Create(file);
527
	
528
	GangInfo[i][ID] = i;
529
	format(GangInfo[i][Name], 50, Nume);
530
	format(GangInfo[i][Leader], 50, gLeader);
531
	GangInfo[i][Spawnx] = 0.0000; GangInfo[i][Spawny] = 0.0000; GangInfo[i][Spawnz] = 0.0000;
532
	GangInfo[i][Weapon1] = 0; GangInfo[i][Weapon2] = 0; GangInfo[i][Weapon3] = 0;
533
	GangInfo[i][Weapon4] = 0; GangInfo[i][Weapon5] = 0; GangInfo[i][Weapon6] = 0;
534
	format(GangInfo[i][Color], 10, color);
535
	GangInfo[i][Interior] = 0; GangInfo[i][Virtual] = 0; GangInfo[i][Day] = Zi;
536
	GangInfo[i][Month] = Luna; GangInfo[i][Year] = An; GangInfo[i][Kills] = 0; GangInfo[i][Members] = 0;
537
    return 1;
538
}
539
540
541
forward SaveGangs();
542
public SaveGangs()
543
{
544
	new file[256];
545
	for(new i=1;i<=MAX_GANGS;i++)
546
	{
547
	    format(file,sizeof(file), "Gangs/%i.ini",i);
548
	    if(dini_Exists(file))
549
	    {
550
	        dini_IntSet(file,"ID",GangInfo[i][ID]);
551
	        dini_Set(file,"Name", GangInfo[i][Name]);
552
	        dini_Set(file,"Leader", GangInfo[i][Leader]);
553
	        dini_FloatSet(file,"Spawnx",GangInfo[i][Spawnx]);
554
	        dini_FloatSet(file,"Spawny",GangInfo[i][Spawny]);
555
	        dini_FloatSet(file,"Spawnz",GangInfo[i][Spawnz]);
556
	        dini_IntSet(file,"Weapon1",GangInfo[i][Weapon1]);
557
	        dini_IntSet(file,"Weapon2",GangInfo[i][Weapon2]);
558
	        dini_IntSet(file,"Weapon3",GangInfo[i][Weapon3]);
559
	        dini_IntSet(file,"Weapon4",GangInfo[i][Weapon4]);
560
	        dini_IntSet(file,"Weapon5",GangInfo[i][Weapon5]);
561
	        dini_IntSet(file,"Weapon6",GangInfo[i][Weapon6]);
562
	        dini_Set(file,"Color",GangInfo[i][Color]);
563
	        dini_IntSet(file,"Interior",GangInfo[i][Interior]);
564
	        dini_IntSet(file,"Virtual",GangInfo[i][Virtual]);
565
	        dini_IntSet(file,"Day",GangInfo[i][Day]);
566
	        dini_IntSet(file,"Month",GangInfo[i][Month]);
567
	        dini_IntSet(file,"Year",GangInfo[i][Year]);
568
	        dini_IntSet(file,"Kills",GangInfo[i][Kills]);
569
	        dini_IntSet(file,"Deaths",GangInfo[i][Deaths]);
570
	        dini_IntSet(file,"Members",GangInfo[i][Members]);
571
	    }
572
	}
573
	return 1;
574
}
575
576
public OnPlayerModelSelection(playerid, response, listid, modelid)
577
{
578
    new gangid = PlayerInfo[playerid][GangID];
579
    if(listid == arma1)
580
    {
581
        if(response)
582
        {
583
            switch(modelid)
584
            {
585
            	case 333: GangInfo[gangid][Weapon1] = 2; // Golf Club
586
             	case 334: GangInfo[gangid][Weapon1] = 3;// Nightstick
587
              	case 335: GangInfo[gangid][Weapon1] = 4;// Knife
588
               	case 336: GangInfo[gangid][Weapon1] = 5;// Baseball Bat
589
                case 338: GangInfo[gangid][Weapon1] = 7;// Pool Cue
590
                case 339: GangInfo[gangid][Weapon1] = 8;// Katana
591
                case 341: GangInfo[gangid][Weapon1] = 9;// Chainsaw
592
            }
593
            ShowModelSelectionMenu(playerid, arma2, "Weapon2");
594
        }
595
        else SendClientMessage(playerid, 0xFF0000FF, "Canceled weapons selection");
596
        return 1;
597
    }
598
    if(listid == arma2)
599
    {
600
        if(response)
601
        {
602
            switch(modelid)
603
            {
604
            	case 346: GangInfo[gangid][Weapon2] = 22;// 9mm
605
             	case 347: GangInfo[gangid][Weapon2] = 23;// Silenced 9mm
606
              	case 348: GangInfo[gangid][Weapon2] = 24;// Desert Eagle
607
            }
608
            ShowModelSelectionMenu(playerid, arma3, "Weapon3");
609
        }
610
        else SendClientMessage(playerid, 0xFF0000FF, "Canceled weapon selection");
611
        return 1;
612
    }
613
    if(listid == arma3)
614
    {
615
        if(response)
616
        {
617
            switch(modelid)
618
            {
619
            	case 349: GangInfo[gangid][Weapon3] = 25;// Shotgun
620
             	case 350: GangInfo[gangid][Weapon3] = 26;// Sawnoff
621
              	case 351: GangInfo[gangid][Weapon3] = 27;// Combat Shotgun
622
        	}
623
        	ShowModelSelectionMenu(playerid, arma4, "Weapon4");
624
        }
625
        else SendClientMessage(playerid, 0xFF0000FF, "Canceled weapon selection");
626
        return 1;
627
    }
628
    if(listid == arma4)
629
    {
630
        if(response)
631
        {
632
            switch(modelid)
633
            {
634
            	case 352: GangInfo[gangid][Weapon4] = 28;// Micro SMG/Uzi
635
             	case 353: GangInfo[gangid][Weapon4] = 29;// MP5
636
            }
637
            ShowModelSelectionMenu(playerid, arma5, "Weapon5");
638
        }
639
        else SendClientMessage(playerid, 0xFF0000FF, "Canceled weapons selection");
640
        return 1;
641
    }
642
    if(listid == arma5)
643
    {
644
        if(response)
645
        {
646
            switch(modelid)
647
            {
648
            	case 355: GangInfo[gangid][Weapon5] = 30;
649
             	case 356: GangInfo[gangid][Weapon5] = 31;
650
            }
651
            ShowModelSelectionMenu(playerid, arma6, "Weapon6");
652
        }
653
        else SendClientMessage(playerid, 0xFF0000FF, "Canceled weapon selection");
654
        return 1;
655
    }
656
    if(listid == arma6)
657
    {
658
        if(response)
659
        {
660
        	switch(modelid)
661
         	{
662
          		case 357: GangInfo[gangid][Weapon6] = 33;// Country Rifle
663
            	case 358: GangInfo[gangid][Weapon6] = 34;// Sniper Rifle
664
          	}
665
        }
666
        else SendClientMessage(playerid, 0xFF0000FF, "Canceled skin selection");
667
        return 1;
668
    }
669
    return 1;
670
}
671
672
forward GangExist(gangid);
673
public GangExist(gangid)
674
{
675
	new file[256];
676
	format(file, sizeof(file), "Gangs/%i.ini",gangid);
677
	if(dini_Exists(file))
678
		return 1;
679
	else
680
        return 0;
681
}
682
683
forward GiveGangWeapon(playerid);
684
public GiveGangWeapon(playerid)
685
{
686
	new gangid = PlayerInfo[playerid][GangID];
687
	if(!(GangInfo[gangid][Weapon1] == 0))  GivePlayerWeapon(playerid, GangInfo[gangid][Weapon1], 1);
688
	if(!(GangInfo[gangid][Weapon2] == 0))  GivePlayerWeapon(playerid, GangInfo[gangid][Weapon2], 500);
689
	if(!(GangInfo[gangid][Weapon3] == 0))  GivePlayerWeapon(playerid, GangInfo[gangid][Weapon3], 500);
690
	if(!(GangInfo[gangid][Weapon4] == 0))  GivePlayerWeapon(playerid, GangInfo[gangid][Weapon4], 500);
691
	if(!(GangInfo[gangid][Weapon5] == 0))  GivePlayerWeapon(playerid, GangInfo[gangid][Weapon5], 500);
692
	if(!(GangInfo[gangid][Weapon6] == 0))  GivePlayerWeapon(playerid, GangInfo[gangid][Weapon6], 500);
693
	return 1;
694
}