Peršokti į turinį
hustrine

[ RPG / GRP ]Mašinos nuomos paprasta sistemėlė.

Recommended Posts

Sveiki. Taigi neturėdamas ką veikti sumasčiau sukurti trumpą sistemėlę. Taigi pirmą susikursime timerį( lietuviškai laikmatį ) su kuriuo vėliau nuimsime pinigus į minutę.

Jį sukurkite kur nors viršuje modifikacijos.

new timer1;

Dabar po

public OnPlayerEnterVehicle( playerid, vehicleid, ispassenger )
{

Dedame

if( GetVehicleModel( vehicleid ) == 405 )
{
	SetTimer( "dialogas", 2000, false );
	return 1;
}
return 1;
}

Tada kur nors gale modifikacijos rašome.

forward dialogas( playerid );
public dialogas( playerid )
{
ShowPlayerDialog( playerid, 552, DIALOG_STYLE_LIST, "Maðinos nuoma", "Nuomuotis 50 LT/min\nNesinuomuoti", "Rinktis", "" );
return 1;
}

Su šia funkcija dialogo iškarto nemes kai paspausite jog norite įlipti į mašiną.

Dabar po

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{

rašome

if( dialogid == 552 )
{
    if( response )
    {
		if( listitem == 0 )
		{
		    if( GetPlayerMoney( playerid ) < 50 )
		    {
		        SendClientMessage( playerid, -1, "Tu neturi tiek pinigø" );
                               RemovePlayerFromVehicle( playerid );
			}
			else
			{
				timer1 = SetTimer( "NuimamPinigus", 60000, true );
			    GivePlayerMoney( playerid, -50 );
			    return 1;
			}
		}
		if( listitem == 1 )
		{
		    SendClientMessage( playerid, -1, "Geros dienos!!!" );
		    return 1;
		}
	}
}
return 1;
}

Čia jums mes dialogą ir jeigu jūs neturite 50Litų, tada jums neleis nuomotis mašinos ir jus iš jos tiesiog išmes, o jeigu jūs turėsite tiek pinigų, jūsų neišmes ir po 1 minutės vėl darys tikrinimą.

Dabar kad po minutės darytų tikrinimą ar žaidėjas turi 50 Litų. Jeigu neturi išmes iš mašinos, o jeigu turi neišmes.

Visą tai dedame modifikacijos apačioje.

forward NuimamPinigus( playerid );
public NuimamPinigus( playerid )
{
if( GetPlayerMoney( playerid ) < 50 )
{
	SendClientMessage( playerid, -1, "Tu neturi tiek pinigø" );
	RemovePlayerFromVehicle( playerid );
	return 1;
}
else
{
    GivePlayerMoney( playerid, -50 );
    SendClientMessage( playerid, -1, "Tu nebesinuomuoji maðinos" );
    return 1;
}
}

Na va atrodo ir viskas.

Dabar beliko tik sunaikinti timerį( lietuviškai laikmatį ), kad kai žaidėjas išlipa iš mašinos jam nebenuimtų pinigų.

Taigi po.

public OnPlayerExitVehicle(playerid, vehicleid)
{

rašome.

KillTimer( timer1 );
return 1;
}

Na va, pamoka baigta. Jeigu kyla klausimų rašykite komentaruose.

Jei negaila duokite +rep :sliap:

  • Teigiamai 1

Dalintis šį pranešimą


Nuoroda iki šio pranešimo
Dalintis per kitą puslapį







bloga pamoka, kam tau tas timeris kad parodytu dialogą? Negali iškarto?

O tu dabar logiškai pagalvok. OnPlayerEnterVehicle callbac'as gui langą išmes iškarto paspaudus mygtuką įlipti į mašiną. O tos porą sekundžių skirtos tam kad įliptų :).

Dalintis šį pranešimą


Nuoroda iki šio pranešimo
Dalintis per kitą puslapį



bloga pamoka, kam tau tas timeris kad parodytu dialogą? Negali iškarto?

O tu dabar logiškai pagalvok. OnPlayerEnterVehicle callbac'as gui langą išmes iškarto paspaudus mygtuką įlipti į mašiną. O tos porą sekundžių skirtos tam kad įliptų :).

O tu dabar dar logiškiau pagalvok. OnPlayerState callback'as tikrina kai pasikeičia padėtis, o ne kai pradeda lipti if(newstate == PLAYER_STATE_DRIVER)

Dalintis šį pranešimą


Nuoroda iki šio pranešimo
Dalintis per kitą puslapį

bloga pamoka, kam tau tas timeris kad parodytu dialogą? Negali iškarto?

O tu dabar logiškai pagalvok. OnPlayerEnterVehicle callbac'as gui langą išmes iškarto paspaudus mygtuką įlipti į mašiną. O tos porą sekundžių skirtos tam kad įliptų :).

O tu dabar dar logiškiau pagalvok. OnPlayerState callback'as tikrina kai pasikeičia padėtis, o ne kai pradeda lipti if(newstate == PLAYER_STATE_DRIVER)

Gerai kad priminei. Visai pamiršęs buvau. :D

Dalintis šį pranešimą


Nuoroda iki šio pranešimo
Dalintis per kitą puslapį

Svečias
Ši tema yra užrakinta.

  • Narių peržiūri šį forumą:   0 nariai

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


  • SuperGames programele
  • SuperGames programele


×