View difference between Paste ID: vQxaMB3J and heLMHKbE
SHOW: | | - or go back to the newest paste.
1
/******************************************************************************/
2
3
#include <						a_samp						>
4
#include <                       dof2                       >
5
#include <                       zcmd                       >
6
#include <                      sscanf2                     >
7
#include <                      foreach                     >
8
9
/******************************************************************************/
10
11
#define COLOR_WHITE 												0xFFFFFFFF
12
#define COLOR_GRAY                                                  0xCECECEFF
13
#define COLOR_CYAN 													0x00FFFFFF
14
#define COLOR_RED                                                   0xFF0000FF
15
16
/******************************************************************************/
17
18
#define COR_POLICIA 												0x6495EDFF
19
#define COR_BOPE 													0x483D8BFF
20
#define COR_GROVE 													0x00EE00FF
21
#define COR_BALLAS 													0x7D26CDFF
22
23
/******************************************************************************/
24
25
#define MAX_ORGS                                                    ( 4+1 ) 	// Número máximo de orgs ( preserve o +1 ).
26
#define MAX_MEMBROS                                                 ( 5+1 )     // Número máximo de membros ( preserve o +1 ).
27
#undef MAX_PLAYERS
28
#define MAX_PLAYERS                                             	( 50 )      // Número máximo de players/slots do host
29
30
/******************************************************************************/
31
32
#define DIALOG_CONVIDAR                                             ( 3000 )    // Mude caso exista um dialog com o mesmo id.
33
34
/******************************************************************************/
35
36
enum
37
{
38
	ORG_CIVIL , 		// Org 0
39
	ORG_POLICIAM ,      // Org 1
40
	ORG_BOPE ,          // Org 2
41
	ORG_GROVE ,         // Org 3
42
	ORG_BALLAS          // Org 4
43
}
44
45
enum pInfo
46
{
47
	pAdmin ,
48
	pCargo ,
49
	pMembro
50
}
51
new PlayerInfo[MAX_PLAYERS][pInfo];
52
53
enum oInfo
54
{
55
	Lider ,
56
	SubLider
57
}
58
new Org[MAX_ORGS][oInfo][MAX_PLAYER_NAME],
59
	Membros[MAX_ORGS][MAX_MEMBROS][MAX_PLAYER_NAME];
60
61
new OrgName[32],
62
	_@STR[128];
63
64
new Members,
65
	Subs,
66
	Lideres;
67
68
/******************************************************************************/
69
70
public OnFilterScriptInit()
71
{
72
	for(new i = 1; i < MAX_ORGS; ++i)
73
	{
74
	    //CriarOrgs(i); *Use apenas 1 vez para criar os arquivos das orgs ( lembre-se de criar a pasta infoorg antes ).
75
	    CarregarOrgs();
76
	}
77
	return 1;
78
}
79
80
public OnFilterScriptExit()
81
{
82
	DOF2::Exit();
83
	return 1;
84
}
85
86
public OnPlayerConnect(playerid)
87
{
88
    new arquivo[32], name[24];
89
	GetPlayerName(playerid, name, 24);
90
	format(arquivo, 32, "Contas/%s.ini", name);
91
	DOF2::CreateFile(arquivo);
92
	PlayerInfo[playerid][pAdmin] = DOF2::GetInt(arquivo, "Admin");
93
	PlayerInfo[playerid][pMembro] = DOF2::GetInt(arquivo, "Membro");
94
	PlayerInfo[playerid][pCargo] = DOF2::GetInt(arquivo, "Cargo");
95
	DOF2::SaveFile();
96
	return 1;
97
}
98
99
public OnPlayerDisconnect(playerid, reason)
100
{
101
    SalvarConta(playerid);
102
	return 1;
103
}
104
105
public OnPlayerSpawn(playerid)
106
{
107
    ChecarOrg(playerid);
108
	return 1;
109
}
110
111
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
112
{
113
    if(dialogid == DIALOG_CONVIDAR)
114
	{
115
	    if(response)
116
	    {
117
	        Convidar(playerid, GetPVarInt(playerid, "OrgConvite"));
118
	        DeletePVar(playerid, "OrgConvite");
119
	        return 1;
120
	    }
121
	}
122
	return 1;
123
}
124
125
/******************************************************************************/
126
127
SalvarConta(playerid)
128
{
129
	new arquivo[32], name[24];
130
	GetPlayerName(playerid, name, 24);
131
	format(arquivo, 32, "Contas/%s.ini", name);
132
	DOF2::CreateFile(arquivo);
133
	DOF2::SetInt(arquivo, "Admin", PlayerInfo[playerid][pAdmin]);
134
	DOF2::SetInt(arquivo, "Membro", PlayerInfo[playerid][pMembro]);
135
	DOF2::SetInt(arquivo, "Cargo", PlayerInfo[playerid][pCargo]);
136
	DOF2::SaveFile();
137
}
138
	
139
/******************************************************************************/
140
141
/*stock CriarOrgs(orgid)
142
{
143
	new arquivo[20];
144
	format(arquivo, sizeof arquivo, "InfoOrg/Org%i.ini", orgid);
145
	DOF2::CreateFile(arquivo);
146
	DOF2::SetString(arquivo, "Lider", "Ninguem");
147
	DOF2::SetString(arquivo, "SubLider", "Ninguem");
148
	DOF2::SetString(arquivo, "Membro1", "Ninguem");
149
	DOF2::SetString(arquivo, "Membro2", "Ninguem");
150
	DOF2::SetString(arquivo, "Membro3", "Ninguem");
151
	DOF2::SetString(arquivo, "Membro4", "Ninguem");
152
	DOF2::SetString(arquivo, "Membro5", "Ninguem");
153
	DOF2::SaveFile();
154
}*/
155
156
/******************************************************************************/
157
158
CarregarOrgs()
159
{
160
    new arquivo[20];
161
    for(new i = 1; i < MAX_ORGS; ++i)
162
	{
163
        format(arquivo, sizeof arquivo, "InfoOrg/Org%i.ini", i);
164
        strmid(Org[i][Lider], DOF2::GetString(arquivo,"Lider"), 0, strlen(DOF2::GetString(arquivo, "Lider")), 128);
165
        strmid(Org[i][SubLider], DOF2::GetString(arquivo, "SubLider"), 0, strlen(DOF2::GetString(arquivo, "SubLider")), 128);
166
        strmid(Membros[i][1], DOF2::GetString(arquivo, "Membro1"), 0, strlen(DOF2::GetString(arquivo, "Membro1")), 128);
167
        strmid(Membros[i][2], DOF2::GetString(arquivo, "Membro2"), 0, strlen(DOF2::GetString(arquivo, "Membro2")), 128);
168
        strmid(Membros[i][3], DOF2::GetString(arquivo, "Membro3"), 0, strlen(DOF2::GetString(arquivo, "Membro3")), 128);
169
        strmid(Membros[i][4], DOF2::GetString(arquivo, "Membro4"), 0, strlen(DOF2::GetString(arquivo, "Membro4")), 128);
170
        strmid(Membros[i][5], DOF2::GetString(arquivo, "Membro5"), 0, strlen(DOF2::GetString(arquivo, "Membro5")), 128);
171
    }
172
    return 1;
173
}
174
175
/******************************************************************************/
176
177
ChecarOrg(playerid)
178
{
179
	new orgid = PlayerInfo[playerid][pMembro];
180
	if(strcmp(Org[orgid][Lider],Nome(playerid), true) == 0) return 1;
181
	if(strcmp(Org[orgid][SubLider],Nome(playerid), true) == 0) return 1;
182
	if(strcmp(Membros[orgid][1], Nome(playerid), true) == 0) return 1;
183
	if(strcmp(Membros[orgid][2], Nome(playerid), true) == 0) return 1;
184
	if(strcmp(Membros[orgid][3], Nome(playerid), true) == 0) return 1;
185
	if(strcmp(Membros[orgid][4], Nome(playerid), true) == 0) return 1;
186
	if(strcmp(Membros[orgid][5], Nome(playerid), true) == 0) return 1;
187
	PlayerInfo[playerid][pMembro] = 0;
188
	PlayerInfo[playerid][pCargo] = 0;
189
	SetPlayerSkin(playerid, 23);
190
	SendClientMessage(playerid, COLOR_WHITE, "Você foi expulso da organização!");
191
	SpawnPlayer(playerid);
192
	return 1;
193
}
194
195
/******************************************************************************/
196
197
Convidar(playerid, orgid)
198
{
199
	new arquivo[20], _string[15];
200
    format(arquivo, sizeof arquivo, "InfoOrg/Org%i.ini", orgid);
201
	for(new i = 1; i < MAX_MEMBROS; ++i)
202
	{
203
	    if(strcmp(Membros[orgid][i], "Ninguem", true) == 0)
204
	    {
205
	        format(_string, sizeof _string, "Membro%i", i);
206
	        PlayerInfo[playerid][pMembro] = orgid;
207
	        PlayerInfo[playerid][pCargo] = 1;
208
	        GetOrgName(orgid, OrgName, sizeof OrgName);
209
	        strmid(Membros[orgid][i], Nome(playerid), 0, strlen(Nome(playerid)), 128);
210
	        DOF2::SetString(arquivo, _string, Nome(playerid));
211
	        DOF2::SaveFile();
212
			format(_@STR, sizeof _@STR, "Bem vindo ao(s) {FFFFFF}%s{00FFFF} !", OrgName);
213
			SendClientMessage(playerid, COLOR_CYAN, _@STR);
214
			SpawnPlayer(playerid);
215
			break;
216
	    }
217
	}
218
	return 1;
219
}
220
221
/******************************************************************************/
222
223
Demitir(playerid)
224
{
225
    new arquivo[20], _string[15], orgid = PlayerInfo[playerid][pMembro];
226
    format(arquivo, sizeof arquivo, "InfoOrg/Org%i.ini", orgid);
227
    if(strcmp(Org[orgid][Lider], Nome(playerid), true) == 0)
228
	{
229
	    PlayerInfo[playerid][pMembro] = 0;
230
	    PlayerInfo[playerid][pCargo] = 0;
231
		SetPlayerSkin(playerid, 23);
232
	    strmid(Org[orgid][Lider], "Ninguem", 0 , strlen("Ninguem"), 128);
233
	    DOF2::SetString(arquivo, "Lider", "Ninguem");
234
		SpawnPlayer(playerid);
235
		DOF2::SaveFile();
236
	}
237
	if(strcmp(Org[orgid][SubLider], Nome(playerid), true) == 0)
238
	{
239
	    PlayerInfo[playerid][pMembro] = 0;
240
	    PlayerInfo[playerid][pCargo] = 0;
241
	    SetPlayerSkin(playerid, 23);
242
	    strmid(Org[orgid][SubLider], "Ninguem", 0, strlen("Ninguem"), 128);
243
	    DOF2::SetString(arquivo, "SubLider", "Ninguem");
244
		SpawnPlayer(playerid);
245
		DOF2::SaveFile();
246
	}
247
	for(new i = 1; i < MAX_MEMBROS; ++i)
248
	{
249
	    if(strcmp(Membros[orgid][i], Nome(playerid), true) == 0)
250
	    {
251
	        format(_string, sizeof _string, "Membro%i", i);
252
	        PlayerInfo[playerid][pMembro] = 0;
253
	    	PlayerInfo[playerid][pCargo] = 0;
254
	    	SetPlayerSkin(playerid, 23);
255
	    	strmid(Membros[orgid][i], "Ninguem", 0, strlen("Ninguem"), 128);
256
	    	DOF2::SetString(arquivo, _string, "Ninguem");
257
			SpawnPlayer(playerid);
258
			DOF2::SaveFile();
259
		}
260
	}
261
}
262
263
/******************************************************************************/
264
265
Limpar(orgid, vaga)
266
{
267
	new arquivo[20], _string[15];
268
	format(arquivo, sizeof arquivo, "InfoOrg/Org%i.ini", orgid);
269
	format(_string, sizeof _string, "Membro%i", vaga);
270
	if(IsPlayerOnline(Membros[orgid][vaga]))
271
	{
272
	    new ID = GetPlayerID(Membros[orgid][vaga]);
273
	    Demitir(ID);
274
	}
275
	else
276
	{
277
	    DOF2::SetString(arquivo, _string, "Ninguem");
278
		DOF2::SaveFile();
279
	    strmid(Membros[orgid][vaga], "Ninguem", 0, strlen("Ninguem"), 128);
280
	}
281
	return 1;
282
}
283
284
/******************************************************************************/
285
286
Promover(playerid, cargo)
287
{
288
	new orgid = PlayerInfo[playerid][pMembro];
289
	new arquivo[32], _string[15];
290
	new vaga = GetPlayerVaga(playerid);
291
	format(_string, sizeof _string, "Membro%i", vaga);
292
	format(arquivo, sizeof arquivo, "InfoOrg/Org%i.ini", orgid);
293
	if(cargo == 4)
294
	{
295
		new subantigo[24];
296
	    if(strcmp(Org[orgid][SubLider], "Ninguem", false))
297
	    {
298
	        if(IsPlayerOnline(Org[orgid][SubLider]))
299
	        {
300
	            new ID = GetPlayerID(Org[orgid][SubLider]);
301
				GetPlayerName(ID, subantigo, sizeof subantigo);
302
				strmid(Membros[orgid][vaga], subantigo, 0, strlen(subantigo),128);
303
				strmid(Org[orgid][SubLider], Nome(playerid), 0, strlen(Nome(playerid)), 128);
304
305
				DOF2::SetString(arquivo, _string, subantigo);
306
				DOF2::SetString(arquivo, "SubLider", Nome(playerid));
307
				DOF2::SaveFile();
308
				
309
				PlayerInfo[ID][pCargo] = 3;
310
				PlayerInfo[playerid][pCargo] = 4;
311
				SendClientMessage(ID, GetOrgColor(orgid), "Um novo sub líder foi escolhido, você foi rebaixado a cargo 3!");
312
313
				SalvarConta(playerid);
314
				SalvarConta(ID);
315
			}
316
			else
317
			{
318
			    strmid(subantigo, Org[orgid][SubLider], 0, strlen(Org[orgid][SubLider]), 128);
319
320
				DOF2::SetString(arquivo, _string, subantigo);
321
				DOF2::SetString(arquivo, "SubLider", Nome(playerid));
322
				DOF2::SaveFile();
323
				
324
				format(arquivo, sizeof arquivo, "Contas/%s.ini", subantigo);
325
				DOF2::SetInt(arquivo, "Cargo", 3);
326
				DOF2::SaveFile();
327
				
328
				strmid(Membros[orgid][GetPlayerVaga(playerid)], subantigo, 0, strlen(subantigo), 128);
329
				strmid(Org[orgid][SubLider], Nome(playerid), 0, strlen(Nome(playerid)), 128);
330
				PlayerInfo[playerid][pCargo] = 4;
331
332
				SalvarConta(playerid);
333
				return 1;
334
			}
335
		}
336
		else
337
		{
338
		    strmid(Org[orgid][SubLider], Nome(playerid), 0, strlen(Nome(playerid)), 128);
339
		    strmid(Membros[orgid][vaga], "Ninguem", 0, strlen("Ninguem"), 128);
340
341
			DOF2::SetString(arquivo, "SubLider", Nome(playerid));
342
			DOF2::SetString(arquivo, _string, "Ninguem");
343
			DOF2::SaveFile();
344
			
345
		    PlayerInfo[playerid][pCargo] = 4;
346
		    SalvarConta(playerid);
347
		    return 1;
348
		}
349
	}
350
	PlayerInfo[playerid][pCargo] = cargo;
351
	return 1;
352
}
353
354
/******************************************************************************/
355
356
GetOrgName(orgid,name[],len)
357
{
358
	if(orgid == ORG_CIVIL) return format(name, len, "Nenhuma", 0);
359
	if(orgid == ORG_POLICIAM) return format(name, len, "Polícia Militar", 0);
360
	if(orgid == ORG_BOPE) return format(name, len, "B.O.P.E", 0);
361
	if(orgid == ORG_GROVE) return format(name, len, "Grove Street", 0);
362
	if(orgid == ORG_BALLAS) return format(name, len, "Ballas", 0);
363
	return 1;
364
}
365
366
/******************************************************************************/
367
368
GetOrgColor(orgid)
369
{
370
	if(orgid == ORG_CIVIL) return COLOR_WHITE;
371
	if(orgid == ORG_POLICIAM) return COR_POLICIA;
372
	if(orgid == ORG_BOPE) return COR_BOPE;
373
	if(orgid == ORG_GROVE) return COR_GROVE;
374
	if(orgid == ORG_BALLAS) return COR_BALLAS;
375
	return 1;
376
}
377
378
/******************************************************************************/
379
380
Nome(playerid)
381
{
382
 	new name[MAX_PLAYER_NAME];
383
	GetPlayerName(playerid,name,sizeof(name));
384
	return name;
385
}
386
387
/******************************************************************************/
388
389
IsPlayerOnline(nome[])
390
{
391
	foreach(Player,i)
392
	{
393
	    if(strcmp(nome, Nome(i), true) == 0)
394
	    {
395
	        return 1;
396
	    }
397
	}
398
	return 0;
399
}
400
401
/******************************************************************************/
402
403
GetPlayerID(nome[])
404
{
405
	foreach(Player,i)
406
	{
407
	    if(strcmp(nome, Nome(i), true) == 0)
408
	    {
409
			return i;
410
		}
411
	}
412
	return INVALID_PLAYER_ID;
413
}
414
415
/******************************************************************************/
416
417
IsOrgFull(orgid)
418
{
419
	if(strcmp(Membros[orgid][1], "Ninguem", false) &&
420
	strcmp(Membros[orgid][2], "Ninguem", false) &&
421
	strcmp(Membros[orgid][3], "Ninguem", false)&&
422
	strcmp(Membros[orgid][4], "Ninguem", false)&&
423
	strcmp(Membros[orgid][5], "Ninguem", false))
424
	{
425
	    return 1;
426
	}
427
	return 0;
428
}
429
430
/******************************************************************************/
431
432
GetPlayerVaga(playerid)
433
{
434
	new orgid = PlayerInfo[playerid][pMembro];
435
	for(new i = 1; i < MAX_MEMBROS; i++)
436
	{
437
	    if(strcmp(Membros[orgid][i], Nome(playerid), true) == 0)
438
	    {
439
	        return i;
440
	    }
441
	}
442
	return -255;
443
}
444
445
/******************************************************************************/
446
447
CMD:darlider(playerid,params[])
448
{
449
    new id,orgid;
450
	if(PlayerInfo[playerid][pAdmin] < 4)return SendClientMessage(playerid, COLOR_RED, "( ERRO ): Você não possui permissão para usar este comando !");
451
	if(sscanf(params, "ui", id, orgid)) return SendClientMessage(playerid, COLOR_GRAY, "( USE ): /darlider [ ID/NOME ] [ ORG ID ]");
452
    if(!IsPlayerConnected(id))return SendClientMessage(playerid, COLOR_RED, "( ERRO ): Id inválido ou offline !");
453
	if(orgid < 1 || orgid > 4)return SendClientMessage(playerid, COLOR_RED, "( ERRO ): Orgs apenas de 1 a 4.");
454
	if(PlayerInfo[id][pMembro] > 0)return SendClientMessage(playerid, COLOR_RED, "( ERRO ): Este jogador já faz parte de uma organização !");
455
	if(strcmp(Org[orgid][Lider], "Ninguem", false))return SendClientMessage(playerid, COLOR_RED, "( ERRO ): Esta organização já possui lider.");
456
	GetOrgName(orgid, OrgName, sizeof(OrgName));
457
	format(_@STR, sizeof(_@STR), "( ADMIN ): Você promoveu ( {FFFFFF}%s{00FFFF} ) a líder da organização ( {FFFFFF}%s{00FFFF} ).", Nome(id), OrgName);
458
	SendClientMessage(playerid, COLOR_CYAN, _@STR);
459
	format(_@STR, sizeof(_@STR),"( ADMIN ): Você foi promovido a líder da organização ( {FFFFFF}%s{00FFFF} ) pelo admin ( {FFFFFF}%s{00FFFF} ).", OrgName, Nome(playerid));
460
	SendClientMessage(id, COLOR_CYAN, _@STR);
461
	strmid(Org[orgid][Lider], Nome(id), 0, strlen(Nome(id)), 128);
462
	format(_@STR, sizeof(_@STR), "InfoOrg/Org%i.ini", orgid);
463
	DOF2::SetString(_@STR, "Lider", Nome(id));
464
	DOF2::SaveFile();
465
	PlayerInfo[playerid][pMembro] = orgid;
466
	PlayerInfo[playerid][pCargo] = 5;
467
	SpawnPlayer(id);
468
	return 1;
469
}
470
471
CMD:limparlider(playerid,params[])
472
{
473
    new orgid;
474
    if(PlayerInfo[playerid][pAdmin] < 4)return SendClientMessage(playerid, COLOR_RED, "( ERRO ): Você não possui permissão para usar este comando !");
475
	if(sscanf(params, "i", orgid)) return SendClientMessage(playerid, COLOR_GRAY, "( USE ): /limparlider [ ORG ID ]");
476
	if(orgid < 1 || orgid > 4)return SendClientMessage(playerid, COLOR_RED, "( ERRO ): Orgs apenas de 1 a 4.");
477
	if(strcmp(Org[orgid][Lider], "Ninguem", true) == 0)return SendClientMessage(playerid, COLOR_RED, "( ERRO ): Esta organização não possui lider.");
478
	GetOrgName(orgid, OrgName, sizeof(OrgName));
479
	format(_@STR, sizeof(_@STR), "( ADMIN ): Você limpou a vaga de líder da organização ( {FFFFFF}%s{00FFFF} ) [ {FFFFFF}ID: %i{00FFFF} ]", OrgName, orgid);
480
	SendClientMessage(playerid, COLOR_CYAN, _@STR);
481
	if(IsPlayerOnline(Org[orgid][Lider]))
482
	{
483
		new ID = GetPlayerID(Org[orgid][Lider]);
484
		Demitir(ID);
485
	}
486
	else
487
	{
488
	    strmid(Org[orgid][Lider], "Ninguem", 0, strlen("Ninguem"), 128);
489
	    format(_@STR, sizeof(_@STR), "InfoOrg/Org%i.ini", orgid);
490
	    DOF2::SetString(_@STR, "Lider", "Ninguem");
491
		DOF2::SaveFile();
492
	}
493
	return 1;
494
}
495
496
/******************************************************************************/
497
498
CMD:convidar(playerid,params[])
499
{
500
    new id, orgid = PlayerInfo[playerid][pMembro];
501
	if(PlayerInfo[playerid][pMembro] == 0)return SendClientMessage(playerid, COLOR_RED, "( ERRO ): Você não faz parte de uma organização !");
502
	if(PlayerInfo[playerid][pCargo] < 4)return SendClientMessage(playerid, COLOR_RED, "( ERRO ): Somente lideres e sub-lideres podem fazer convites !");
503
	if(sscanf(params, "u", id))return SendClientMessage(playerid, COLOR_GRAY, "( USE ): /convidar [ ID/NOME ]");
504
	if(!IsPlayerConnected(id))return SendClientMessage(playerid, COLOR_RED, "( ERRO ): Id inválido ou offline !");
505
	if(IsOrgFull(orgid))return SendClientMessage(playerid, COLOR_RED, "( ERRO ): Sua organização alcançou o limite de membros !");
506
	if(PlayerInfo[id][pMembro] > 0)return SendClientMessage(playerid, COLOR_RED, "( ERRO ): Este jogador já faz parte de uma organização !");
507
	if(GetPVarInt(id, "OrgConvite") > 0)return SendClientMessage(playerid, COLOR_RED, "( ERRO ): Este jogador possui um convite pendente, após a resposta do mesmo retorne a convidá-lo !");
508
	GetOrgName(orgid, OrgName, sizeof(OrgName));
509
	SetPVarInt(id, "OrgConvite", orgid);
510
	format(_@STR, sizeof(_@STR), " {00FFFF}Convite de {FFFFFF}%s{00FFFF}, \n para fazer parte da organização: \n {FFFFFF}%s", Nome(playerid), OrgName);
511
	ShowPlayerDialog(id, DIALOG_CONVIDAR, DIALOG_STYLE_MSGBOX, "Convite para Organização:", _@STR, "Aceitar", "Recusar");
512
	SendClientMessage(playerid, GetOrgColor(orgid), "Convite enviado!");
513
	return 1;
514
}
515
516
CMD:demitir(playerid,params[])
517
{
518
    new id, motivo[64];
519
    if(PlayerInfo[playerid][pMembro] == 0)return SendClientMessage(playerid, COLOR_RED, "( ERRO ): Você não faz parte de uma organização !");
520
	if(PlayerInfo[playerid][pCargo] < 4)return SendClientMessage(playerid, COLOR_RED, "( ERRO ): Somente lideres e sub-lideres podem fazer demições !");
521
	if(sscanf(params, "us[64]", id, motivo))return SendClientMessage(playerid, COLOR_GRAY, "( USE ): /demitir [ ID/NOME ] [ MOTIVO ]");
522
	if(!IsPlayerConnected(id))return SendClientMessage(playerid, COLOR_RED, "( ERRO ): Id inválido ou offline !");
523
	if(id == playerid)return SendClientMessage(playerid, COLOR_GRAY, "( USE ): '/pedircontas' caso queira se demitir !");
524
	if(PlayerInfo[id][pMembro] != PlayerInfo[playerid][pMembro])return SendClientMessage(playerid, COLOR_RED, "( ERRO ): Este jogador pertence a outra organização !");
525
	if(PlayerInfo[id][pCargo] == 5)return SendClientMessage(playerid, COLOR_RED, "( ERRO ): Somente administradores removem lideres !");
526
	format(_@STR, sizeof(_@STR), "( ORG ): Você demitiu ( {FFFFFF}%s{00FFFF} ) da organização, ( {FFFFFF}Motivo: %s{00FFFF} ).", Nome(id), motivo);
527
	SendClientMessage(playerid, COLOR_CYAN, _@STR);
528
	format(_@STR, sizeof(_@STR), "( ORG ): Você foi demitido da organização por ( {FFFFFF}%s{00FFFF} ), ( {FFFFFF}Motivo: %s{00FFFF} ).", Nome(playerid), motivo);
529
	SendClientMessage(id, COLOR_CYAN, _@STR);
530
	Demitir(id);
531
	return 1;
532
}
533
534
CMD:limparvaga(playerid,params[])
535
{
536
	new vaga[10];
537
    if(PlayerInfo[playerid][pMembro] == 0)return SendClientMessage(playerid, COLOR_RED, "( ERRO ): Você não faz parte de uma organização !");
538
	if(PlayerInfo[playerid][pCargo] < 4)return SendClientMessage(playerid, COLOR_RED, "( ERRO ): Somente lideres e sub-lideres podem fazer demições !");
539
	if(sscanf(params, "s[10]", vaga))return SendClientMessage(playerid, COLOR_GRAY, "( USE ): /limparvaga [ ID VAGA ]"), SendClientMessage(playerid, COLOR_GRAY, "( USE ): '/limparvaga sub' , para limpar o sublider !");
540
541
	new orgid = PlayerInfo[playerid][pMembro];
542
	if(strcmp(vaga, "sub", true) == 0)
543
	{
544
	    if(strcmp(Org[orgid][SubLider], "Ninguem", true) == 0)return SendClientMessage(playerid, COLOR_RED, "( ERRO ): Esta organização não possui sub-lider");
545
		if(IsPlayerOnline(Org[orgid][SubLider]))
546
		{
547
		    new ID = GetPlayerID(Org[orgid][SubLider]);
548
		    Demitir(ID);
549
		}
550
		else
551
		{
552
			strmid(Org[orgid][SubLider], "Ninguem", 0, strlen("Ninguem"), 128);
553
			format(_@STR, sizeof(_@STR),"InfoOrg/Org%i.ini", orgid);
554
			DOF2::SetString(_@STR, "SubLider", "Ninguem");
555
		}
556
		SendClientMessage(playerid, GetOrgColor(orgid), "( ORG ): Você limpou a vaga de sub-lider !");
557
		return 1;
558
	}
559
	format(_@STR, sizeof(_@STR), "( ORG ): Você limpou a vaga %i !", strval(vaga));
560
	SendClientMessage(playerid, GetOrgColor(orgid), _@STR);
561
	Limpar(orgid, strval(vaga));
562
	return 1;
563
}
564
565
CMD:promover(playerid,params[])
566
{
567
	new id, cargo;
568
    if(PlayerInfo[playerid][pMembro] == 0)return SendClientMessage(playerid, COLOR_RED, "( ERRO ): Você não faz parte de uma organização !");
569
	if(PlayerInfo[playerid][pCargo] < 4)return SendClientMessage(playerid, COLOR_RED, "( ERRO ): Somente lideres e sub-lideres podem fazer demições !");
570
	if(sscanf(params, "ui", id, cargo))return SendClientMessage(playerid, COLOR_GRAY, "( USE ): /promover [ ID/NOME ] [ CARGO ]");
571
	if(!IsPlayerConnected(id))return SendClientMessage(playerid, COLOR_RED, "( ERRO ): Id inválido ou offline !");
572
	if(PlayerInfo[id][pMembro] != PlayerInfo[playerid][pMembro])return SendClientMessage(playerid, COLOR_RED, "( ERRO ): Este jogador pertence a outra organização !");
573
	if(cargo < 1 || cargo > 4)return SendClientMessage(playerid, COLOR_RED, "( ERRO ): Cargos apenas de 1 a 4.");
574
575
	format(_@STR, sizeof(_@STR), "( ORG ): Você promoveu ( {FFFFFF}%s{00FFFF} ) a cargo ( {FFFFFF}%i{00FFFF} ).", Nome(id),cargo);
576
	SendClientMessage(playerid, COLOR_CYAN, _@STR);
577
	format(_@STR, sizeof(_@STR), "( ORG ): Você foi promovido a cargo ( {FFFFFF}%i{00FFFF} ) pelo ( {FFFFFF}%s{00FFFF} ).",cargo, Nome(playerid));
578
	SendClientMessage(id, COLOR_CYAN, _@STR);
579
	Promover(id, cargo);
580
	return 1;
581
}
582
583
CMD:infoorg(playerid)
584
{
585
    new orgid = PlayerInfo[playerid][pMembro];
586
	if(PlayerInfo[playerid][pMembro] == 0)return SendClientMessage(playerid, COLOR_RED, "( ERRO ): Você não faz parte de uma organização !");
587
 	SendClientMessage(playerid, COLOR_RED, "~~~~~~~~~~~~( {FFFFFF}Informações da Organização{FF0000} )~~~~~~~~~~~~");
588
    SendClientMessage(playerid, -1, " ");
589
	format(_@STR, sizeof(_@STR), "Lider: %s", Org[orgid][Lider]);
590
	SendClientMessage(playerid, GetOrgColor(orgid), _@STR);
591
	format(_@STR, sizeof(_@STR), "Sub Lider: %s", Org[orgid][SubLider]);
592
	SendClientMessage(playerid, GetOrgColor(orgid), _@STR);
593
	for(new i = 1; i < MAX_MEMBROS; i++)
594
	{
595
		format(_@STR, sizeof(_@STR), "Membro%i: %s", i, Membros[orgid][i]);
596
		SendClientMessage(playerid, GetOrgColor(orgid), _@STR);
597
	}
598
    SendClientMessage(playerid, -1, " ");
599
	SendClientMessage(playerid, COLOR_RED, "~~~~~~~~~~~~( {FFFFFF}Informações da Organização{FF0000} )~~~~~~~~~~~~");
600
	return 1;
601
}
602
603
CMD:membros(playerid)
604
{
605
	if(PlayerInfo[playerid][pMembro] == 0)return SendClientMessage(playerid, COLOR_RED, "( ERRO ): Você não faz parte de uma organização !");
606
	SendClientMessage(playerid, COLOR_RED, "~~~~~~~~~~~~( {FFFFFF}Membros Online{FF0000} )~~~~~~~~~~~~");
607
    SendClientMessage(playerid, -1, " ");
608
	foreach(Player, i)
609
	{
610
	    if(IsPlayerConnected(i))
611
	    {
612
		    if(PlayerInfo[i][pMembro] == PlayerInfo[playerid][pMembro])
613
		    {
614
		        format(_@STR, sizeof(_@STR), "Nome: %s, Cargo: %d", Nome(i), PlayerInfo[i][pCargo]);
615
		        SendClientMessage(playerid, GetOrgColor(PlayerInfo[i][pMembro]), _@STR);
616
		        Members++;
617
		    }
618
		}
619
		if(Members == 0)return SendClientMessage(playerid, COLOR_WHITE, "Não tem membros online !");
620
	}
621
    SendClientMessage(playerid, -1, " ");
622
	SendClientMessage(playerid, COLOR_RED, "~~~~~~~~~~~~( {FFFFFF}Membros Online{FF0000} )~~~~~~~~~~~~");
623
	return 1;
624
}
625
626
/******************************************************************************/
627
628
CMD:orgs(playerid)
629
{
630
	SendClientMessage(playerid, COLOR_RED, "~~~~~~~~~~~~( {FFFFFF}Organizações{FF0000} )~~~~~~~~~~~~");
631
    SendClientMessage(playerid, -1, " ");
632
	for(new i = 1; i < MAX_ORGS; i++)
633
	{
634
	    GetOrgName(i, OrgName, sizeof(OrgName));
635
	    format(_@STR, sizeof(_@STR), "[ %i ]: %s - Líder: %s", i, OrgName, Org[i][Lider]);
636
	    SendClientMessage(playerid, GetOrgColor(i), _@STR);
637
	}
638
	SendClientMessage(playerid, -1, " ");
639
	SendClientMessage(playerid, COLOR_RED, "~~~~~~~~~~~~( {FFFFFF}Organizações{FF0000} )~~~~~~~~~~~~");
640
	return 1;
641
}
642
643
CMD:lideres(playerid)
644
{
645
 	SendClientMessage(playerid, COLOR_RED, "~~~~~~~~~~~~( {FFFFFF}Lideres Online{FF0000} )~~~~~~~~~~~~");
646
 	SendClientMessage(playerid, -1, " ");
647
	foreach(Player, i)
648
	{
649
	    if(IsPlayerConnected(i))
650
	    {
651
	    	if(PlayerInfo[i][pCargo] == 5)
652
	    	{
653
	        	GetOrgName(PlayerInfo[i][pMembro], OrgName, sizeof(OrgName));
654
	        	format(_@STR, sizeof(_@STR), "Nome: %s - Organização: %s", Nome(i), _@STR);
655
	        	SendClientMessage(playerid, GetOrgColor(PlayerInfo[i][pMembro]), _@STR);
656
				Lideres++;
657
			}
658
		}
659
		if(Lideres == 0)return SendClientMessage(playerid, COLOR_WHITE, "Não tem lideres online !");
660
	}
661
	SendClientMessage(playerid, -1, " ");
662
	SendClientMessage(playerid, COLOR_RED, "~~~~~~~~~~~~( {FFFFFF}Lideres Online{FF0000} )~~~~~~~~~~~~");
663
	return 1;
664
}
665
666
CMD:subs(playerid)
667
{
668
	SendClientMessage(playerid, COLOR_RED, "~~~~~~~~~~~~( {FFFFFF}Sub-Lideres Online{FF0000} )~~~~~~~~~~~~");
669
	SendClientMessage(playerid, -1, " ");
670
	foreach(Player, i)
671
	{
672
	    if(IsPlayerConnected(i))
673
	    {
674
	    	if(PlayerInfo[i][pCargo] == 4)
675
	    	{
676
	        	GetOrgName(PlayerInfo[i][pMembro], OrgName, sizeof(OrgName));
677
	        	format(_@STR, sizeof(_@STR), "Nome: %s - Organização: %s", Nome(i), _@STR);
678
	        	SendClientMessage(playerid, GetOrgColor(PlayerInfo[i][pMembro]), _@STR);
679
	        	Subs++;
680
			}
681
		}
682
		if(Subs == 0)return SendClientMessage(playerid, COLOR_WHITE, "Não tem sub-lideres online !");
683
	}
684
	SendClientMessage(playerid, -1, " ");
685
	SendClientMessage(playerid, COLOR_RED, "~~~~~~~~~~~~( {FFFFFF}Sub-Lideres Online{FF0000} )~~~~~~~~~~~~");
686
	return 1;
687
}
688
689
/******************************************************************************/
690
691
CMD:admin(playerid)return PlayerInfo[playerid][pAdmin] = 4;