pradėsime
Susikuriame darbo pickupą, aš kuriu Gaisrininkus.
Einame į data/pickups.txt
viršuje dedame darbo pickupo pavadinimą, mano yra toks:
darbopavadinimas,
maždaug atrodytų taip:
ratai, Narkai, darbopavadinimas,
Einame vos vos žemiau, rasime ten pickupus ir dedame:
pickups[0][darbopavadinimas]=CreatePickupA(1275 ,1,x,y,z);
Čia sukursime pickupą, pasikeiskite žodį darbopavadinimas į jūsų pavadinimą kurį rašėte pirmame punkte. RAIDES X,Y,Z Keisite Į X,Y,Z Koordinates
Čia galime uždaryti, einame į savo gamemodą.
Viršuje dedame :
new gCPZ[MAX_PLAYERS]; new gCPZ2[MAX_PLAYERS];
Tai kintamieji, kurie kaitaliosis tarpusavyje, kai užlips ant CP.
taip pat viršuje dedame :
new Float:gCP[6][10] = { {-1596.2242,719.2708,10.2842}, {-1770.1979,1112.4854,45.4453}, {-1669.3027,1287.9667,7.0468}, {-2021.9501,1278.9406,7.1875}, {-2378.0183,-1.6975,35.3125}, {-2654.9951,-159.8246,4.0672} };
Susidėkite savo koordinates X,Y,Z
Toliau kursime darbą
po callbacku :
public OnPlayerPickUpPickup(playerid, pickupid) {
dedame :
// ugniagesiai if(pickupid == pickups[0][darbopavadinimas]) // 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,"* Ugniagesiai: Jus vilkite uniforma. Pries palikdami kareivines ja nusivilkite."); return 1; } // isejimas is darbo SendClientMessage(playerid,COLOR,"* Ugniagesiai: Palikote mus!"); // 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)<4500) // tikrina ar zaidejas turi ne maziau (siuo atveju 4500 xp) { SendClientMessage(playerid,COLOR_RED,"* I Ugniagesius priimami tik patyre zaidejai (xp > 4500)"); SendClientMessage(playerid,COLOR_RED,"* Ugniagesiai: Sugrizkite veliau."); return 1; } if(!playerDB[playerid][teises]) // tikrina ar zaidejas turi teises { SendClientMessage(playerid,COLOR_RED,"* Ugniagesiai: Atsiprasome, bet turite tureti vairavimo teises."); return 1; } SendClientMessage(playerid,COLOR,"* Ugniagesiai: Sveikinu, prisidejus prie musu!"); playerDB[playerid][drabuziai]=GetPlayerSkin(playerid); // priskiriame uniforma if(playerDB[playerid][lytis]==1) // jei vyras { SetPlayerSkin(playerid,279); playerDB[playerid][uniforma]=279; // vyro unifroma ApplyAnimation(playerid,"PLAYIDLES","stretch",4.1,0,0,0,0,0); // cia animation 🙂 } playerDB[playerid][uniformd]=true; // patwirtina kad zmogus turi uniforma playerDB[playerid][specialybe]=SPECID; // irasykite ta pati kaip pradzioje }else{ SendClientMessage(playerid,COLOR,"* Ugniagesiai: Negalite dirbti dvieju darbu!"); } return 1; }
po
public OnPlayerStateChange(playerid, newstate, oldstate){
dedame :
if(model == MAŠINOSID) { if(spec != DARBOID) { SendClientMessage(playerid,COLOR,"* Jus ne Ugniagesys!"); Stop(playerid); return 1; } GameTextForPlayer(playerid,"~r~ Vykiti į gaisro vietas",5000,4); new rand = random(sizeof(gCP)); gCPZ[playerid] = SetPlayerRaceCheckpoint(playerid,2,gCP[rand][0],gCP[rand][1],gCP[rand][2],0.0,0.0,0.0,2); gCPZ[playerid] = true; SendClientMessage(playerid, RAUDONA ,"Uždirbsite 5LT Važinėkite į CP "); return 1; }
Ten kur mašinos id irašykite savo darbo mašinos ID ten kur DARBOID rašykite to darbo SPECIALYBĖS ID
Toliau padarom algas :
Po
public Zaidimas
dedame prie visų algų :
else if(model == MODELID ) playerDB[playerid][alga]+=5
MODELID Keiskite į mašinos modelio id kurį nustatėte kai priskyrėme mašiną darbui.
Toliau po
public OnPlayerEnterRaceCheckpoint(playerid){
dedame :
if(gCPZ[playerid]) { new rand = random(sizeof(gCP)); GivePlayerMoneyA(playerid,80); ShowInfoBox(playerid,"~r~Uzgesinote gaisra, gavote 80lt vykite i kita gaisro vieta"); gCPZ2[playerid] = SetPlayerRaceCheckpoint(playerid,2,gCP[rand][0],gCP[rand][1],gCP[rand][2],0.0,0.0,0.0,2); gCPZ[playerid]=false; // nustatome į false reikšmę ir darome antro CP reikšmė į true gCPZ2[playerid]=true; // padarėme, dabar galės atvykti į kitą CP } if(gCPZ2[playerid]) { new rand = random(sizeof(gCP)); GivePlayerMoneyA(playerid,80); ShowInfoBox(playerid,"~r~Uzgesinote gaisra, gavote 80lt vykite i kita gaisro vieta"); gCPZ[playerid] = SetPlayerRaceCheckpoint(playerid,2,gCP[rand][0],gCP[rand][1],gCP[rand][2],0.0,0.0,0.0,2); gCPZ2[playerid]=false; gCPZ[playerid]=true; }
Šitaip kaitaliodami kintamuosius, visada pasidarys CP
KAS NETURI FUNKCIJOS SHOWINFOBOX Tęsiame :
viršuje dedame: new Text:bTextdraw0[ playerid ];
Pačiam gale dedame :
stock ShowInfoBox( playerid, text[ ] ) { new tdstring[ 256 ]; format( tdstring, sizeof tdstring, "~w~%s~n~~n~~n~~w~Spausk saudymo klavisa, kad panaikintum lentele.", text ); bTextdraw0[ playerid ] = TextDrawCreate( 49.000000, 158.000000, tdstring ); TextDrawBackgroundColor( bTextdraw0[ playerid ], 255 ); TextDrawFont( bTextdraw0[ playerid ], 1 ); TextDrawLetterSize( bTextdraw0[ playerid ], 0.240000, 1.000000 ); TextDrawColor( bTextdraw0[ playerid ], 0xFF7600FF ); TextDrawSetOutline( bTextdraw0[ playerid ], 1 ); TextDrawSetProportional( bTextdraw0[ playerid ], 1 ); TextDrawUseBox( bTextdraw0[ playerid ], 1 ); TextDrawBoxColor( bTextdraw0[ playerid ], 119 ); TextDrawTextSize( bTextdraw0[ playerid ], 198.000000, 30.000000 ); TextDrawShowForPlayer( playerid, bTextdraw0[ playerid ] ); SetPVarInt( playerid, "Infoboxrunning", 1 ); return 1; } stock InfoBoxKeyStateChange( playerid, newkeys, oldkeys ) { if( newkeys & KEY_FIRE ) { if( GetPVarInt( playerid, "Infoboxrunning" ) == 1 ) { #pragma unused oldkeys TextDrawHideForPlayer( playerid, bTextdraw0[ playerid ] ); TextDrawDestroy( bTextdraw0[ playerid ] ); SetPVarInt( playerid, "Infoboxrunning", 0 ); } } return 1; }
Po public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
Dedame :
InfoBoxKeyStateChange( playerid, newkeys, oldkeys );
Pamoka Kurta Vivix, prašome neripinti