GTA Közösség - A magyar GTA fórum

San Andreas Multiplayer (SA-MP) => SA-MP: Szerverfejlesztés => A témát indította: [SRC]D@nee - 2010. Május 23. - 10:38:13

Cím: [TELEPORT]Catapult
Írta: [SRC]D@nee - 2010. Május 23. - 10:38:13
Hy all készítettem egy catapult telét mely hasznos lehet ha éppen nem tudsz megálni és ktáznod kell magad
Nos:
if(strcmp(cmdtext, \"/catapult\", true) == 0) {
if(IsPlayerInAnyVehicle(playerid)) {
new Float:X;
new Float:Y;
new Float:Z;
new VehicleID;
GetPlayerPos(playerid, X, Y, Z);
VehicleID = GetPlayerVehicleID(playerid);
SetVehiclePos(VehicleID, X, Y, Z + 800.00);
GivePlayerWeapon(playerid,46,1);
} else {
new Float:X;
new Float:Y;
new Float:Z;
GetPlayerPos(playerid, X, Y, Z);
SetPlayerPos(playerid, X, Y, Z + 800.00);
GivePlayerWeapon(playerid,46,1);
Bárhol vagy, beírod /catapult kilo.
By:D@nee
Üdv!
Cím: [TELEPORT]Catapult
Írta: Depi - 2010. Május 23. - 10:57:36
1 . Látszik baszol elolvasni bármien szabályzatot...
2 . Ez nem tartozik ebbe a fórum részbe... hisz meg se magyarázól semmit , hogy mi mire jó..
3 . Elkéne olvasni a szabályzatot
4 . Sokkal egyszerubben is meg lehetet volna oldani sztem.
Inkább töröld ezt a témát..
Cím: [TELEPORT]Catapult
Írta: [SRC]D@nee - 2010. Május 23. - 11:09:37
Miért kell bele kötnöd mindíg belém??:) :-[ :-[ :-[ ??? ??? ??? ??? ??? :dodge: :dodge: :dodge:
Cím: [TELEPORT]Catapult
Írta: Depi - 2010. Május 23. - 11:28:24
Nem kötekedek de amit leírtál az csak egy parancs,nem egy leírás.. semmit nem magyarázól el hogy mire jó..igy akkor mi értelme van ? + A szabályzatot is meg sérted.
Cím: [TELEPORT]Catapult
Írta: Lömpi - 2010. Május 23. - 12:02:41
1. Nem te írtad :O
2. [*code] [*/code] tag-ek használata  * nélkül
3. Ez mióta leírás?:O
4. Ezt az egészet megehetett volna oldani 4 sorban..
5. Olvasd el a szabályzatot.. az össze forumrészben..
Cím: [TELEPORT]Catapult
Írta: Csabesz - 2010. Május 23. - 13:09:28
Viccelsz ?  :dead:
 

if(strcmp(cmdtext, \"/catapult\", true) == 0)
{
   new Float:X, Float:Y, Float:Z; // Lebegopontos változók ( Pozíció tárolására )
   GetPlayerPos ( playerid, X, Y, Z ); // Pozíció légkérdezése
   if ( !IsPlayerInAnyVehicle ( playerid ) ) return SetPlayerPos ( playerid, X, Y, Z+800 ); // Lekérdezzük hogy a játékos jármuben van-e vagy nincs, ha nincs akkor visszatérünk a játékos magasságának növelésével
   {
       GetVehiclePos ( GetPlayerVehicleID ( playerid ), X, Y, Z ); // Jármu pozíciójának lekérdezése
       SetVehiclePos ( GetPlayerVehicleID ( playerid ), X, Y, Z+800 ); // Ha a játékos jármuben van, akkor a jármu magasságát növeljük
   }
    GivePlayerWeapon ( playerid, 46, 1 ); // Ejtoernyo
   return 1; // Visszatérünk \'Igaz\' értékkel.
}
Cím: [TELEPORT]Catapult
Írta: krisk - 2010. Május 23. - 18:20:12
Az egyetlen jó dolog, amit csináltál a scriptedben az az, hogy változóban tároltad a GetPlayerVehicleID függvényt, aminek köszönhetoen memóriát takarítottál meg. Ám ez sem tökéletes, ugyanis nem intergert csinálunk, hanem tömböt (aka stringet) ezért a bokkok mennyiségét kell adni, valahogy így:
 
new vehid[MAX_VEHICLES] = GetPlayerVehicleID(playerid);

 
Másrészrol folosleges a scriptedet azzal olvashatatlanná tenni, hogy a vektorokat tároló változókat (X,Y,Z) minden egyes IF-nél külön deklarálod. Elég lenne 1x, a parancs elején, és az használható egészen a parancs végéig.
Harmadrészrol identítás befigyel, normálisan nézzen már ki a scripted, ha belerakod a tutba.
Cím: [TELEPORT]Catapult
Írta: kurta999 - 2010. Május 23. - 20:06:44
Idézetet írta: Csabesz date=1274612968\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"1722\" data-ipsquote-contentclass=\"forums_Topic
Viccelsz ?  :dead:
 

if(strcmp(cmdtext, \"/catapult\", true) == 0)
{
   new Float:X, Float:Y, Float:Z; // Lebegopontos változók ( Pozíció tárolására )
   GetPlayerPos ( playerid, X, Y, Z ); // Pozíció légkérdezése
   if ( !IsPlayerInAnyVehicle ( playerid ) ) return SetPlayerPos ( playerid, X, Y, Z+800 ); // Lekérdezzük hogy a játékos jármuben van-e vagy nincs, ha nincs akkor visszatérünk a játékos magasságának növelésével
   {
       GetVehiclePos ( GetPlayerVehicleID ( playerid ), X, Y, Z ); // Jármu pozíciójának lekérdezése
       SetVehiclePos ( GetPlayerVehicleID ( playerid ), X, Y, Z+800 ); // Ha a játékos jármuben van, akkor a jármu magasságát növeljük
   }
   GivePlayerWeapon ( playerid, 46, 1 ); // Ejtoernyo
   return 1; // Visszatérünk \'Igaz\' értékkel.
}

 

Ha jól néztem, akkor amikor a játékos gyalog van nem kap ejtoernyot. Mert azzal tér vissza, hogy feldobja. Ha nem akkor bocs.
Cím: [TELEPORT]Catapult
Írta: krisk - 2010. Május 23. - 21:16:34
Rosszul nézed. Az if statementen kívüli dolgok mindenhogy lefutnak, szóval az is, hogy kap 1 ernyot.
Cím: [TELEPORT]Catapult
Írta: hpeter94 - 2010. Május 24. - 08:57:13
Hát ez rohadtul rossz helyen van....
Cím: [TELEPORT]Catapult
Írta: Iceaac - 2010. Május 24. - 10:16:09
Idézetet írta: dns date=1274608961\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"1722\" data-ipsquote-contentclass=\"forums_Topic
4. Ezt az egészet megehetett volna oldani 4 sorban..
 
4 sorban, de milyen átlátható lesz akkor? =) Bár igaz, hogy jóval kevesebb \"sorral\" is meg lehetne írni és még átláthatóbb is lenne.
Cím: [TELEPORT]Catapult
Írta: Shadow - 2010. Május 25. - 17:30:31
Lehet te írtad de khm. :
 
#include <a_samp>
new catapulttimer;
forward Catapult(playerid);
new warning[MAX_PLAYERS] = 0;
#define COLOR_YELLOW 0xFFFF00AA
#define COLOR_LIGHTRED 0xED0321AA
public OnFilterScriptInit()
{
catapulttimer = SetTimer(\"Catapult\",1000,1);
return 1;
}
public OnFilterScriptExit()
{
KillTimer(catapulttimer);
return 1;
}
public Catapult(playerid)
{
if(IsPlayerInAnyVehicle(playerid))
{
new Float:health;
GetVehicleHealth(GetPlayerVehicleID(playerid),health);
new ember[MAX_PLAYER_NAME];
new string[256];
GetPlayerName(playerid, ember, sizeof(ember));
if(health <= 249 && warning[playerid] == 0)
{
    SendClientMessage(playerid,COLOR_YELLOW, \"Ugorj ki a kocsiból a /ugras paranccsal! !\");
    format(string, sizeof(string), \"%s -nek ég a jármuve !\",ember);
    SendClientMessageToAll(COLOR_YELLOW,string);
    warning[playerid] = 1;
}
}
return 1;
}
public OnPlayerConnect(playerid)
{
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
return 1;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
if(strcmp(cmdtext, \"/ugras\",true) == 0)
{
if(IsPlayerInAnyVehicle(playerid))
{
   new Float:X;
   new Float:Y;
   new Float:Z;
   GetPlayerPos(playerid,X,Y,Z);
   SetPlayerPos(playerid,X,Y,Z+500);
   GivePlayerWeapon(playerid, 46, 1);
   SendClientMessage(playerid, COLOR_YELLOW, \"Katapultáltál !!!\");
   return 1;
}
else
{
    SendClientMessage(playerid, COLOR_LIGHTRED, \"HIBA: Nem ülsz kocsiban !\");
    return 1;
}
}
return 0;
}
public OnPlayerExitVehicle(playerid, vehicleid)
{
warning[playerid] = 0;
return 1;
}
public OnPlayerDeath(playerid, killerid, reason)
{
warning[playerid] = 0;
return 1;
}