Peršokti į turinį
ViVix

Saugios zonos

Recommended Posts

Kažkur buvau radęs šitą fs, bet jis buvo ne toks geras, jį truputį paeditinau, viskas puikiai veikia, pasidalinsiu su jumis :)

viršuje dedame :

#define MAX_ZONES  5 // zonų skaičius galima keisti
enum kords
{
   Float:minX,
   Float:minY,
   Float:maxX,
   Float:maxY
};
new Text:Saugz;
new Float:ZoneCords[MAX_ZONES][kords] =
{
    // minX, minY, maxX, maxY
    {-2696.9824, -60.6852, -2613.1055, 29.8879}, 
    {-2001.5415, 77.9670, -1950.7507, 218.3597}, 
    {-1958.4668, 77.8609, -2000.5751, 218.8447}, 
    {-2016.1119, -75.8952, -2095.3254, -101.8620},
    {2192.7255, 2032.4004, 2312.0420, 2067.6936} 
};

Koordinates galite pasikeisti :)

po onplayerconnect dedam :

Saugz = TextDrawCreate( 13, 150, "~w~ Saugi Zona" );
TextDrawBackgroundColor(Saugz, 0xFF7600FF);
TextDrawFont(Saugz,3);
TextDrawSetOutline( Saugz, 1 );
TextDrawSetProportional( Saugz, 1 );

Toliau po

public OnPlayerGiveDamage(playerid, damagedid, Float: amount, weaponid)
{

PASTABA : Jeigu šito callbacko nėra, prisirašykit !!!

Po šituo callbacku dedame kodą:

for(new z = 0; z < MAX_ZONES; z++)
       {
 if(PlayerInZone(playerid, ZoneCords[z][minX], ZoneCords[z][minY], ZoneCords[z][maxX], ZoneCords[z][maxY]))
		{
		new Float:HP;
		SetPlayerArmedWeapon(playerid,true);
   SetPlayerHealth(playerid,GetPlayerHealth(playerid,HP)-5);
  SendClientMessage(playerid,RAUDONA,"Praradai 5 gyvybęs už ginklo demonstravimą Saugioje Zonoje");
  }
  }

Ir gamemodo gale dedame :

stock PlayerInZone(playerid, Float:min_X, Float:min_Y, Float:max_X, Float:max_Y)
{
   new Float:pos[3]; GetPlayerPos(playerid, pos[0], pos[1], pos[2]);
   if((pos[0] <= max_X && pos[0] >= min_X) && (pos[1] <= max_Y && pos[1] >= min_Y)) return 1;
   return 0;
}

po

OnPlayerUpdate

dėti:

for(new z = 0; z < MAX_ZONES; z++)
       {
if(!PlayerInZone(playerid, ZoneCords[z][minX], ZoneCords[z][minY], ZoneCords[z][maxX], ZoneCords[z][maxY]))
		{
		TextDrawHideForPlayer(playerid,Saugz);
		}
		}
		for(new z = 0; z < MAX_ZONES; z++)
       {
		 if(PlayerInZone(playerid, ZoneCords[z][minX], ZoneCords[z][minY], ZoneCords[z][maxX], ZoneCords[z][maxY]))
		{
		TextDrawShowForPlayer(playerid,Saugz);
		}
		}

SKRIPTAS EDITINTAS MANO, Jo kūrėjas nežinau kas, bet kūriau ne aš.

  • Teigiamai 8

Dalintis šį pranešimą


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



Pagalbos man ismeta : :oO: :bad: :( :help: :help: :help: :help:

D:\domo\www.LsGame.us.lt - By Aivaras_Smitas\gamemodes\band7.pwn(37) : warning 213: tag mismatch

D:\domo\www.LsGame.us.lt - By Aivaras_Smitas\gamemodes\band7.pwn(37) : warning 227: more initiallers than enum fields

D:\domo\www.LsGame.us.lt - By Aivaras_Smitas\gamemodes\band7.pwn(37) : warning 213: tag mismatch

D:\domo\www.LsGame.us.lt - By Aivaras_Smitas\gamemodes\band7.pwn(37) : error 018: initialization data exceeds declared size

data/dutils.inc(22) : error 001: expected token: "}", but found "new"

data/menu.txt(577) : error 017: undefined symbol "GetPlayerMoneyA"

data/menu.txt(602) : error 017: undefined symbol "GetPlayerMoneyA"

data/menu.txt(623) : error 017: undefined symbol "GetPlayerMoneyA"

data/menu.txt(631) : error 017: undefined symbol "Modinimas"

data/menu.txt(666) : error 017: undefined symbol "GetPlayerMoneyA"

data/menu.txt(674) : error 017: undefined symbol "Modinimas"

data/menu.txt(693) : error 017: undefined symbol "GetPlayerMoneyA"

data/menu.txt(701) : error 017: undefined symbol "Modinimas"

data/menu.txt(713) : error 017: undefined symbol "GetPlayerMoneyA"

data/menu.txt(721) : error 017: undefined symbol "Modinimas"

data/menu.txt(745) : error 017: undefined symbol "GetPlayerMoneyA"

data/menu.txt(753) : error 017: undefined symbol "Modinimas"

data/menu.txt(755) : error 017: undefined symbol "Modinimas"

data/menu.txt(780) : error 017: undefined symbol "GetPlayerMoneyA"

data/menu.txt(788) : error 017: undefined symbol "Modinimas"

data/menu.txt(790) : error 017: undefined symbol "Modinimas"

data/menu.txt(815) : error 017: undefined symbol "GetPlayerMoneyA"

data/menu.txt(823) : error 017: undefined symbol "Modinimas"

data/menu.txt(847) : error 017: undefined symbol "GetPlayerMoneyA"

data/menu.txt(855) : error 017: undefined symbol "Modinimas"

data/menu.txt(870) : error 017: undefined symbol "GetPlayerMoneyA"

data/menu.txt(878) : error 017: undefined symbol "Modinimas"

data/menu.txt(891) : error 017: undefined symbol "GetPlayerMoneyA"

data/menu.txt(899) : error 017: undefined symbol "Modinimas"

Compilation aborted.Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase

26 Errors.

  • Teigiamai 2

Dalintis šį pranešimą


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



Klausymas. O jeigu aš noresiu dar 1 zona padaryt tai man reikia kordinates prirašyt viršui ir viskas ?

Taip, ir pakelti MAX_ZONES 1 skaičiumi pvz ten 5 tai bus 6.

P.S. Naudokite šita gang zone makerį: http://forum.sa-mp.com/showthread.php?t=120586, bus daug lengviau kurt zonas(bent jau man su juo lengviau :D)

Dalintis šį pranešimą


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

Puiku kad yra žmonių kurie stengiasi dėl kitų.Na apie pačios pamokos turini nelabai ką galiu ir pasakyti, nes nebandžiau, tačiau mačiau kad naudojamas OnPlayerUpdate callback'as na aišku,jei reikia labai tiksliai jis praverčia, tačiau šiaip yra tikras CPU vagis.

  • Teigiamai 1

Dalintis šį pranešimą


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










man dėl callbacko errorus mėto, įdedu onplayergivedemage callback'ą nu ir prasideda klaidų mėtymai

Pagalbos man ismeta : :oO: :bad: :( :help: :help: :help: :help:

D:\domo\www.LsGame.us.lt - By Aivaras_Smitas\gamemodes\band7.pwn(37) : warning 213: tag mismatch

D:\domo\www.LsGame.us.lt - By Aivaras_Smitas\gamemodes\band7.pwn(37) : warning 227: more initiallers than enum fields

D:\domo\www.LsGame.us.lt - By Aivaras_Smitas\gamemodes\band7.pwn(37) : warning 213: tag mismatch

D:\domo\www.LsGame.us.lt - By Aivaras_Smitas\gamemodes\band7.pwn(37) : error 018: initialization data exceeds declared size

data/dutils.inc(22) : error 001: expected token: "}", but found "new"

data/menu.txt(577) : error 017: undefined symbol "GetPlayerMoneyA"

data/menu.txt(602) : error 017: undefined symbol "GetPlayerMoneyA"

data/menu.txt(623) : error 017: undefined symbol "GetPlayerMoneyA"

data/menu.txt(631) : error 017: undefined symbol "Modinimas"

data/menu.txt(666) : error 017: undefined symbol "GetPlayerMoneyA"

data/menu.txt(674) : error 017: undefined symbol "Modinimas"

data/menu.txt(693) : error 017: undefined symbol "GetPlayerMoneyA"

data/menu.txt(701) : error 017: undefined symbol "Modinimas"

data/menu.txt(713) : error 017: undefined symbol "GetPlayerMoneyA"

data/menu.txt(721) : error 017: undefined symbol "Modinimas"

data/menu.txt(745) : error 017: undefined symbol "GetPlayerMoneyA"

data/menu.txt(753) : error 017: undefined symbol "Modinimas"

data/menu.txt(755) : error 017: undefined symbol "Modinimas"

data/menu.txt(780) : error 017: undefined symbol "GetPlayerMoneyA"

data/menu.txt(788) : error 017: undefined symbol "Modinimas"

data/menu.txt(790) : error 017: undefined symbol "Modinimas"

data/menu.txt(815) : error 017: undefined symbol "GetPlayerMoneyA"

data/menu.txt(823) : error 017: undefined symbol "Modinimas"

data/menu.txt(847) : error 017: undefined symbol "GetPlayerMoneyA"

data/menu.txt(855) : error 017: undefined symbol "Modinimas"

data/menu.txt(870) : error 017: undefined symbol "GetPlayerMoneyA"

data/menu.txt(878) : error 017: undefined symbol "Modinimas"

data/menu.txt(891) : error 017: undefined symbol "GetPlayerMoneyA"

data/menu.txt(899) : error 017: undefined symbol "Modinimas"

Compilation aborted.Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase

26 Errors.

Prirašykit po ONPLAYERGIVEDAMAGE codo pačiam gale

return 1;

}

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


×