Peršokti į turinį

[ TUT ] Masinu nuoma su laiku..


Sn0p

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

Sveiki nėra ką veikti tai sumaniau toki simple tutorial kadangi nemačiau, kad būtu, o jei yra atsiprašau :D.

 

Taigi viskas būs taip kas 1min važiuodami su [nuomos punkto mašina] automatiškai nuiims dėkim po 100 eurų,

 

1 step. - Sukuriam kintamuosius kuriuos priskirsim mašinom.

new
manuoma[ 6 ]; // Nuomojamu masinu bus 6.

 

 

Apie formata ir tt neaiškinsiu tai yra pagrindas turite tai mokėti...

 

2 step. - Kintamuosius priskiriame mašinoms.

	manuoma[ 0 ] = AddStaticVehicle(405,-306.9124,1175.4312,19.6334,179.8853,1,1); // nuoma0
	manuoma[ 1 ] = AddStaticVehicle(405,-302.8738,1175.4763,19.6334,180.6370,1,1); // nuoma1
	manuoma[ 2 ] = AddStaticVehicle(405,-299.1151,1175.5042,19.6334,179.8281,1,1); // nuoma2
	manuoma[ 3 ] = AddStaticVehicle(405,-295.4185,1175.4795,19.6334,180.1116,1,1); // nuoma3
	manuoma[ 4 ] = AddStaticVehicle(405,-291.5851,1175.4188,19.6334,179.3102,1,1); // nuoma4
	manuoma[ 5 ] = AddStaticVehicle(405,-287.8720,1175.4257,19.6334,179.4541,1,1); // nuoma5

Patariu naudoti AddStaticVehicleEx  jokių CreateVehicle būna, kad buginasi ir spawninasi gatvėse.

 

3 step - OnPlayerStateChange idėsime veiksmą kas atsitiks kai įsėsime į mašiną. Funkcijos onplayerentervehicle nenaudosime nes ji nuskaito viską dar prieš įsėdant į mašiną kas man nepatinka.

 

Jei naudojate GRP modą kokį editą ar ką pas jus jau bus sukurtas

 	if(newstate == PLAYER_STATE_DRIVER)
 	{

        }

Bet jei ne susikuriate jį ir dedate kodą.....

       if(manuoma[0] <= vehicleid <= manuoma[sizeof(manuoma)-1])
	{
		   ShowPlayerDialog(playerid, 6969, DIALOG_STYLE_MSGBOX, "Justo nuoma", "Nuomos kaina 100/min", "Imu", "X");
 	       return 1;
	} 

 4 step - Ondialogresponse dėsime atsaką į dialogą.

 

Virsui modo prie visu kintamuju 

new masnuoma[MAX_PLAYERS];

    if(dialogid == 6969)
    {
        if(response) // Jei paspaude imu
        {
            GivePlayerMoneyA(playerid, -100); // Nuima 100 euru
            masnuoma[playerid] = SetTimerEx("justonuoma", 6*10000, true, "i", playerid); // TIMERIS
            SendClientMessage(playerid, -1, "JUSTO NUOMA >> Issinuomavote Sentinel automobili.");
        }
        else // Jei paspaude X
        {
          // Paliekat tuscia nebent norite, kad kokia zinute gautu kai paspaude X
        }
        return 1; 
    }

5 step and last - kas atsitiks išlipus iš mašinos.

 

Taigi po

public OnPlayerExitVehicle(playerid, vehicleid)

dedame

	if(manuoma[0] <= vehicleid <= manuoma[sizeof(manuoma)-1])
	{
           KillTimer(masnuoma[playerid]);
	}

Viskas jei kas neveikia rašykit čia!!!!

Gali būti klaidų netestavau viska dariau labai paprastai... Viska rašiau čia į supergames.lt ..

Redaguota , nario #Justas
Nuoroda į komentarą
Dalintis per kitą puslapį

  • Parašė po 3 savaičių...
  • Parašė po 2 savaičių...

Patariu naudoti AddStaticVehicleEx  jokių CreateVehicle būna, kad buginasi ir spawninasi gatvėse.

 

Būna tik tokiu atveju, kai objektas po mašina yra dinaminis.

 

GivePlayerMoneyA(playerid, -100);

 

GivePlayerMoneyA yra custom funkcija, tad kuriant gamemode nuo nulio rodys, kad ji "neregistruota". Turėtum pridėti GivePlayerMoneyA stock'ą, kad žmonės išvengtu tokios klaidos.

 

if(vehicleid == manuoma[0] || vehicleid == manuoma[1] || vehicleid == manuoma[2] || vehicleid == manuoma[3] || vehicleid == manuoma[4] || vehicleid == manuoma[5])

 

Galima padaryti paprasčiau:

if(manuoma[0] <= vehicleid <= manuoma[sizeof(manuoma)-1])

Taip pat kaip ir kiti minėjo, mašinų yra 6, tad masyvas turėtų būti manuoma[6];

---

Kelios pastebėlės, sėkmės.

Redaguota , nario .eko
Nuoroda į komentarą
Dalintis per kitą puslapį

  • Parašė po 2 savaičių...

Būna tik tokiu atveju, kai objektas po mašina yra dinaminis.

 

 

GivePlayerMoneyA yra custom funkcija, tad kuriant gamemode nuo nulio rodys, kad ji "neregistruota". Turėtum pridėti GivePlayerMoneyA stock'ą, kad žmonės išvengtu tokios klaidos.

 

 

Galima padaryti paprasčiau:

if(manuoma[0] <= vehicleid <= manuoma[sizeof(manuoma)-1])

Taip pat kaip ir kiti minėjo, mašinų yra 6, tad masyvas turėtų būti manuoma[6];

---

Kelios pastebėlės, sėkmės.

Dėkui pakeičiau :D.

 

 

Nebloga pamoka, naujokams tikrai pravers, pamenu prieš kokius 4 metus ieškojau tokios pamokos :)

Ne tu vienas :D

Nuoroda į komentarą
Dalintis per kitą puslapį

  • Parašė po 3 mėnesių...

Patariu naudoti AddStaticVehicleEx  jokių CreateVehicle būna, kad buginasi ir spawninasi gatvėse.

Nu nu... Jeigu pačio rankos kreivos, tai nereiškia, kad kalta funkcija. Čia ne pamoka o šūdo gabalas.

1. Dėl CreateVehicle funkcijos nusišnekėjai. Klaidini žmones.

2. Neparašei, kad OnPlayerStateChange reikia sukurti

new vehicleid = GetPlayerVehicleID(playerid);
3. Kaip sakė .eko, naudoji ne standartinę funkciją GivePlayerMoneyA. Tai arba prirašyk ją arba pakeisk į GivePlayerMoney.

4. Vietoj player timerio galima naudoti paprastą, globalų.

5. Kam iš viso sukuri timer'į, jeigu jo nenaudoji?

6. Jeigu nuomos "mašina" bus motociklas ir žaidėjas nuo jo nukris, kur nors atsitrenkęs - nenaudojamas timer'is nebus nukill'intas.

Nuoroda į komentarą
Dalintis per kitą puslapį

Mano nuomone mašinų nuoma yra skirta realaus gyvenimo serveriams, ar aš klystu? Turbūt, negalėtume tai pritaikyti stunt ar drift serveriams. Taigi ar nemanai, kad tai nėra realu, jei išlipus iš mašinos nuoma nutraukiama? Paprastai, realeme gyvenime būna nuoma nutraukiama tik tada kai ją nutraukia tas žmogus, kuris ją nuomojasi. Taigi šiame kode į tai yra atsižvelgta ir padaryta, taip pat kodas labiau optimizuotas: http://pastebin.com/7bBG2J4vTikiuosi tai bus puiki pamoka ateities darbams, sėkmės tobulėjime.

Nuoroda į komentarą
Dalintis per kitą puslapį

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

Prisijungti prie diskusijos

Palikti atsakymą galite iš karto, o užsiregistruoti vėliau. Jeigu jau turite paskyrą mūsų forume, Prisijunkite.

Svečias
Atsakyti šioje temoje...

×   Įklijuotas tekstas turi teksto formatavimą.   Pašalinti teksto formatavimą

  Galimi tik 75 veidukai.

×   Nuoroda buvo automatiškai įterpta.   Įterpti nuorodą paprastai

×   Jūsų ankstesnis pranešimas buvo atkurtas.   Išvalyti redaktorių

×   Jūs negalite įkelti nuotraukas tiesiogiai.Įkelkite arba įdėkite nuotraukas iš URL.

  • Šiame puslapyje naršo:   0 nariai

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

Skelbimai


×
×
  • Sukurti naują...