Balkan SA:MP

PAWN skriptanje, gamemodovi, filterskripte, include fajlovi, mape, pluginovi => Razgovor u vezi PAWN - skriptanja => Temu započeo: luka2223 poslato Novembar 30, 2014, 18:08:01 POSLE PODNE

Naslov: [SAVJET]Pomoc
Poruka od: luka2223 poslato Novembar 30, 2014, 18:08:01 POSLE PODNE
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
Naslov: Odg: [SAVJET]Pomoc
Poruka od: K ROSE poslato Novembar 30, 2014, 18:42:00 POSLE PODNE
mozes napraviti isto tako, ali da je pod istom komandom to ne mozes