Szerző Téma: nBoom  (Megtekintve 983 alkalommal)

nBoom
« Dátum: 2014. Augusztus 31. - 23:52:52 »
0
nBoom
 
Unalomból készitettem ezt a kis kódot. Ha megnyomjuk az N betût (és nem nyomjuk a space gombot) akkor egy robbanás kiséretében 5m-rel magasabban leszünk :D
 

#include <a_samp>
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
new Float:x,Float:y,Float:z,Float:hp; GetPlayerPos(playerid,x,y,z); GetPlayerHealth(playerid,hp);
if(newkeys == KEY_NO) CreateExplosion(x, y, z, 12, 1.0),SetPlayerHealth(playerid,hp),SetPlayerPos(playerid,x,y,z+5);
return 1;
}

 
Készitõ: én
Készitési idõ: 2perc
Tesztelési idõ: 2év :D
« Utoljára szerkesztve: 2014. Szeptember 01. - 22:23:01 írta Nukerdog »

Nem elérhető Flash

  • 5726
  • (っ◕‿◕)っ
    • Profil megtekintése
nBoom
« Válasz #1 Dátum: 2014. Szeptember 03. - 11:59:39 »
0
Ezt a szkriptet max az olcsó FUN szervereken tudnám elképzelni.
Akármelyik gombot lenyomod amelyek a SA:MP-ban engedélyezettek, mindig lefog hívodni az alábbi sor:
 
new Float:x,Float:y,Float:z,Float:hp; GetPlayerPos(playerid,x,y,z); GetPlayerHealth(playerid,hp);

 
Még azt nem értem hogy mért a Z értéket növeled 5-el? Nem lenne értelmesebb az X et vagy az Y-t?
És tesztelési idõt felesleges kiírni mert úgyse szokták mérni ezt, fõleg nem ilyen \"troll\" formában.
Helyesen a kód:
 
#include <a_samp>
#define PRESSED(%0)   (((newkeys & (%0)) == (%0)) && ((oldkeys & (%0)) != (%0)))
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
    if(PRESSED(KEY_NO)) {
        new Float:x,Float:y,Float:z,Float:hp;
GetPlayerPos(playerid,x,y,z);
GetPlayerHealth(playerid,hp);
CreateExplosion(x, y, z, 12, 1.0),SetPlayerHealth(playerid,hp),SetPlayerPos(playerid, x+5, y+5, z);
}
    return 1;
}

nBoom
« Válasz #2 Dátum: 2014. Szeptember 03. - 14:32:17 »
0
Idézetet írta: Flash date=1409738379\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"50479\" data-ipsquote-contentclass=\"forums_Topic
Ezt a szkriptet max az olcsó FUN szervereken tudnám elképzelni.
 
Az olcsó jelzõt nem értem. Nem RP szerverekre készítettem.

Még azt nem értem hogy mért a Z értéket növeled 5-el? Nem lenne értelmesebb az X et vagy az Y-t?
 
[/quote]
Pont az a lényege, hogy feldobja a játékost. X Y koordinátán én is gondolkodtam aszerint, hogy merre néz.
 
#define PRESSED(%0)     (((newkeys & (%0)) == (%0)) && ((oldkeys & (%0)) != (%0)))[/quote]
Ez minek?

Nem elérhető Flash

  • 5726
  • (っ◕‿◕)っ
    • Profil megtekintése
nBoom
« Válasz #3 Dátum: 2014. Szeptember 03. - 14:50:05 »
0
Idézetet írta: Nukerdog date=1409747537\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"50479\" data-ipsquote-contentclass=\"forums_Topic


Ezt a szkriptet max az olcsó FUN szervereken tudnám elképzelni.
 
Az olcsó jelzõt nem értem. Nem RP szerverekre készítettem.

Még azt nem értem hogy mért a Z értéket növeled 5-el? Nem lenne értelmesebb az X et vagy az Y-t?
 
[/quote]
Pont az a lényege, hogy feldobja a játékost. X Y koordinátán én is gondolkodtam aszerint, hogy merre néz.
 
#define PRESSED(%0)     (((newkeys & (%0)) == (%0)) && ((oldkeys & (%0)) != (%0)))[/quote]
Ez minek?
 
[/quote]
Nem is azt mondtam hogy RP szerverekre készítetted, épp ez az hogy egy ilyen szkriptet egy jobb fun szervereken is jobb mûködõképességgel írnak meg.
És most annak mi értelme hogy robbanáskor feldobod a játékost majd visszatöltöd az eredeti értékére az életét? Nem egyszerûbb ha X meg az Y koordinátáihoz hozzáadsz +5-öt és akkor szerintem sebzõdni se fog a játékos robbanáskor és akkor máris nem kell lekérdezi + visszatölteni a játékosnak az élet értékét.
A PRESSED definíciója abban segíti a dolgot hogy akár egyszerre az N és a SPACE gomb lenyomásával is mûködik a parancs.

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal