Peršokti į turinį
  • ŽAIDIMAI
  • , ŽAIDIMAI
  • ŽAIDIMAI

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 4934 dienas (-ų). Patariame sukurti naują temą, o ne rašyti naują pranešimą.

Už neaktyvių temų prikėlimą galite sulaukti įspėjimo ir pranešimo pašalinimo!

Recommended Posts

1 Punktas.

Pirmiausia nueinam į DEBUG, ar paprasčiausiai į bet koki serveri ir išsisaugojam marškinių vietą.

Tai padaryti galite paspaude [t] ir parašę /save darbas

2 Punktas.

Na štai turim koordinates dabar einame į data/pickups.txt po enum pdata{ įrašome darbas, , tada einame į apačią ir prie visų pickupu įrašome

pickups[0][darbas]=CreatePickupA(1275,2,X,Y,Z); // darbas

Kad gautumėte X,Y,Z nueikite į GTA direktorija ten rasite savepositions.txt ir ten bus eilutė panaši į šitą:

AddPlayerClass(123,222.1660,1190.4722,1080.2578,88.9968,0,0,0,0,0,0); // darbas

Tą vietą kur pabraukiau kopijuojate iš savo savepositions.txt į pickups.txt ten kur minėjau anksčiau.

3 Punktas.

Sukūrėme pickupa, dabar reikia padaryti kad tas pickupas ką nors darytu kai ant jo užlipame (šiuo atveju įdarbintų žaideją.

if(pickupid == pickups[0][darbas]) // jusu pickupas

{

if(playerDB[playerid][specialybe]==SPECID) // cia irasome ID toki kurio dar nera

{

if(playerDB[playerid][uniformd]) // si funkcija tikrina ar darbuotojas norintis iseit is darbo su uniforma ar be

{

SendClientMessage(playerid,COLOR,"* Jus esate su uniforma. Pries palikdami musu stoti ja nusivilkite.";

return 1;

}

// isejimas is darbo

SendClientMessage(playerid,COLOR,"*darbas: Atsisakete darbo!"; // pranesa zaidejui kad isejo is darbo

playerDB[playerid][specialybe]=0; // nustato zaidejo specialybe i 0

playerDB[playerid][uniforma]=-1; // atima uniforma

}else if(playerDB[playerid][specialybe]==0){

if(GetPlayerScore(playerid)<100) // tikrina ar zaidejas turi ne maziau (siuo atveju 100 xp)

{

SendClientMessage(playerid,COLOR_MEDIUMMAGENTA,"* darbas: Atsiprasome, jus dar nepakankamai patyres! (xp > 100)";

SendClientMessage(playerid,COLOR_MEDIUMMAGENTA,"* darbas: Sugrizkite veliau.";

return 1;

}

if(!playerDB[playerid][teises]) // tikrina ar zaidejas turi teises

{

SendClientMessage(playerid,COLOR_MEDIUMMAGENTA,"* darbas: Atsiprasome, bet turite tureti vairavimo teises.";

return 1;

}

SendClientMessage(playerid,COLOR,"* darbas: Sveikinu, prisidejus prie musu!"; // jei viskas atitinka tuomet idarbinam zmogu.

playerDB[playerid][drabuziai]=GetPlayerSkin(playerid); // priskiriame uniforma

if(playerDB[playerid][lytis]==1) // jei vyras

{

SetPlayerSkin(playerid,skin id);

playerDB[playerid][uniforma]=skin id; // vyro uniforma

ApplyAnimation(playerid,"PLAYIDLES","stretch",4.1,0,0,0,0,0); // cia animation

}else{

SetPlayerSkin(playerid,skin id); // jei moteris

playerDB[playerid][uniforma]=skin id;

ApplyAnimation(playerid,"PLAYIDLES","stretch",4.1,0,0,0,0,0);

}

playerDB[playerid][uniformd]=true; // patwirtina kad zmogus turi uniforma

playerDB[playerid][specialybe]=SPEC ID; // irasykite ta pati kaip pradzioje

}else{

SendClientMessage(playerid,COLOR,"*darbas: Negalite dirbti dvieju darbu!";

}

return 1;

}

4 Punktas.

Na va įprastas darbas sukurtas, pereikime prie direktoriaus.

Einame į data/playerDB.txt ir viršuje rašome:

#define LEAD_DARBAS ID // ID pasirinkite patys

Dabar einame į data/functions.txt ir virsui prie kitu stock įrašome:

stock SendMessageToDarbas(color,text[])

{

for(new i=0; i

{

if(IsPlayerConnected(i))

{

if(playerDB[specialybe]==SPECID)

{

SendClientMessage(i,color,text);

}

}

}

}

tada tame pačiame functions.txt susirandame

stock GetJobFromFaction(faction)

{

ir ten tarp visų kitų įterpiame

else if(faction == LEAD_DARBAS) return SPECID;

5 Punktas.

Viskas su data failais berods susitvarkėme dabar grįžtame į GM.

Ten kur rašėme kas vyksta užlipus ant pickupo po šituo:

if(!playerDB[playerid][teises]) // tikrina ar zaidejas turi teises

{

SendClientMessage(playerid,COLOR_MEDIUMMAGENTA,"* darbas: Atsiprasome, bet turite tureti vairavimo teises.";

return 1;

}

irašykime:

if(!playerDB[playerid][leanvited][***])

{

SendClientMessage(playerid,COLOR_MEDIUMMAGENTA,"* dabras: Musu direktorius neinformuotas apie jus, pries istojant, turite pasikalbeti su juo.";

return 1;

}

*** paaiškinimas: įrasome skaičių vienu mažesnį nei LEAD IDAS tarkim playerDB buvom irašę #define LEAD_DARBAS 10 taj skliausteliuose rašysim 9.

6 punktas.

na dabar darysim racija, /priimt /ismest komandas.

susirandame /r komanda

ten bus kažkas panašaus į:

if(!strcmp(cmdtext, "/r", true,2))

{

if(!(playerDB[playerid][specialybe] == 1 || playerDB[playerid][specialybe] == 2 || playerDB[playerid][specialybe] == 3)

{

SendClientMessage(playerid,COLOR,"* Jus neturite racijos.";

return 1;

}

Pabrauktoje eilutėje įrašome savo darbą tai turėtų atroryti taip:

if(!(playerDB[playerid][specialybe] == 1 || playerDB[playerid][specialybe] == 2 || playerDB[playerid][specialybe] == 3 || playerDB[playerid][specialybe] == SPECID)

Dabar šiek tiek žemiau turėtume rasti eilutę panašia ė šitą:

if(playerDB[playerid][specialybe] == 1) SendMessageToCops(TEXTCOL_WHITE,msg);

po ja rašome:

else if(playerDB[playerid][specialybe] == SPECID) SendMessageToDarbas(TEXTCOL_WHITE,msg);

Viskas! racija padaryta.

Einame prie /priimt /ismest.

Susiraskite /priimt komanda ir kur nors viduryje įterpkite šitą eilutępamatysite ten 5-6 gal ir daugiau gal ir mažiau panašiu eilučių į šia

else if(playerDB[playerid][plead] == LEAD_DARBAS) SendClientMessage(id,TEXTCOL_RED,"* Jus kvieciamas i darba!";

ta patį darome su /ismest tik ten įrašome štai tokią eilutę:

else if(playerDB[playerid][plead] == LEAD_DARBAS) SendClientMessage(id,TEXTCOL_RED,"* Jus ismestas is darbo!";

7 Punktas.

Na ką galiausiai priskirkime darbui mašiną ir padarykime kad eitų pinigai į pelną

taigi kur nors po

public OnPlayerStateChange(playerid, newstate, oldstate)

rašome

if(model == Masinosid)

{

if(spec == specid)

{

SendClientMessage(playerid,0x00FF00AA,"* uz vazinejima firmai uzdirbsite 40LT/min"; // sia suma nustatysite siek tiek veliau

return 1;

}

SendClientMessage(playerid,0x00FF00AA,"* Jus ne darbuotojas!";

Stop(playerid);

return 1;

}

Na va o dabar padarykime kad pinigai eitų į pelną

na va nelabai moku paaiškinti kur ja reiks įrašyti, na mėginkim turėtu rasti.

Spaudžiate CTRL+f ir įrašote

((model

jums turėjo išmesti panašia eilutę į šią:

if((model == 598 || model== 523 || model == 599) && playerDB[playerid][specialybe] == 1) pelnas[0]+=40;

po ja rašome savo darbo atlyginimą, tai turėtų atrodyti taip:

else if(model == MasinosID && playerDB[playerid][specialybe] == SPECID) pelnas[***]+=40;

*** paaiškinimas: į šituos skliaustelius įrašome skaičių vienu mažesnį už specialybės ID, taj yra pvz specialybės id pasirinkote 11 tai [pelnas][10] manau supratote

8 Punktas.

Jei komplitinant meta štai tokius errorus:

array index out of bounds (variable "playerDB"

Jei toks erroras kaip paminėtas viršuje tai jums reikia eiti į data/playerDB

ten rasite eilutę leaninvited[*skaičius]

*skaičius - tai gali būti bet koks įrašytas skaičius, paimkite ir padidinkite jį. Didinkite tol kol nebemes error. (tai yra limitas)

array index out of bounds (variable "pelnas"

Jei erroras toks kaip antrasis jums reikia eiti į data/pelnas.txt ir padidinti pelno limitą, su pelnu irgi tas pats didinkite tol kol nebemes šitokio error.

Pabaiga

Tikslas

200postu -

20rep -

200FLT -

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 4934 dienas (-ų). Patariame sukurti naują temą, o ne rašyti naują pranešimą.

Už neaktyvių temų prikėlimą galite sulaukti įspėjimo ir pranešimo pašalinimo!

Svečias
Ši tema yra užrakinta.
  • Šiame puslapyje naršo:   0 nariai

    • Nėra registruotų narių peržiūrinčių šį forumą.

Skelbimai



×
×
  • Sukurti naują...