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;
CMD:sef(playerid, params[])
{
new
userOption,
userItems,
userAmount,
orgID;
if (gPlayerData > 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; - Pocetni element tog niza je sad 0
// nekiNiz = 0; - Drugi element tog niza je sada 0, a ne prvi element niza
orgID = gPlayerData - 1;
if (sscanf(params, "s{sd}", 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 [mats/droga] ");
return 1;
}
if (!strcmp(userOption, "uzmi", true)) // Ako je igrac odabrao opciju 'uzmi'
{
if (sscanf(params, "{s}s{d}", userItems))
return SendClientMessage(playerid, C_WHITE, "KORISTI: /sef uzmi [mats/droga] ");
if (!strcmp(userItems, "mats", true)) // Ako je igrac odabrao opciju 'mats'
{
if (sscanf(params, "{ss}d", userAmount))
return SendClientMessage(playerid, C_WHITE, "KORISTI: /sef uzmi mats ");
else if (gOrgData < userAmount)
return SendClientMessage(playerid, C_WHITE, "ERROR: Nema toliko materijala u sefu");
gOrgData -= userAmount; // Oduzmemo tu kolicinu materijala iz sefa
gPlayerData += 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, "{ss}d", userAmount))
return SendClientMessage(playerid, C_WHITE, "KORISTI: /sef uzmi droga ");
else if (gOrgData < userAmount)
return SendClientMessage(playerid, C_WHITE, "ERROR: Nema toliko droge u sefu");
gOrgData -= userAmount; // Oduzmemo tu kolicinu droge iz sefa
gPlayerData += 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}s{d}", userItems))
return SendClientMessage(playerid, C_WHITE, "KORISTI: /sef ostavi [mats/droga] ");
if (!strcmp(userItems, "mats", true)) // Ako je igrac odabrao opciju 'mats'
{
if (sscanf(params, "{ss}d", userAmount))
return SendClientMessage(playerid, C_WHITE, "KORISTI: /sef ostavi mats ");
else if (gPlayerData < userAmount)
return SendClientMessage(playerid, C_WHITE, "ERROR: Nemas toliko materijala kod sebe");
gOrgData += userAmount; // Dodamo tu kolicinu materijala u sefa
gPlayerData -= 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, "{ss}d", userAmount))
return SendClientMessage(playerid, C_WHITE, "KORISTI: /sef ostavi droga ");
else if (gPlayerData < userAmount)
return SendClientMessage(playerid, C_WHITE, "ERROR: Nemas toliko droge kod sebe");
gOrgData += userAmount; // Dodamo tu kolicinu droge u sefa
gPlayerData -= userAmount; // I oduzmemo tu kolicinu droge igracu
SendClientMessage(playerid, C_WHITE, "Uspjesno si ostavio drogu");
}
}
}
else if (gPlayerData > 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; - Pocetni element tog niza je sad 0
// nekiNiz = 0; - Drugi element tog niza je sada 0, a ne prvi element niza
orgID = gPlayerData - 1;
if (sscanf(params, "s{sd}", 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 [mats/droga] ");
return 1;
}
if (!strcmp(userOption, "ostavi", true)) // Ako je igrac odabrao opciju 'ostavi'
{
if (sscanf(params, "{s}s{d}", userItems))
return SendClientMessage(playerid, C_WHITE, "KORISTI: /sef ostavi [mats/droga] ");
if (!strcmp(userItems, "mats", true)) // Ako je igrac odabrao opciju 'mats'
{
if (sscanf(params, "{ss}d", userAmount))
return SendClientMessage(playerid, C_WHITE, "KORISTI: /sef ostavi mats ");
else if (gPlayerData < userAmount)
return SendClientMessage(playerid, C_WHITE, "ERROR: Nemas toliko materijala kod sebe");
gOrgData += userAmount; // Dodamo tu kolicinu materijala u sefa
gPlayerData -= 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, "{ss}d", userAmount))
return SendClientMessage(playerid, C_WHITE, "KORISTI: /sef ostavi droga ");
else if (gPlayerData < userAmount)
return SendClientMessage(playerid, C_WHITE, "ERROR: Nemas toliko droge kod sebe");
gOrgData += userAmount; // Dodamo tu kolicinu droge u sefa
gPlayerData -= 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

