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

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 5126 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

Darbo su direktoriaus kurimas

Sveiki taigi surengsiu jums darbo su direktoriaus kurimą.Pradedame:

1 punktas.

Pirmiausia nueinam i DEBUG, ar paprasciausiai i bet koki serveri ir issisaugojam marskiniu vieta.

Tai padaryti galite paspaude [t] ir parase /save darbas

2 punktas.

Nu va turim koordinates dabar einam i data/pickups.txt po

Kodas:

enum pdata{

irasome darbas, , tada einam i apacia ir prie visu darbų pickupu irasome:

Kodas:

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

Kad gautumet X,Y,Z nueikite i GTA direktorija ten rasite savepositions.txt ir ten bus eilute panasi i sita:

Cituoti:

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

Is siu kordinaciu mums reikės:

Cituoti:

222.1660,1190.4722,1080.2578

3 punktas.

Sukurem pickupa, dabar reikia padaryti kad tas pickupas ka nors darytu kaj ant jo uzlipame (siuo atveju idarbintu zaideja):

Atsidarome savo gamemodo pwn lapą ir susirandame: public OnPlayerPickUpPickup(playerid, pickupid)

{

Po juo įrašome:

Cituoti:

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 iprastas darbas sukurtas, pareikime prie direktoriaus.

Einame i data/playerDB.txt ir virsuje rasome:

Cituoti:

#define LEAD_DARBAS ID // ID pasirinkite patys

Dabar einame i data/functions.txt ir virsui prie kitu stock irasome:

Cituoti:

stock SendMessageToDarbas(color,text[])

{

for(new i=0; i

{

if(IsPlayerConnected(i))

{

if(playerDB[specialybe]==SPECID)

{

SendClientMessage(i,color,text);

}

}

}

}

tada tame paciame functions.txt susirandame

Cituoti:

stock GetJobFromFaction(faction)

{

ir ten tarp visu kitu iterpiame

Cituoti:

else if(faction == LEAD_DARBAS) return SPECID;

5 punktas.

Viskas su data failais berods susitwarkem dabar gryztam i GM.

Ten kur raseme kas vyksta uzlipus ant pickupo po situo:

Cituoti:

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

{

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

return 1;

}

irasykime:

Cituoti:

if(!playerDB[playerid][leanvited][Darbo id vienu pazesnis negu rasete prie darbo kurimo])

{

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

return 1;

}

*** paaiskinimas: irasome skaiciu vienu mazesni nei LEAD IDAS tarkim playerDB buvom irase #define LEAD_DARBAS 10 taj sklaiusteliuose rasysim 9.

6 punktas.

na dabar darysim racija, /priimt /ismest komandas.

susirandame /r komanda

ten bus kazkas panasaus i:

Cituoti:

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 eiluteje irasom savo darba taj turetu atoryti taip:

Cituoti:

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

Dabar siek tiek zemiau turetume rasti eilute panasia i sita:

Cituoti:

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

po ja rasome:

Cituoti:

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

Viskas! racija padaryta.

Einame prie /priimt /ismest.

Susiraskite /priimt komanda ir kur nors vidury iterpkite sita eilute:(pamatysite ten 5-6 gal ir daugiau gal ir maziau panasiu eiluciu i sia:

Cituoti:

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

ta pati darom su /ismest tik ten irasom stai tokia eilute:

Cituoti:

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

7 punktas.

Na ka galiausiai priskirkime darbui masina ir padarykime kad eitu pinigai i pelna ;)

taigi kurnors po

Cituoti:

public OnPlayerStateChange(playerid, newstate, oldstate)

rasome:

Kodas:

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 eitu i pelna

na va nelabai moku paaiskinti kur ja reiks irasyt, na meginkim turetu rasti.

Spaudziate CTRL+f ir irasote

Kodas:

((model

jums turejo ismesti panasia eilute i sia:

Cituoti:

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

po ja rasome sawo darbo atlyginima, tai turetu atrodyti taip:

Cituoti:

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

*** paaiskinimas: i situos sklaistelius irasome skaiciu vienu mazesni uz specialybes ID, taj yra pvz specialybes id pasirinkot 11 taj [pelnas][10] manau supratote.

8 punktas.

Jei kompiliuojant meta stai tokius errorus:

Cituoti:

array index out of bounds (variable "playerDB")

Jei toks erroras kaip paminetas virsui taj jums reikia eiti i data/playerDB

ten rasite eilute leaninvited[*skaicius]

*skaicius - taj gali buti bet koks irasytas skaicius, paimkite ir padidinkite ji. didinkite tol kol nebemes error. (tai yra limitas)

Jei meta šį errorą:

Cituoti:

array index out of bounds (variable "pelnas")

Jeigu erroras toks kaip antras jums reikia eiti į data/pelnas.txt ir padidinti pelno limitą, su pelnu irgi tas pats didinkite tol kol nebemes sito erroro.

Pigu, greita, kokybiška!


MAUDIO.EU

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 5126 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ą...