Peršokti į turinį
ViVix

Kuriame darbą, kad reikėtu važiuoti po CP

Recommended Posts

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 :)

  • Neigiamai 1

Dalintis šį pranešimą


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















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 :)

o jeigu man yra taip: darbas jau sukurtas bet cp nera, ir man reikia tik cp sudeti, kaip man tai padaryti? nuo kokios vietos viska darti, aciu uz pagalba jai bent katras padesit. :)

-- Papildyta --

P.S as jau issisaugojes pickupus, turiu kordinates, man tik reikia juos sudeti.

Dalintis šį pranešimą


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


C:\Documents and Settings\Administrator\Desktop\Gm\gamemodas\gamemodas\gamemodes\band7.pwn(150) : error 001: expected token: "}", but found "{"

C:\Documents and Settings\Administrator\Desktop\Gm\gamemodas\gamemodas\gamemodes\band7.pwn(183) : error 010: invalid function or declaration

C:\Documents and Settings\Administrator\Desktop\Gm\gamemodas\gamemodas\gamemodes\band7.pwn(184) : error 017: undefined symbol "playerid"

C:\Documents and Settings\Administrator\Desktop\Gm\gamemodas\gamemodas\gamemodes\band7.pwn(184) : error 009: invalid array size (negative, zero or out of bounds)

C:\Documents and Settings\Administrator\Desktop\Gm\gamemodas\gamemodas\gamemodes\band7.pwn(8616) : error 017: undefined symbol "model"

C:\Documents and Settings\Administrator\Desktop\Gm\gamemodas\gamemodas\gamemodes\band7.pwn(8618) : error 017: undefined symbol "spec"

C:\Documents and Settings\Administrator\Desktop\Gm\gamemodas\gamemodas\gamemodes\band7.pwn(16027) : error 001: expected token: ";", but found "else"

Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase

7 Errors.

va errorai, padek istaisyt. :)

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


×