[TuT] Pravljenje organizacija/bandi

Započeo Aleksandar?
6. Jan. 2011. Zaključano
13,518
pregleda
39
postova
fixman
5
Underboss
6. Jan. 2011.
Gledam malo po forumu i sve neki tutovi za GF i njegove edite,pa rek'o da napravim jedan TUT da nije za GF i sl..

Neki si postavljaju pitanja kako napraviti organizaciju/mafiju za mod od 0.

Evo jedan veoma jednostavan tutorial o tome.
Pa da pocnemo:

Pri vrhu vase scripte ispod #include "a_samp"

potrebno je da dodate sledece includse koje mozete naci na ovom forumu ili na samo forumu:

#include "Zcmd"
#include "sscanf2"
#include "dini"
#include "foreach"


Umjesto #include mozete koristiti  #include "Ime"(kao sto sam ja),potpuno je isto!

Sledeci korak je pravljenje komande kako dati nekome lidera!

Koristicemo Zcmd.
CMD:makelider(playerid, params[])
{
if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid,Plava,"Niste ovlasteni!");
new ID,level;
if(sscanf(params, "dd", ID, level)) return SendClientMessage(playerid, Plava, "Koristenje: /makelider [broj org]");
new file;
format(file,sizeof(file),"GdjeVamSeSpremaAcc/%s.ini", ImeIgraca(ID));
dini_IntSet(file,"Lider",level);
SetPVarInt(ID,"Lider",level);
return true;
}


Da pojasnimo malo.

if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid,Plava,"Niste ovlasteni!"); --ako igrac nije rcon ulogovan admin da mu ispisuje poruku.

if(sscanf(params, "dd", ID, level)) return SendClientMessage(playerid, Plava, "Koristenje: /makelider [broj org]"); -- ako ukucate /makelider,bez ID-a,ili bez broja org ispisace vam tu poruku(naravno ukoliko ste se rcon ulogovali)

format(file,sizeof(file),"GdjeVamSeSpremaAcc/%s.ini", ImeIgraca(ID));  -- ovde umjesto "GdjeVamSeSpremaAcc/%s.ini" unesite gdje se vama sprema acc,npr
"KorisnickiRacuni/%s.ini"

Kada ste nekome dali lidera,naravno da necete svakome ko hoce u tu orgaizaciju/mafiju davati lidera.
E pa onda idemo napraviti komandu da lider moze ozvati u organizaciju kog' hoce..
CMD:pozovi(playerid, params[])
{
if(GetPVarInt(playerid,"Lider") < 1) return SendClientMessage(playerid,Plava,"Niste ovlasteni!");
new ID,level;
if(sscanf(params, "dd", ID, level)) return SendClientMessage(playerid, Plava, "Koristenje: /pozovi [broj org]");
if(level != GetPVarInt(playerid,"Lider")) return SendClientMessage(playerid,Plava,"Ne mozete pozvati igraca u drugu org/mafiju.");
new file;
format(file,sizeof(file),"GdjeVamSeSpremaAcc/%s.ini", ImeIgraca(ID));
dini_IntSet(file,"Clan",level);
SetPVarInt(ID,"Clan",level);
return true;
}


Objasnjenje pogledaj gore!

Pozvali ste nekog' u organizaciju/mafiju? Zelite ga izbaciti? Idemo napraviti komadnu!
CMD:izbaci(playerid, params[])
{
if(GetPVarInt(playerid,"Lider") >= 1)
{
new ID;
if(sscanf(params, "d", ID)) return SendClientMessage(playerid, Plava, "Koristenje: /izbaci ");
if(GetPVarInt(ID,"Clan") != GetPVarInt(playerid,"Lider")) return SendClientMessage(playerid,Plava,"Ne mozete izbaciti igraca iz druge org/mafije.");
new file;
format(file,sizeof(file),"GdjeVamSeSpremaAcc/%s.ini", ImeIgraca(ID));
dini_IntSet(file,"Clan",0);
SetPVarInt(ID,"Clan",0);
}
return true;
}

Takodje,objasnjenja za pojedine linije pogledajte gore!

Zelite napraviti chat za organizaciju/mafiju?
Nista lakse!
CMD:chat(playerid,params[])
{
new tekst ;
if (sscanf(params, "s", tekst)) SendClientMessage(playerid,Plava,  "Koristenje: /chat ");
else{
if( GetPVarInt(playerid,"Lider") == 1) {
new string; format(string, sizeof(string), " Lider OrgJedan %s kaze: %s", ImeIgraca(playerid), params );
return PorukaOrgJedan(Plava,string);
}
else
{
if( GetPVarInt(playerid,"Clan") == 1 ) {
new string; format(string, sizeof(string), " Clan OrgJedan %s kaze: %s", ImeIgraca(playerid), params );
return PorukaOrgJedan(Plava,string);
}
else  return SendClientMessage(playerid,Plava,"Niste clan OrgJedan!");
}
}
return true;
}

Pitate se sta je PorukaOrgJedan(Plava,string);

Potrebno je da napravimo kako ce slati poruku.
forward PorukaOrgJedan(Boja, const string[]);
public PorukaOrgJedan(Boja, const string[])
{
foreach(Player, i)
{
if (GetPVarInt(i,"Lider") == 1 || GetPVarInt(i,"Clan") == 1) SendClientMessage(i, Boja, string);
}
return true;
}


Samim pogledom u ovaj public sve bi vam trebalo biti jasno..

Pitate se kako napraviti vozila da samo jedna mafija/organizacija moze voziti?

Prvo pri vrhu vase scrite,gdje vam se nalaze ostali "new" dodajte new orgauto;

Zatim,ispod OnGameModeInit potrebno je stvoriti vozila za organizacije/mafije.

To bi izgledalo ovako:

orgauto=AddStaticVehicleEx(487,121,21312,2131,112,17,17,30); --- pogledajte wikipediu za AddStaticVehicleEx
orgauto=AddStaticVehicleEx(487,121,21312,2131,112,17,17,30); --- pogledajte wikipediu za AddStaticVehicleEx
orgauto=AddStaticVehicleEx(487,121,21312,2131,112,17,17,30); --- pogledajte wikipediu za AddStaticVehicleEx

Zatim kako bi se lakse snalazili u scripti i da nam bude preglednije napravimo
stock OrgJedan(vozilo)
{
if(vozilo == orgauto || vozilo == orgauto || vozilo == orgauto )
{
return 1;
}
return 0;
}


Ukoliko zelite dodavati jos vozila kod lilije  new orgauto; ,broj povecavate za jedan,znaci ako imate 6 vozila stavite broj 7,ali je potrebno da i kod stock OrgJedan(vozilo) dodate jos vozila..

Sada smo napravili vozila za mafije,ali zelimo da odbijemo ulaz igracima koji nisu clanovi te organizacije/mafije.

Ispod OnPlayerStateChange dodajte

new voziloID = GetPlayerVehicleID(playerid);
if(newstate == 2)
{
if(OrgJedan(voziloID))
{
if(GetPVarInt(playerid,"Lider") == 1 || GetPVarInt(playerid,"Clan") == 1)
{
return true;
}
else
{
RemovePlayerFromVehicle(playerid);
SendClientMessage(playerid,Plava,"Niste clan OrgJedan!");
}
}
}

Takodje vam je potrebno da dodate sledeci stock jer bi vam izbacivalo error
stock ImeIgraca(playerid)
{
new ime;
GetPlayerName(playerid, ime, sizeof(ime));
return ime;
}


Ukoliko zelite napraviti da se igrac spawna u svojoj bazi ispod OnPlayerSpawn dodajte:
if(GetPVarInt(playerid,"Lider") == 1 || GetPVarInt(playerid,"Clan") )
{
SetPlayerPos(playerid, 123.2133,12312.2131,1231);
SetPlayerInterior(playerid, 0);
}


Potrebno je da definisete boju,ja sam koristio plavu pa ispod vasih ostalih #define-a dodajte #define Plava 0x375FFFFF

I zadnje sto trebate je da ispod OnPlayerConnect-a dodate
new file;
format(file, sizeof(file), "GdjeVamSeSpremaAcc/%s.ini", ImeIgraca(playerid));
SetPVarInt(playerid, "Lider", dini_Int(file, "Lider"));
SetPVarInt(playerid, "Clan", dini_Int(file, "Clan"));


Kao sto vidite koristio sam Zcmd,sscanf,dini,foreach itd,tako da bih se zahvalio onim akoji su to sve napravili!

Napomena: Gdje nisam pisao npr. "ovo stavite ispod OnPlayerSpawn" znaci da to stavljate izvan ostalih publica i sl..

NE GARANTUJEM da ce ovaj TUT 100% raditi,jer ja nisam isprobavao to.
Ako nekome nesta nije jasno neka pita,jer ja nisam objasnjavao sve u detalje!
Rastaman
3
Hustler
6. Jan. 2011.
dobar tut 😉
adam
5
Kingpin
6. Jan. 2011.
Valjda ovi nece da obrisu ovo,bilo je ovakvih tutoriala ali sve obrisu...dobar tut
fixman
5
Underboss
6. Jan. 2011.
ne bih bas rekao da je bio TUT slican ovom 🙂
tronix096
2
Street Runner
7. Jan. 2011.
Bravo 🙂,dobro ce posluziti nekima ovo
Deleted User
Obrisan korisnik
7. Jan. 2011.
bravo aleksandre

sve me vise iznenadjujes

cestitam ti
zdrnjom
3
Street Runner
5. Mar. 2011.
izvinjavam se na refreshu ali sta da radim sa ovim error-om treba definisati ali gdje i kako

C:\Documents and Settings\AND1\Desktop\CroHerzegovina.org\gamemodes\croherze-stunt.pwn(1416) : error 017: undefined symbol "ImeIgraca"
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase

1 Error.
fixman
5
Underboss
5. Mar. 2011.
nisi ubacio ovaj stock:
stock ImeIgraca(playerid)
{
new ime;
GetPlayerName(playerid, ime, sizeof(ime));
return ime;
}


Upozorenje - dok ste pisali poruku netko je poslao novi odgovor. Možda trebate revidirati svoju poruku.
Voca_Boy
2
Street Runner
7. Jun 2012.
jel bi mogao neko napravit ovakvo isto al samo za vozila, mislim  ne za org nego da samo jedan ili nekoliko igraca moze voziti a da nisu zajedno u org inace ovo je super, pomoglo mi 🙂 tnx
Slunto
2
Street Runner
7. Jun 2012.
Lijepo
CACTHER!
4
Enforcer
10. Jun 2012.
Bravo za trud!
Deleted User
Obrisan korisnik
12. Jun 2012.
Pomoglo mi je 10/10
Ali aka Diablo
4
Enforcer
12. Jun 2012.
Ovaj tut si ukrao bio je objavljen prije mozda pola godine ja sam ga kopirao i isti je kao ovaj bas do rijeci
aleluja
5
Godfather
18. Jun 2012.
Falloutâ„¢ wrote on June 17, 2012, 5:04 pm:
Solidan TuT, Samo mi je Ovaj Laksi i Bolje !

http://balkan-samp.com/forum/index.php?topic=30755.0

Ovaj tut je za modove od nule, a taj tvoj koji si dao link to je za GF. 😉
Nitro
5
Godfather
2. Jul 2012.
Ne razumem zasto mi izbacuje errore ☹️

D:\Documents and Settings\Zoran\Desktop\Copy of samp\gamemodes\south-europe.pwn(6698) : error 017: undefined symbol "OrgJedan"
D:\Documents and Settings\Zoran\Desktop\Copy of samp\gamemodes\south-europe.pwn(6702) : error 079: inconsistent return types (array & non-array)
D:\Documents and Settings\Zoran\Desktop\Copy of samp\gamemodes\south-europe.pwn(6711) : error 029: invalid expression, assumed zero
D:\Documents and Settings\Zoran\Desktop\Copy of samp\gamemodes\south-europe.pwn(6715) : error 090: public functions may not return arrays (symbol "OnPlayerStateChange")
D:\Documents and Settings\Zoran\Desktop\Copy of samp\gamemodes\south-europe.pwn(6717) : warning 225: unreachable code
D:\Documents and Settings\Zoran\Desktop\Copy of samp\gamemodes\south-europe.pwn(7220) : error 079: inconsistent return types (array & non-array)
D:\Documents and Settings\Zoran\Desktop\Copy of samp\gamemodes\south-europe.pwn(9685) : error 029: invalid expression, assumed zero
D:\Documents and Settings\Zoran\Desktop\Copy of samp\gamemodes\south-europe.pwn(9685) : error 017: undefined symbol "OrgJedan"
D:\Documents and Settings\Zoran\Desktop\Copy of samp\gamemodes\south-europe.pwn(9687) : error 017: undefined symbol "vozilo"
D:\Documents and Settings\Zoran\Desktop\Copy of samp\gamemodes\south-europe.pwn(9694) : warning 225: unreachable code
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase

8 Errors.

Morate biti prijavljeni da biste odgovorili na ovu temu.

Prijava

© 2026 SmartShark. All rights reserved.

Powered by Momentum|v2026.3.001 Alpha