Pretraga

Pritisnite Enter za pretragu ili Escape za zatvaranje

Zaključano

[TuT] Pravljenje organizacija/bandi

Započeo Aleksandar?
pre 15 godina
13,467
pregleda
39
postova
Ova tema je zaključana. Samo moderatori i administratori mogu odgovarati.
fixman
Underboss
pre 15 godina
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
Hustler
pre 15 godina
dobar tut 😉
adam
Kingpin
pre 15 godina
Valjda ovi nece da obrisu ovo,bilo je ovakvih tutoriala ali sve obrisu...dobar tut
fixman
Underboss
pre 15 godina
ne bih bas rekao da je bio TUT slican ovom 🙂
tronix096
Street Runner
pre 15 godina
Bravo 🙂,dobro ce posluziti nekima ovo
Obrisan korisnik Obrisan korisnik
pre 15 godina
bravo aleksandre

sve me vise iznenadjujes

cestitam ti
zdrnjom
Street Runner
pre 14 godina
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
Underboss
pre 14 godina
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
Street Runner
pre 13 godina
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
Street Runner
pre 13 godina
Lijepo
CACTHER!
Enforcer
pre 13 godina
Bravo za trud!
Obrisan korisnik Obrisan korisnik
pre 13 godina
Pomoglo mi je 10/10
Ali aka Diablo
Enforcer
pre 13 godina
Ovaj tut si ukrao bio je objavljen prije mozda pola godine ja sam ga kopirao i isti je kao ovaj bas do rijeci
aleluja
Godfather
pre 13 godina
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
Godfather
pre 13 godina
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