Hát lehet máshogy is szerintem, de van egy egyszerû is.
Annyi, hogy mindig lekéred a pozicióját, és megvizsgálod, hogy a Z kordináta( tehát magasság ), nagyobb-e, mint például 10.0 méter. Ha igen, akkor oda adod neki amit akarsz. De ez mondjuk értelmét veszti, ha felmegy egy épületre, repül vagy ilyenek. Más nem nagyon jut eszembe, ki kell logikázni.
Így:
new
Float: fPosition[ 3 ];
GetPlayerPos( playerid, fPosition[ 0 ], fPosition[ 1 ], fPosition[ 2 ] );
if( fPosition[ 2 ] >= 10.0 )
{
SendClientMessage( playerid, -1, \"Valószínûleg levegõben vagy.\" );
}
De ezt lehet ciklusba is tenni.
Hát lehet máshogy is szerintem, de van egy egyszerû is.
Annyi, hogy mindig lekéred a pozicióját, és megvizsgálod, hogy a Z kordináta( tehát magasság ), nagyobb-e, mint például 10.0 méter. Ha igen, akkor oda adod neki amit akarsz. De ez mondjuk értelmét veszti, ha felmegy egy épületre, repül vagy ilyenek. Más nem nagyon jut eszembe, ki kell logikázni.
Így:
new
Float: fPosition[ 3 ];
GetPlayerPos( playerid, fPosition[ 0 ], fPosition[ 1 ], fPosition[ 2 ] );
if( fPosition[ 2 ] >= 10.0 )
{
SendClientMessage( playerid, -1, \"Valószínûleg levegõben vagy.\" );
}
De ezt lehet ciklusba is tenni.
Ez nemjó! Ha a pozició 10 méter fölött van akkor kiirja. De bugos! Felmentem a szerverre és ezt elkezdte floodolni!
#if defined credit
Készítette a GTAForum bandazóna készítõ
Link: www.gtaforum.hu/tool/gangzone
Idõ: 2012. Szeptember 06. - 18:31:51
#endif
#include <a_samp>
// Így ellenõrizheted, hogy a játékos a meghatározott területen belül van-e:
// if(IsPlayerInArea(playerid,-156,528,2364,2634))
new zone;
public OnFilterScriptInit()
{
// Bandaterület létrehozása
zone = GangZoneCreate(-156,2364,528,2634);
return 1;
}
public OnPlayerRequestSpawn(playerid)
{
// Bandaterület megjelenítése (a színt a mejglenítéskor kell megadni)
GangZoneShowForPlayer(playerid, zone, 0xFFFFFF40);
// A következõ sor a meghatározott területre korlátozza a játékos játékterét:
//SetPlayerWorldBounds(playerid, 528,-156,2634,2364);
return 1;
}
public OnFilterScriptExit()
{
// A szkript kitöltésekor a zóna is törlõdik
GangZoneDestroy(zone);
return 1;
}
// Ezzel le lehet ellenõrizni, hogy a játékos egy adott területen belül tartózkodik-e
stock IsPlayerInArea(playerid, Float:minx, Float:maxx, Float:miny, Float:maxy)
{
new Float:x, Float:y, Float:z;
GetPlayerPos(playerid, x, y, z);
return minx < x < maxx && miny < y < maxy;
}
public OnPlayerUpdate(playerid)
{
if(IsPlayerInArea(playerid,-156,528,2364,2634))
{
//ide a cuccokat.
}
return 1;
}
Szerintem próbálj alapozni a gombokra.
#define PRESSED(%0) \\
(((newkeys & (%0)) == (%0)) && ((oldkeys & (%0)) != (%0)))
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
new pSeat = GetPlayerVehicleSeat(playerid);
if (PRESSED(KEY_W) && PRESSED(KEY_UP) && pSeat == 0 && IsPlayerInBike(playerid)) // A jatekos elõre megy és nyomja a fel gomot.Motorban van és õ a soför.
{
GivePlayerItems(playerid);
}
return 1;
}
stock IsPlayerInBike(playerid) {
new m = GetVehicleModel(GetPlayerVehicleID(playerid));
if(m == 448 || m == 461 || m == 462 || m == 463 || m == 468 || m == 471 || m == 521 || m == 522 || m == 523 || m == 581 || m == 586) { return 1; }
return 1; }
stock GivePlayerItems(playerid) {
//cucc1
//cucc 2
//cucc3
return 1;
}
Remélem müködik.Ha nem is így, akkor lehet hogy megtudod hasonóan csinálni.