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:
- Neno - radjenje tutoriala
- Gagi - pomoc oko CPova + neka objasnjenja
- LuKsA - takodje pomoc oko CPova + neka objasnjenja
Pozdrav, - Neno
Bravo Neno pomoce ;D
Sta ce ti toliko definiranih boja a koristis ih samo par...
Onako, nije lose, mada i nije nesto korisno. Ali pohvala za trud :)
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
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.
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 :)
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.
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.