Balkan SA:MP

San Andreas Multiplayer - www.sa-mp.com => Tutorijali u vezi SA-MPa => Temu započeo: ...Neno... poslato Januar 19, 2012, 12:26:35 POSLE PODNE

Naslov: [TuT] : Izrada honorarnog posla
Poruka od: ...Neno... poslato Januar 19, 2012, 12:26:35 POSLE PODNE
Pozdrav,
U ovom tutorialu cu vam pokazati kako napraviti honorarni posao.


Ako zelite praviti komandu sa ZCMD (a ja cu upravo tako radit) skiniti ZCMD.inc (click) (http://solidfiles.com/d/879d1213462fc1562d16d464e90c8cf9/)
Kada ste skinuli ZCMD.inc trebate ga staviti u "include" folder koji se nalazi u folderu "pawno".Tek kada ste to uradili mozemo krenuti sa radom.


Na pocetak skripte dodajte:
#include <a_samp>
#include <zcmd>

Ako ovo nemate,necete moci dalje raditi tj. nista vam nece raditi.Idemo dalje...


Da nebi imali slucajno problem sa bojama ja cu vam dati popis svih boja:
0.3c boje
#define BIJELA             "{FFFFFF}"
#define CRNA               "{0E0101}"
#define SIVA               "{C3C3C3}"
#define ZELENA             "{6EF83C}"
#define CRVENA             "{F81414}"
#define ZUTA               "{F3FF02}"
#define NARANDZASTA        "{FFAF00}"
#define LIME               "{B7FF00}"
#define CYAN               "{00FFEE}"
#define SVJETLO_PLAVA      "{00C0FF}"
#define PLAVA              "{0049FF}"
#define COL_MAGENTA        "{F300FF}"
#define COL_VIOLET         "{B700FF}"
#define ROZA               "{FF00EA}"
#define COL_MARONE         "{A90202}"
#define COL_PARAM          "{3FCD02}"
#define COL_VALUE          "{A3E4FF}"
#define COL_RULE           "{F9E8B7}"
#define COL_RULE2          "{FBDF89}"
#define COL_RWHITE         "{FFFFFF}"
#define SVJETLO_ZELENA     "{C9FFAB}"
#define SVJETLO_CRVENA     "{FFA1A1}"
#define SVJETLO_CRVENA2    "{C77D87}"

Obicne boje
#define COLOR_GRAD1 0xB4B5B7FF
#define COLOR_GRAD2 0xBFC0C2FF
#define COLOR_GRAD3 0xCBCCCEFF
#define COLOR_GRAD4 0xD8D8D8FF
#define COLOR_GRAD5 0xE3E3E3FF
#define COLOR_GRAD6 0xF0F0F0FF
#define COLOR_GREY 0xAFAFAFAA
#define COLOR_GREEN 0x9EC73DAA
#define COLOR_GROVE 0x00FF00FF
#define COLOR_RED 0xAA3333AA
#define COLOR_LIGHTRED 0xFF6347AA
#define COLOR_LIGHTBLUE 0x33CCFFAA
#define COLOR_LIGHTGREEN 0x9ACD32AA
#define COLOR_YELLOW 0xDABB3EAA
#define COLOR_YELLOW2 0xF5DEB3AA
#define COLOR_WHITE 0xFFFFFFAA
#define COLOR_FADE1 0xE6E6E6E6
#define COLOR_FADE2 0xC8C8C8C8
#define COLOR_FADE3 0xAAAAAAAA
#define COLOR_FADE4 0x8C8C8C8C
#define COLOR_FADE5 0x6E6E6E6E
#define COLOR_PURPLE 0xC2A2DAAA



Pronadjite sad "public OnPlayerEnterCheckpoint(playerid)" te ispod toga dodajte sljedece:
if(GetPVarInt(playerid,"PoceoWork") == 1)
{
if(GetVehicleModel(GetPlayerVehicleID(playerid)) == 453)
{
if(GetPVarInt(playerid,"CP") == 1)//Ispitivanje da li CP na 1
{
if(IsPlayerInRangeOfPoint(playerid,5.0,2617.9966,-2482.6226,-0.3542))//Tu kordinate za CP1 kao u komandi
{
SetPlayerCheckpoint(playerid,133.2870,-1937.5846,-0.4944,5.0);
SetPVarInt(playerid,"CP",2);//Stavimo "CP" na 2
SendClientMessage(playerid, COLOR_WHITE, ">>Odvezi opremu sad do svjetleonika.");
}
}
if(GetPVarInt(playerid,"CP") == 2)//Ispitivanje da li CP na 2
{
if(IsPlayerInRangeOfPoint(playerid,5.0,133.2870,-1937.5846,-0.4944))//Tu kordinate za CP2 kao iznad
{
SetPlayerCheckpoint(playerid,1142.1008,-2467.3606,-0.5795,5.0);
SetPVarInt(playerid,"CP",3);//Stavimo "CP" na 3
SendClientMessage(playerid, COLOR_WHITE, ">>Sad se vrati do baze po platu.");
}
}
if(GetPVarInt(playerid,"CP") == 3)//Ispitivanje da li CP na 3
{
if(IsPlayerInRangeOfPoint(playerid,5.0,1142.1008,-2467.3606,-0.5795))//Tu kordinate za CP2 kao iznad
{
DisablePlayerCheckpoint(playerid);
SetPVarInt(playerid,"CP",0);//Stavimo "CP" na 0, jer prakticki zavrsavaju CP-evi
SendClientMessage(playerid, COLOR_WHITE, ">>Dobio si 1000$.");
GivePlayerMoney(playerid, 1000);
}
}
}
}
return 1;
}

if(GetVehicleModel(GetPlayerVehicleID(playerid)) == 453) - Da li je igrac u vozilu ID 453
SetPlayerCheckpoint(playerid,133.2870,-1937.5846,-0.4944,5.0); - postavljanje cp-a
if(IsPlayerInRangeOfPoint(playerid,5.0,133.2870,-1937.5846,-0.4944)) - Da li je igrac na toj poziciji
if(GetPVarInt(playerid,"CP") == 1) - Ispitivanje da li CP na 1
SetPVarInt(playerid,"CP",3); - Stavimo "CP" na 3
SetPVarInt(playerid,"CP",0); - Stavimo "CP" na 0, jer prakticki zavrsavaju CP-evi
GivePlayerMoney(playerid, 1000) - davanje igracu 1000$

Eto,malo objasnjenje,sve imate objasnjeno gore u CODU ali evo,opet sam objasnio ono osnovno.


Sada trebamo napraviti komandu,a mozete i obrnuto,mozete prvo komandu pa tek onda CP-ove,ali evo,ja sam isao redom kako je u scripti.
Skroz na kraju scripte dodajte:
CMD:work(playerid, params[])
{
new pmodelid = GetVehicleModel(GetPlayerVehicleID(playerid));
if(pmodelid != 453 && pmodelid != 453) return SendClientMessage(playerid,COLOR_WHITE,"{FFAF00}| {FFFFFF}Greska{FFAF00} | Morate biti u brodu od vozaca brodova.");
    SetPVarInt(playerid,"PoceoWork", 1);//Da proveri da li je poceo sa tim poslom mogao sam i bez ovog ali neka znam sto
    SetPVarInt(playerid,"CP",1);//Koristicemo nama za CP
    SetPlayerCheckpoint(playerid,2617.9966,-2482.6226,-0.3542,5.0);//Stavi kordinate
    SendClientMessage(playerid, COLOR_WHITE, ">> Zapoceo si raditi,otidji po opremu za policiju (crveni marker na mapi).");
    return 1;
}

if(pmodelid != 453 && pmodelid != 453) - provjerava da li je igrac u vozilu ID 453
SetPVarInt(playerid,"PoceoWork", 1); - provjerava da li je poceo sa tim poslom
Eto,sve imate objasnjeno u CODU,ali evo,i ovde sam malo objasio,no vise sam isao kad budete ubacivali da sve vidite u scripti.


Credits:


Pozdrav,
            - Neno
Naslov: Odg: [TuT] : Izrada honorarnog posla
Poruka od: Paco poslato Januar 19, 2012, 13:06:24 POSLE PODNE
Bravo Neno pomoce  ;D
Naslov: Odg: [TuT] : Izrada honorarnog posla
Poruka od: []Flynâ„¢ poslato Januar 19, 2012, 14:37:02 POSLE PODNE
Sta ce ti toliko definiranih boja a koristis ih samo par...

Onako, nije lose, mada i nije nesto korisno. Ali pohvala za trud :)
Naslov: Odg: [TuT] : Izrada honorarnog posla
Poruka od: ...Neno... poslato Januar 19, 2012, 16:14:09 POSLE PODNE
Citat: [CЯP] joXy_ poslato Januar 19, 2012, 14:37:02 POSLE PODNE
Sta ce ti toliko definiranih boja a koristis ih samo par...

Onako, nije lose, mada i nije nesto korisno. Ali pohvala za trud :)
samo sam ih c/p..
@ hvala
Naslov: Odg: [TuT] : Izrada honorarnog posla
Poruka od: Billie Joe Armstrong poslato Januar 19, 2012, 16:25:19 POSLE PODNE
Ne bih vam preporučio korištenje Per-player variable sistema (PVar) zato što je dosta sporiji od običnih varijabli , napravio sam test kao i još par frendova i izbacilo nam je da se normalne varijable izvrše 30 do 40 ms brže nego PVarovi.
Naslov: Odg: [TuT] : Izrada honorarnog posla
Poruka od: Mr.Gagi poslato Januar 19, 2012, 16:30:38 POSLE PODNE
Citat: Get busy living or Get busy dying poslato Januar 19, 2012, 16:25:19 POSLE PODNE
Ne bih vam preporučio korištenje Per-player variable sistema (PVar) zato što je dosta sporiji od običnih varijabli , napravio sam test kao i još par frendova i izbacilo nam je da se normalne varijable izvrše 30 do 40 ms brže nego PVarovi.
To sam mu i ja rekao da koristi obicne varijable jer sam mu samo dao primer sa PVar-ovima ali nije me poslusao :)
Naslov: Odg: [TuT] : Izrada honorarnog posla
Poruka od: Slay poslato Januar 19, 2012, 16:46:26 POSLE PODNE
Ovo sada neće predstavljati problem što se koriste PV-arovi jer za male stvari kao ove su praktične, ja ih ne preporučam da se koriste za ono što im NIJE namjena, a to je RW (Read & Write) ali u file! Znači ako radiš 'bazu' sa PV-arovima i još ako imaš puno varijabli za čuvati tu nastaje problem i to veliki, još ako su index varova duži od 16 char (cell-ova) PV-ar je još sporiji! PVar sada ne stvara problem (u ovom primjeru) konkretna uporaba od mene se ne bi preporučila jer sam i sam na njima okusio lagg još prije otprilike godinu dana. Praktične su što se može slati statement u drugu skriptu (fs, inc...) BEZ uporabe dodatnog kreiranja .inc file-a s kojim će se spajati skripte, nego po imenu varijable se prenosi informacija.

Pogledajte što je i sam Yless rekao već o PV-arovima, koriste skroz drugačiji sustav memorije i to nije kalcor napravio bez razloga nego je napravio baš za ove stvari koje sam naveo u primjeru.
Naslov: Odg: [TuT] : Izrada honorarnog posla
Poruka od: Billie Joe Armstrong poslato Januar 19, 2012, 17:03:08 POSLE PODNE
O tome govorim , sa malo per-player varijabli neće doći do lagova kao što si sam naveo (fs,inc...) ali ako se od toga GM pravi doće do velikih lagova i pogotovo ako imaš puno fajlova za isčitavat još ako ih r/w sa PVar-ovima doće do katastrofalnih lagova.