Kako napraviti posao ?
Ovo cu napraviti
bez gledanja u bilo kakav mod tkd ako nesto pogresim molim vas da me ispravite :)
Checkpoints
Najprije cemo uci u sampdebug / obicni samp srw i sacuvati checkpointe sa /save [bilo sta] CP for JOB
Posle kada sacuvamo CP ici cemo u Computer / Documents / GTA San Andreas User Files / SAMP / savedpositions i tu ce vam pisati cordinate od vasih CP
Znaci nama samo trebaju X,Y,Z - https://imgur.com/a/PlUuYTX
News
Ovo cemo dodati negdje u vrhu skripte(sto se mene tice dodao bih odmah posle #defines ili gde nam stoje svi news):
[pawn]
new PosaoCP[MAX_PLAYERS]=-1;
new PosaoVozilo[1]; //stavite koliko imate vozila,u mom slucaju jedno
[/pawn]
I da,trebat ce vam Login / Register System za ovo gde mozete naci na slijedecem linku: https://balkan-samp.com/forum/index.php?topic=141107.0
Dodajte pPosao...
Komande
[pawn]
CMD:posao(playerid, params[])
{
if(IsPlayerInRangeOfPoint(playerid, 3.0, vase kordinate)) return SendClientMessage(playerid, -1, "Niste na mestu za zaposljavanje.");
PlayerInfo[playerid][pPosao] = 1; //zavisi koji je posao,ako imate vise poslova povecavate cifru sa 1 na vise
return 1;
}
CMD:linija(playerid, params[])
{
if(PlayerInfo[playerid][pPosao] == 1) return SendClientMessage(playerid, -1, "Niste zaposljen kao Bus Vozac");
SetPlayerCheckpoint(playerid, vase kordinate, 2);
PosaoCP[playerid] = 1;
return 1;
}
[/pawn]
OnPlayerEnterCheckpoint
Ovo dodajte pod
OnPlayerEnterCheckpoint[pawn]
switch(PosaoCP[playerid])
{
case 1:
{
//kada udje u 1 CP da mu nestane(DisablePlayerCheckpoint) i stvori drugi (SetPlayerCheckpoint)
DisablePlayerCheckpoint(playerid);
SCM(playerid, -1, ""IGBOJA"(ZADATAK) "BIJELA"Uspesno ste dosli do odredjene lokacije,nastavite dalje.");
SetPlayerCheckpoint(playerid, stavite svoje kordinate X Y Z, 2);
PosaoCP[playerid] = 2;
}
case 2:
{
DisablePlayerCheckpoint(playerid);
SCM(playerid, -1, ""IGBOJA"(ZADATAK) "BIJELA"Uspesno ste dosli do odredjene lokacije,nastavite dalje.");
SetPlayerCheckpoint(playerid, stavite svoje kordinate X Y Z, 2);
PosaoCP[playerid] = 3;
}
case 3:
{
//kada udje u zadnji cp da mu nestane(Disable) i dadne platu
DisablePlayerCheckpoint(playerid);
GivePlayerMoney(playerid, vasa kolicina);
SCM(playerid, -1, ""IGBOJA"(ZADATAK) "BIJELA"Zavrsio si posao,dobio si platu od 'vasa kolicina'");
PosaoCP[playerid] = -1;
}
}
[/pawn]
Posao Vozila
Najprije dodajte stock PosaoVozila: //morao sam izvodjiti iz IG moda
[pawn]
stock PosaoVozila(carid)
{
for(new i = 0; i < sizeof(PosaoVozilo); i++)
{
if(carid == PosaoVozilo
) return 1;
}
return 0;
}
[/pawn]
Pod OnGameModeInit dodat cemo: //dodajemo vozilo da se spawnuje
[pawn]
PosaoVozilo[0] = CreateVehicle(vehicletype, Float:x, Float:y, Float:z, Float:rotation, color1, color2, respawn_delay, addsiren=0)
[/pawn]
Sada idemo pod OnPlayerEnterVehicle
[pawn]
if(PosaoVozila(vehicleid)) //sto znaci da kada igrac pokusa uci u vozilo,a pritom da nijie zaposlen kao taj posao izbacit ce ga iz vozila
{
if(PlayerInfo[playerid][pPosao] < 1)
{
new Float:Poz[3];
GetPlayerPos(playerid, Poz[0], Poz[1], Poz[2]);
SetPlayerPos(playerid, Poz[0], Poz[1]+0.1, Poz[2]);
GameTextForPlayer(playerid, "Samo zaposleni kao Bus Vozac", 5000, 5);
}
}
[/pawn]
Kraj
U glavnom ovako na ovaj princip se pravi neki posao(barem ja tako mislim)
Ako sam nesto zaboravio molim vas ispravite me...
Nadam se da ce nekome posluziti,LP.
A zasto ti pokusavas nekoga da naucis to kada ni sam ne znas?
Da si uradio sam svoje ne verujem ali ipak dobro takav tutorijal isti sam vec video ne ovde
Citat: _audi poslato Februar 08, 2022, 07:37:11 PRE PODNE
Da si uradio sam svoje ne verujem ali ipak dobro takav tutorijal isti sam vec video ne ovde
TazGee.
News
SCM
hshahs
Idemo ovako
pogresno
[pawn]new PosaoVozilo[1]; //stavite koliko imate vozila,u mom slucaju jedno[/pawn]
ispravno
[pawn]const PosaoVozilo = 1; //stavite koliko imate vozila,u mom slucaju jedno[/pawn]
nije lose ovo ali zasto da bezveze kucas parametre koji nista ne znace
[pawn]if(PlayerInfo[playerid][pPosao] == 1) return SendClientMessage(playerid, -1, "Niste zaposljen kao Bus Vozac");[/pawn]
moze
[pawn]if(PlayerInfo[playerid][pPosao]) return SendClientMessage(playerid, -1, "Niste zaposljen kao Bus Vozac");[/pawn]
ovo mi se ne svidja
[pawn]switch(PosaoCP[playerid])
{
case 1:
{
//kada udje u 1 CP da mu nestane(DisablePlayerCheckpoint) i stvori drugi (SetPlayerCheckpoint)
DisablePlayerCheckpoint(playerid);
SCM(playerid, -1, ""IGBOJA"(ZADATAK) "BIJELA"Uspesno ste dosli do odredjene lokacije,nastavite dalje.");
SetPlayerCheckpoint(playerid, stavite svoje kordinate X Y Z, 2);
PosaoCP[playerid] = 2;
}
case 2:
{
DisablePlayerCheckpoint(playerid);
SCM(playerid, -1, ""IGBOJA"(ZADATAK) "BIJELA"Uspesno ste dosli do odredjene lokacije,nastavite dalje.");
SetPlayerCheckpoint(playerid, stavite svoje kordinate X Y Z, 2);
PosaoCP[playerid] = 3;
}
case 3:
{
//kada udje u zadnji cp da mu nestane(Disable) i dadne platu
DisablePlayerCheckpoint(playerid);
GivePlayerMoney(playerid, vasa kolicina);
SCM(playerid, -1, ""IGBOJA"(ZADATAK) "BIJELA"Zavrsio si posao,dobio si platu od `vasa kolicina`");
PosaoCP[playerid] = -1;
}[/pawn]
ovako je vec bolje
[pawn]switch(PosaoCP[playerid])
{
case 1:
{
//kada udje u 1 CP da mu nestane(DisablePlayerCheckpoint) i stvori drugi (SetPlayerCheckpoint)
DisablePlayerCheckpoint(playerid);
SCM(playerid, -1, ""IGBOJA"(ZADATAK) "BIJELA"Uspesno ste dosli do odredjene lokacije,nastavite dalje.");
SetPlayerCheckpoint(playerid, stavite svoje kordinate X Y Z, 2);
PosaoCP[playerid]++;
return 1;
}
case 2:
{
DisablePlayerCheckpoint(playerid);
SCM(playerid, -1, ""IGBOJA"(ZADATAK) "BIJELA"Uspesno ste dosli do odredjene lokacije,nastavite dalje.");
SetPlayerCheckpoint(playerid, stavite svoje kordinate X Y Z, 2);
PosaoCP[playerid]++;
return 1;
}
case 3:
{
//kada udje u zadnji cp da mu nestane(Disable) i dadne platu
DisablePlayerCheckpoint(playerid);
GivePlayerMoney(playerid, vasa kolicina);
SCM(playerid, -1, ""IGBOJA"(ZADATAK) "BIJELA"Zavrsio si posao,dobio si platu od `vasa kolicina`");
PosaoCP[playerid] = -1;
return 1;
}[/pawn]
za ovo i da ne pricam nista
[pawn]SCM(playerid, -1, ""IGBOJA"(ZADATAK) "BIJELA"Uspesno ste dosli do odredjene lokacije,nastavite dalje.");[/pawn]
ovo mozes skratiti
[pawn]stock PosaoVozila(carid)
{
for(new i = 0; i < sizeof(PosaoVozilo); i++)
{
if(carid == PosaoVozilo) return 1;
}
return 0;
}[/pawn]
ovako
[pawn]stock PosaoVozila(carid)
{
for(new i = 0; i < sizeof(PosaoVozilo); i++)
if(carid == PosaoVozilo) return 1;
return 0;
}[/pawn]
kada uzimas korditane nemoj ovako koristiti zato sto je sporije
[pawn]new Float:Poz[3];[/pawn]
brze
[pawn]new
Float:X,
Float:Y,
Float:C;[/pawn]
Nisam sve pregledao, ali verujem da ima mnogo vise gresaka nego sto sam napisao ovde... Svako dobro!
odlicno
Citat: bishop. poslato Februar 08, 2022, 21:18:20 POSLE PODNE
Ne, uopste nije odlicno.
Ma sta ce mucenik nije video dalje od anderpojinta.
Bitno njemu da radi. Sad kako radi, to koga boli qrac.
Citat: Terza Lazarevic poslato Februar 08, 2022, 21:21:40 POSLE PODNE
da jeste
Da, tebi je odlicno jer ne znas pola ovih stvari i ne znas kako sta funkcionise, a ni on ocigledno.
Pogledaj sta je Fr0z3n napisao, a i ostali su pomenuli po nesto iz zezanja, sto je jako lose.
Citat: srbski southclaws poslato Februar 08, 2022, 21:50:14 POSLE PODNE
Ma sta ce mucenik nije video dalje od anderpojinta.
Bitno njemu da radi. Sad kako radi, to koga boli qrac.
A to je tuzno brate. Oni su videli da to isto radi na takvom nekom gamemodu ili od nekog youtubera koji je juce naucio dve funkcije i odlucio da uci druge, pa onda ljudi misle da je tako ispravno.
Citat: bishop. poslato Februar 08, 2022, 22:20:32 POSLE PODNE
Da, tebi je odlicno jer ne znas pola ovih stvari i ne znas kako sta funkcionise, a ni on ocigledno.
Pogledaj sta je Fr0z3n napisao, a i ostali su pomenuli po nesto iz zezanja, sto je jako lose.
A to je tuzno brate. Oni su videli da to isto radi na takvom nekom gamemodu ili od nekog youtubera koji je juce naucio dve funkcije i odlucio da uci druge, pa onda ljudi misle da je tako ispravno.
Kako voliš kad misliš da ispadaš pametan a ustvari ispadneš glup ko noga lik sarkastično kaže odlično ti nešto nabrajaš čovjeku koji živi od kodiranja i programiranja.. Svašta
E Mirsone samo ti ispadas glup.
Citat: MirsoN poslato Februar 08, 2022, 22:35:26 POSLE PODNE
Kako voliš kad misliš da ispadaš pametan a ustvari ispadneš glup ko noga lik sarkastično kaže odlično ti nešto nabrajaš čovjeku koji živi od kodiranja i programiranja.. Svašta
Ne mislim ja nista, samo sam rekao da je ovo kurcina.
A ko to zivi od kodiranja? Ovaj sto ima Ghetto profilnu? Hahahahaha
Mislim ono lik je objavio FS-inc ili sta, svoj code, ne radite na projektu zajedno da pisete 1000 rijeci kao odgovor, ne review-ate PR na nekom softwareu na kojem zajedno radite, zasto se opterecujete na tudji kod koji vas nista ne steti, ne moze niko za 3 dana rada u nekom jeziku pisati najbolji moguci kod, narocito kao pocetnik u programiranju, mislim da nema potrebe da se ispravljate liniju po liniju.
Citat: Fr0z3n poslato Februar 08, 2022, 17:14:42 POSLE PODNE
kada uzimas korditane nemoj ovako koristiti zato sto je sporije
[pawn]new Float:Poz[3];[/pawn]
brze
[pawn]new
Float:X,
Float:Y,
Float:C;[/pawn]
Recimo ovo, znam da je citav reply iz dobre namjere, ali ovaj chunk koda, kako je brze? Koliko ms tacno i kako utice na gamemode? Jer deklarisati kao niz je definitivno preglednije. Ne mozes napisati brze je a nisi nam provide nikakav benchmark, ako je brze 5 ns zasto bi zrtvovali preglednost zbog 5 ns ? Zasto se generalno baviti mikrooptimizacijama? Modovi puno goreg koda od ovog su handlali po 500-1000 igraca.
Pa pazi na 500-600 mesta da odradis isto to vec prelazi u sekunde, sto se tice tih "servera" sto su handlali sa 1000 igraca nisu prelazili 5-6 dana bez restarta, po mom misljenju svaka minimalna optimizacija je dobrodosla, kako za rad servera, tako i za skriptera.
Slazem se, i za oko je takodjer vidno, ali ti pricas o stabilnosti, koja nuzno ne ovisi o optimizaciji koda, i kada ga vec ucis malo objasni problem, nemoj samo zamjeniti linije, ti tu fakticki radis posao za njega, ovo je bolje - zasto? format, takodjer odma svi navrnete kao da je ubio covjeka (opet ti si ga najvise ispostovao jer si ga ispravio umjesto izvrijedjao).
Framework jeste star, ali to nije razlog da se razapnu novi ljudi u skriptanju, i ti prije 5-10 god nisi imao blage, to se vremenom udje, svakako kod programiranja on mora poceti razumjevati logiku samog programiranja, a onda se baviti optimizacijom, dakle po meni bi bio problem sto je on taj code vjerovatno izvukao iz nekog moda, sto automatski gasi njegovu logiku za programskim codeom jer je naucio raditi po sablonu i dodati CP manje-vise. To je stvar koja treba da se prati, optimizacija se nauci vremenom dok se radi.
Citat: Fr0z3n poslato Februar 08, 2022, 17:14:42 POSLE PODNE
ovako je vec bolje
[pawn]switch(PosaoCP[playerid])
{
case 1:
{
//kada udje u 1 CP da mu nestane(DisablePlayerCheckpoint) i stvori drugi (SetPlayerCheckpoint)
DisablePlayerCheckpoint(playerid);
SCM(playerid, -1, ""IGBOJA"(ZADATAK) "BIJELA"Uspesno ste dosli do odredjene lokacije,nastavite dalje.");
SetPlayerCheckpoint(playerid, stavite svoje kordinate X Y Z, 2);
PosaoCP[playerid]++;
return 1;
}
case 2:
{
DisablePlayerCheckpoint(playerid);
SCM(playerid, -1, ""IGBOJA"(ZADATAK) "BIJELA"Uspesno ste dosli do odredjene lokacije,nastavite dalje.");
SetPlayerCheckpoint(playerid, stavite svoje kordinate X Y Z, 2);
PosaoCP[playerid]++;
return 1;
}
case 3:
{
//kada udje u zadnji cp da mu nestane(Disable) i dadne platu
DisablePlayerCheckpoint(playerid);
GivePlayerMoney(playerid, vasa kolicina);
SCM(playerid, -1, ""IGBOJA"(ZADATAK) "BIJELA"Zavrsio si posao,dobio si platu od `vasa kolicina`");
PosaoCP[playerid] = -1;
return 1;
}[/pawn]
Ako vec coveka ucis onda ga uci pravilno :)
Primer: Ako koristis switch za posaoCP i u istom kodu koristis istu funkciju : [pawn] DisablePlayerCheckpoint(playerid); [/pawn] Koristiti u proveri da li je checkpoint PosaoCP pa onda Disable pa switch.
Reuse istog code u 3 case , nema smisla ...
Ako vec pametujete, onda pricajte ispravno.
@tema Korisno, ali razmisljaj logicki kada skriptas i samo vezbaj.
Vremenom, kodiranjem, postaces bolji :)
#PEACE
Citat: xLanmi poslato Februar 09, 2022, 20:51:30 POSLE PODNE
Ako vec coveka ucis onda ga uci pravilno :)
Primer: Ako koristis switch za posaoCP i u istom kodu koristis istu funkciju : [pawn] DisablePlayerCheckpoint(playerid); [/pawn] Koristiti u proveri da li je checkpoint PosaoCP pa onda Disable pa switch.
Reuse istog code u 3 case , nema smisla ...
Ako vec pametujete, onda pricajte ispravno.
@tema
Korisno, ali razmisljaj logicki kada skriptas i samo vezbaj.
Vremenom, kodiranjem, postaces bolji :)
#PEACE
"Ako vec coveka ucis onda ga uci pravilno" Ne znam da li si glup ili stvarno mislis da cu svaku stvar da mu ispravljam u kodu
Citat: Fr0z3n poslato Februar 10, 2022, 01:52:10 PRE PODNE
"Ako vec coveka ucis onda ga uci pravilno" Ne znam da li si glup ili stvarno mislis da cu svaku stvar da mu ispravljam u kodu
Pa ako si poceo onda i zavrsi...
hmm hmm