[SAVJET]Pomoc


Započeo luka2223, Novembar 30, 2014, 18:08:01 POSLE PODNE

prethodna tema - sledeća tema

0 članova i 1 gost pregledaju ovu temu.

O kakvom savjetu se radi:Dali mi mozete reci sad kad bi ja napravio drugu org i nista ne dirao u vezi sefa dali bi naprimer igrac koji je lider te druge org mogao uzimat iz prve org iz sefa..evo koda dole
Detaljan opis savjeta:
// Ovo ispod dodajte na pocetak skripte
// Ovo je dio koda u kojem definiramo gdje ce bit spremljeni podaci o organizaciji, tj. o kolicini materijala u sefu organizacije
enum E_ORG_DATA
{
	E_ORG_MATS,
	E_ORG_DROGS
};

new
	gOrgData[MAX_ORGS][E_ORG_DATA];
	
CMD:sef(playerid, params[])
{	
	new
		userOption[7],
		userItems[6],
		userAmount,
		orgID;
	
	if (gPlayerData[playerid][E_PLAYER_LEADER] > 0) // Ako je igrac lider organizacije
	{	
		// Uzimamo ID organizacije, ali smanjujemo taj broj jer u PAWN-u array (niz) pocinje sa 0, a ne sa 1, a mi spremamo ID organizacije od 1
		// Primjer: nekiNiz[0] = 0; - Pocetni element tog niza je sad 0
		//          nekiNiz[1] = 0; - Drugi element tog niza je sada 0, a ne prvi element niza
		orgID = gPlayerData[playerid][E_PLAYER_LEADER] - 1;
	
		if (sscanf(params, "s[7]{s[6]d}", userOption)) // Ako igrac nije upisao sve potrebne parametre, ispisuje mu poruku i opcije koje moze koristiti
		{
			SendClientMessage(playerid, C_WHITE, "OPCIJE: uzmi ostavi");
			SendClientMessage(playerid, C_WHITE, "KORISTI: /sef [opcija] [mats/droga] [kolicina]");
			return 1;
		}
		
		if (!strcmp(userOption, "uzmi", true)) // Ako je igrac odabrao opciju 'uzmi'
		{
			if (sscanf(params, "{s[7]}s[6]{d}", userItems))
				return SendClientMessage(playerid, C_WHITE, "KORISTI: /sef uzmi [mats/droga] [kolicina]");
				
			if (!strcmp(userItems, "mats", true)) // Ako je igrac odabrao opciju 'mats'
			{
				if (sscanf(params, "{s[7]s[6]}d", userAmount))
					return SendClientMessage(playerid, C_WHITE, "KORISTI: /sef uzmi mats [kolicina]");
				else if (gOrgData[orgID][E_ORG_MATS] < userAmount)
					return SendClientMessage(playerid, C_WHITE, "ERROR: Nema toliko materijala u sefu");
					
				gOrgData[orgID][E_ORG_MATS] -= userAmount; // Oduzmemo tu kolicinu materijala iz sefa
				gPlayerData[playerid][E_PLAYER_MATS] += userAmount; // I dodamo tu kolicinu materijala igracu
				
				SendClientMessage(playerid, C_WHITE, "Uspjesno si uzeo materijale");
			}	
			else if (!strcmp(userItems, "droga", true)) // Ako je igrac odabrao opciju 'droga'
			{
				if (sscanf(params, "{s[7]s[6]}d", userAmount))
					return SendClientMessage(playerid, C_WHITE, "KORISTI: /sef uzmi droga [kolicina]");
				else if (gOrgData[orgID][E_ORG_DROGS] < userAmount)
					return SendClientMessage(playerid, C_WHITE, "ERROR: Nema toliko droge u sefu");
					
				gOrgData[orgID][E_ORG_DROGS] -= userAmount; // Oduzmemo tu kolicinu droge iz sefa
				gPlayerData[playerid][E_PLAYER_DROGS] += userAmount; // I dodamo tu kolicinu droge igracu
				
				SendClientMessage(playerid, C_WHITE, "Uspjesno si uzeo drogu");
			}	
		}
		else if (!strcmp(userOption, "ostavi", true)) // Ako je igrac odabrao opciju 'ostavi'
		{
			if (sscanf(params, "{s[7]}s[6]{d}", userItems))
				return SendClientMessage(playerid, C_WHITE, "KORISTI: /sef ostavi [mats/droga] [kolicina]");
				
			if (!strcmp(userItems, "mats", true)) // Ako je igrac odabrao opciju 'mats'
			{
				if (sscanf(params, "{s[7]s[6]}d", userAmount))
					return SendClientMessage(playerid, C_WHITE, "KORISTI: /sef ostavi mats [kolicina]");
				else if (gPlayerData[playerid][E_PLAYER_MATS] < userAmount)
					return SendClientMessage(playerid, C_WHITE, "ERROR: Nemas toliko materijala kod sebe");
					
				gOrgData[orgID][E_ORG_MATS] += userAmount; // Dodamo tu kolicinu materijala u sefa
				gPlayerData[playerid][E_PLAYER_MATS] -= userAmount; // I oduzmemo tu kolicinu materijala igracu
				
				SendClientMessage(playerid, C_WHITE, "Uspjesno si ostavio materijale");
			}	
			else if (!strcmp(userItems, "droga", true)) // Ako je igrac odabrao opciju 'droga'
			{
				if (sscanf(params, "{s[7]s[6]}d", userAmount))
					return SendClientMessage(playerid, C_WHITE, "KORISTI: /sef ostavi droga [kolicina]");
				else if (gPlayerData[playerid][E_PLAYER_DROGS] < userAmount)
					return SendClientMessage(playerid, C_WHITE, "ERROR: Nemas toliko droge kod sebe");
					
				gOrgData[orgID][E_ORG_DROGS] += userAmount; // Dodamo tu kolicinu droge u sefa
				gPlayerData[playerid][E_PLAYER_DROGS] -= userAmount; // I oduzmemo tu kolicinu droge igracu
				
				SendClientMessage(playerid, C_WHITE, "Uspjesno si ostavio drogu");
			}	
		}
	}
	else if (gPlayerData[playerid][E_PLAYER_MEMBER] > 0) // Ako je igrac clan organizacije
	{	
		// Uzimamo ID organizacije, ali smanjujemo taj broj jer u PAWN-u array (niz) pocinje sa 0, a ne sa 1, a mi spremamo ID organizacije od 1
		// Primjer: nekiNiz[0] = 0; - Pocetni element tog niza je sad 0
		//          nekiNiz[1] = 0; - Drugi element tog niza je sada 0, a ne prvi element niza
		orgID = gPlayerData[playerid][E_PLAYER_MEMBER] - 1;
	
		if (sscanf(params, "s[7]{s[6]d}", userOption)) // Ako igrac nije upisao sve potrebne parametre, ispisuje mu poruku i opcije koje moze koristiti
		{
			SendClientMessage(playerid, C_WHITE, "OPCIJE: ostavi");
			SendClientMessage(playerid, C_WHITE, "KORISTI: /sef [opcija] [mats/droga] [kolicina]");
			return 1;
		}
		
		if (!strcmp(userOption, "ostavi", true)) // Ako je igrac odabrao opciju 'ostavi'
		{
			if (sscanf(params, "{s[7]}s[6]{d}", userItems))
				return SendClientMessage(playerid, C_WHITE, "KORISTI: /sef ostavi [mats/droga] [kolicina]");
				
			if (!strcmp(userItems, "mats", true)) // Ako je igrac odabrao opciju 'mats'
			{
				if (sscanf(params, "{s[7]s[6]}d", userAmount))
					return SendClientMessage(playerid, C_WHITE, "KORISTI: /sef ostavi mats [kolicina]");
				else if (gPlayerData[playerid][E_PLAYER_MATS] < userAmount)
					return SendClientMessage(playerid, C_WHITE, "ERROR: Nemas toliko materijala kod sebe");
					
				gOrgData[orgID][E_ORG_MATS] += userAmount; // Dodamo tu kolicinu materijala u sefa
				gPlayerData[playerid][E_PLAYER_MATS] -= userAmount; // I oduzmemo tu kolicinu materijala igracu
				
				SendClientMessage(playerid, C_WHITE, "Uspjesno si ostavio materijale");
			}	
			else if (!strcmp(userItems, "droga", true)) // Ako je igrac odabrao opciju 'droga'
			{
				if (sscanf(params, "{s[7]s[6]}d", userAmount))
					return SendClientMessage(playerid, C_WHITE, "KORISTI: /sef ostavi droga [kolicina]");
				else if (gPlayerData[playerid][E_PLAYER_DROGS] < userAmount)
					return SendClientMessage(playerid, C_WHITE, "ERROR: Nemas toliko droge kod sebe");
					
				gOrgData[orgID][E_ORG_DROGS] += userAmount; // Dodamo tu kolicinu droge u sefa
				gPlayerData[playerid][E_PLAYER_DROGS] -= userAmount; // I oduzmemo tu kolicinu droge igracu
				
				SendClientMessage(playerid, C_WHITE, "Uspjesno si ostavio drogu");
			}
		}
	}
	else return SendClientMessage(playerid, C_WHITE, "ERROR: Nisi niti lider organizacije niti clan");
	return 1;
}

Komentar:I ako moze pomoc kako da uradim drugi sef I da bude isto ovq komanda
Poslednja Izmena: Novembar 30, 2014, 18:18:48 POSLE PODNE od luka2223

mozes napraviti isto tako, ali da je pod istom komandom to ne mozes
Poslednja Izmena: Novembar 30, 2014, 18:42:23 POSLE PODNE od K ROSE