Szerző Téma: rupBallon  (Megtekintve 1613 alkalommal)

Nem elérhető Rupert

  • 2301
    • Profil megtekintése
rupBallon
« Dátum: 2013. január 02. - 17:50:03 »
+5 Show voters
Hali, ismét. :D
Elhoztam egy új scriptet, egy másik, fejletlen script ihletett ennek a megírására.
A lényege, hogy a /ballon parancs segítségével leraksz magad alá egy ballont, és repeszthetsz bármelyik irányba. :)
Irányítógombok:
 

H = Elõre


CTRL + H = Hátra


F = Balra


CTRL + F = Jobbra


N = Fel


CTRL + N = Le

A CTRL-os gombokat így csináljátok: lenyomjátok a CTRL-t + az adott gombot, majd elengeded azt és a CTRL-t nyomva tartod.
Kép:
[hs width=300 height=300]http://kepfeltoltes.hu/130102/168562216sa-mp-016_www.kepfeltoltes.hu_.png[/hs]
Letöltés: http://www.solidfiles.com/d/8c0abfb15d/
 

Kód:

 
#include <a_samp>
#define HOLDING(%0) ((newkeys & (%0)) == (%0))
#define RELEASED(%0) \\
(((newkeys & (%0)) != (%0)) && ((oldkeys & (%0)) == (%0)))
 
new ballon[MAX_PLAYERS];
new nyomja[MAX_PLAYERS];
new Float:x[MAX_PLAYERS], Float:y[MAX_PLAYERS], Float:z[MAX_PLAYERS];
public OnFilterScriptInit()
{
print(\"\\n--------------------------------------\");
print(\" rupBallon betoltve.\");
print(\"--------------------------------------\\n\");
return 1;
}
public OnFilterScriptExit()
{
for(new i;i<MAX_PLAYERS;i++)
{
    if(ballon != 0) DestroyObject(ballon);
}
return 1;
}
public OnPlayerSpawn(playerid)
{
    nyomja[playerid] = 0;
}
public OnPlayerConnect(playerid)
{
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
    nyomja[playerid] = 0;
return 1;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
if(!strcmp(cmdtext, \"/ballon\", true))
{
        if(ballon[playerid] != 0) DestroyObject(ballon[playerid]);
    GetPlayerPos(playerid, x[playerid], y[playerid], z[playerid]);
        ballon[playerid] = CreateObject(19332, x[playerid], y[playerid], z[playerid],   0.00, 0.00, 0.00);
SetPlayerPos(playerid, x[playerid], y[playerid], z[playerid]+1);
return 1;
}
if(!strcmp(cmdtext, \"/törölballon\", true))
{
    if(ballon[playerid] == 0) return SendClientMessage(playerid, -1, \"Eddig sem volt ballonod!\");
    DestroyObject(ballon[playerid]);
    SendClientMessage(playerid, -1, \"Az ejtõernyõ törölve!\");
    return 1;
}
return 0;
}
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if(ballon[playerid] == 1)
{
if(HOLDING(KEY_CTRL_BACK))
{
    return nyomja[playerid] = 1;
}
else if(RELEASED(KEY_FIRE | KEY_CTRL_BACK))
{
    return nyomja[playerid] = 2;
}
else if(HOLDING(KEY_SECONDARY_ATTACK))
{
    return nyomja[playerid] = 3;
}
else if(RELEASED(KEY_FIRE | KEY_SECONDARY_ATTACK))
{
       return nyomja[playerid] = 4;
}
else if(HOLDING(KEY_NO))
{
   return nyomja[playerid] = 5;
}
else if(RELEASED(KEY_FIRE | KEY_NO))
{
   return nyomja[playerid] = 6;
}
else return nyomja[playerid] = 0;
}
return 0;
}
public OnPlayerUpdate(playerid)
{
if(nyomja[playerid] == 0) return 1;
if(nyomja[playerid] == 1) {
SetObjectPos(ballon[playerid], x[playerid], y[playerid]+1, z[playerid]);
GetObjectPos(ballon[playerid], x[playerid], y[playerid], z[playerid]);
SetPlayerPos(playerid, x[playerid], y[playerid], z[playerid]+1); }
if(nyomja[playerid] == 2){
SetObjectPos(ballon[playerid], x[playerid], y[playerid]-1, z[playerid]);
GetObjectPos(ballon[playerid], x[playerid], y[playerid], z[playerid]);
SetPlayerPos(playerid, x[playerid], y[playerid], z[playerid]+1); }
if(nyomja[playerid] == 3){
SetObjectPos(ballon[playerid], x[playerid]+1, y[playerid], z[playerid]);
GetObjectPos(ballon[playerid], x[playerid], y[playerid], z[playerid]);
SetPlayerPos(playerid, x[playerid], y[playerid], z[playerid]+1);}
if(nyomja[playerid] == 4){
SetObjectPos(ballon[playerid], x[playerid]-1, y[playerid], z[playerid]);
GetObjectPos(ballon[playerid], x[playerid], y[playerid], z[playerid]);
SetPlayerPos(playerid, x[playerid], y[playerid], z[playerid]+1);}
if(nyomja[playerid] == 5){
SetObjectPos(ballon[playerid], x[playerid], y[playerid], z[playerid]+1);
GetObjectPos(ballon[playerid], x[playerid], y[playerid], z[playerid]);
SetPlayerPos(playerid, x[playerid], y[playerid], z[playerid]+1);}
if(nyomja[playerid] == 6){
SetObjectPos(ballon[playerid], x[playerid], y[playerid], z[playerid]-1);
GetObjectPos(ballon[playerid], x[playerid], y[playerid], z[playerid]);
SetPlayerPos(playerid, x[playerid], y[playerid], z[playerid]+1);}
return 1;
}
« Utoljára szerkesztve: 2013. január 02. - 17:52:02 írta Rupert »

Nem elérhető Beckham

  • 1693
  • Noresz
  • Discord: Noresz#4265
    • Profil megtekintése
    • OctansV Alt:v szervere
rupBallon
« Válasz #1 Dátum: 2013. január 02. - 19:03:33 »
0 Show voters
Szép munka,nagy sampfórumos :)

Nem elérhető Csabesz

  • 7827
    • Profil megtekintése
rupBallon
« Válasz #2 Dátum: 2013. január 02. - 19:06:52 »
0 Show voters
Õ, nem hinném hogy az OnPlayerUpdate szükségeltetik.
Úgy nem próbáltad, hogy közvetlenül a gomb megnyomásához rakod az utasításokat?

Nem elérhető Rupert

  • 2301
    • Profil megtekintése
rupBallon
« Válasz #3 Dátum: 2013. január 02. - 19:12:23 »
0 Show voters
Próbáltam, de úgy nagy volt a késleltetés, ezért változóval+update-tal megoldottam.

Nem elérhető b1s

  • 2212
  • Faszidegbénulás
    • Profil megtekintése
rupBallon
« Válasz #4 Dátum: 2013. január 02. - 19:44:51 »
0 Show voters
Ötletes, \"fostam rá egy lájkot\".

Nem elérhető Mike.

  • 720
    • Profil megtekintése
rupBallon
« Válasz #5 Dátum: 2013. január 02. - 21:20:46 »
0 Show voters
Szép munka jupert.   :D

Nem elérhető The

  • 4384
    • Profil megtekintése
rupBallon
« Válasz #6 Dátum: 2013. január 03. - 03:09:34 »
0 Show voters
szép munka

rupBallon
« Válasz #7 Dátum: 2013. február 02. - 20:15:48 »
0 Show voters
Lehívom a ballont megjelenik de hiába nyomok akármit nem mozdul.  :cry3:

Nem elérhető Sean

rupBallon
« Válasz #8 Dátum: 2013. február 03. - 01:52:46 »
0 Show voters
Nagyon szép kipróbálom tuti! ment a +

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal