Szerző Téma: Away From Keyboard System  (Megtekintve 2092 alkalommal)

Away From Keyboard System
« Dátum: 2014. Augusztus 02. - 13:23:50 »
0
Sziasztok! Unalmamban készítettem egy AFK parancsot, ami arra jó, hogy, ha valakinek el kell mennie a géptõl, csak beírja a parancsot és máris mehet a dolgára. Az AFK -olót megsebezni nem tudják!

Nem valami nagy script  :D Elsõ publikálásnak megteszi szerintem. Talán pár kezdõnek(Én is az vagyok xd) jól jöhet :)


Teszteltem
mûködik!

Készítõ: .RäNÐoM.


Elkészítési idõ: 10-15 perc


Sorok száma: 75


Szerk.: RoLuX -nak köszönöm a segítséget! Kiegészítettem a FS-t ezzel a pár sorral :)


             és Flash -nek is köszönöm az \"észrevételt\" :D Szintén kiegészítve ;)


A Filterscript nyugodtan terjeszthetõ, átalakítható, de a nevem feltüntetése
kötelezõ!

Letöltés :
http://www.solidfiles.com/d/dadc975330/AwayFromKeyboard.rar
 

/*
Away From Keyboard System By .RäNÐoM.
2014.08.02.
*/
#define FILTERSCRIPT
#include <a_samp>
#include <zcmd>
#include <fixchars>
#define COLOR_RED 0xff0000FF
#define COLOR_GREEN 0x2bb33bFF
#define HP 200.0 //Max. Health
new str[128], Name[MAX_PLAYER_NAME], AFK[MAX_PLAYERS], Text3D:AFKLabel[MAX_PLAYERS];
new Float: X, Float: Y, Float: Z;
new Float:hp[MAX_PLAYERS];
public OnFilterScriptInit()
{
print(\"Away From Keyboard System By .RäNÐoM. - Loaded\");
return 1;
}
public OnFilterScriptExit()
{
print(\"Away From Keyboard System By .RäNÐoM. - UnLoaded\");
OnFilterScriptExit();
return 1;
}
CMD:afk(playerid)
{
if(AFK[playerid] == 0)
{
new Float:health;
hp[playerid] = GetPlayerHealth(playerid,health);
AFK[playerid] = 1;
GetPlayerPos(playerid,X,Y,Z);
GetPlayerName(playerid,Name,sizeof(Name));
SendClientMessage(playerid, COLOR_RED, \"AFK módba léptél! Visszatéréshez írd be megint a parancsot!\");
format(str,sizeof(str), \"%s AFK módba lépett...\",Name);
SendClientMessageToAll(COLOR_RED,str);
TogglePlayerControllable(playerid, 0);
AFKLabel[playerid] = Create3DTextLabel(\"Away From Keyboard\", COLOR_RED, X, Y, Z, 150.0, 0, 1);
}
else
{
AFK[playerid] = 0;
GetPlayerName(playerid,Name,sizeof(Name));
SendClientMessage(playerid, COLOR_GREEN, \"Visszatértél az AFK módból! Jó játékot!\");
format(str,sizeof(str), \"%s kilépett az AFK módból...\",Name);
SendClientMessageToAll(COLOR_GREEN,str);
TogglePlayerControllable(playerid, 1);
Delete3DTextLabel(AFKLabel[playerid]);
SetPlayerHealth(playerid, hp[playerid]);
}
return 1;
}
public OnPlayerGiveDamage(playerid, damagedid, Float:amount, weaponid, bodypart)
{
if(AFK[damagedid] == 1) if(damagedid != INVALID_PLAYER_ID && IsPlayerConnected(damagedid)) SetPlayerHealth(damagedid, HP), GameTextForPlayer(playerid,\"~r~Õ most AFK -ol! ~n~ ~r~ Ne sebezd meg!!\",1000,6);
return 1;
}
« Utoljára szerkesztve: 2014. Augusztus 02. - 19:06:21 írta .RäNÐoM. »

Away From Keyboard System
« Válasz #1 Dátum: 2014. Augusztus 02. - 13:38:32 »
+1
Ez mitõl rendszer? Ez csak egy parancs. Elmehetne simán code prefixben is.. Az OnFilterscript[…] részeket feleslegesnek tartom, de az OnPlayerGiveDamage-es megoldás tetszett. Ezért jár a keksz + :D
Vagy inkább - t adjak ez miatt:
 
de a nevem feltüntetése
kötelezõ!
[/quote]
? Most komolyan, ne viccelj már, egy ilyen parancsot bárki meg tud csinálni akár kezdõ (pl te) akár nem.. Ez nem egy világotmegváltó parancs, hogy ezt oda kellene írnod...
 
Peace
« Utoljára szerkesztve: 2014. Augusztus 02. - 13:43:55 írta Nukerdog »

Away From Keyboard System
« Válasz #2 Dátum: 2014. Augusztus 02. - 14:22:02 »
0
Hát azt sejtettem, hogy ez a parancs nem valami nagy világ megváltás  :D

Még tanulgatok, talán egyszer kirakok valami sokkal egyedibb scriptet is ..  :)


A + pedig köszönöm!

Away From Keyboard System
« Válasz #3 Dátum: 2014. Augusztus 02. - 14:30:36 »
0
vannak benne hibák, de nem lövöm le a poént.. gondolom egyedül tesztelted.

Away From Keyboard System
« Válasz #4 Dátum: 2014. Augusztus 02. - 14:34:38 »
0
gondolom egyedül tesztelted.
[/quote] Lelõtted. Amúgy a labelre gondolsz? :D

Away From Keyboard System
« Válasz #5 Dátum: 2014. Augusztus 02. - 16:30:58 »
0
Igen egyedül teszteltem  :D

Egyébként elárulhatjátok nyugodtan, végül is azért vagyok tanuló scripter, hogy tanuljak :)

Nem elérhető gbr333

  • 670
    • Profil megtekintése
Away From Keyboard System
« Válasz #6 Dátum: 2014. Augusztus 02. - 18:14:37 »
0
Tegyük fel , hogy van 20 HP-m és megtámadnak.
Gyorsan beírom a /afk parancsot és ezután meglõnek.
Beírom megint a /afk parancsot.
Voilá 200HP-m lett.
Javítása:
Ezt oda ahol a többi globális változó van:
[pawn]
new Float:hp[MAX_PLAYERS];
[/pawn]
Mikor elmegy AFKolni:
[pawn]
new Float:health;
hp[playerid] = GetPlayerHealth(playerid,health);
[/pawn]
Mikor visszajön:
[pawn]
SetPlayerHealth(playerid, hp[playerid]);
[/pawn]
« Utoljára szerkesztve: 2014. Augusztus 02. - 18:25:21 írta RoLuX »

Away From Keyboard System
« Válasz #7 Dátum: 2014. Augusztus 02. - 18:45:17 »
0
RoLuX köszönöm a segítséget és a magyarázatot is  :D

Az FS-t kiegészítettem!

Nem elérhető Flash

  • 5726
  • (っ◕‿◕)っ
    • Profil megtekintése
Away From Keyboard System
« Válasz #8 Dátum: 2014. Augusztus 02. - 18:50:19 »
0
1. Ez nem rendszer.
2. az if(IsPlayerConnected(playerid)) féle lekérdezés felesleges, ugyanis ha a játékos nem aktív eleve hogy használja ezt a parancsot?
3. Ezt a változót Text3D:AFKLabel; playerekre kéne kötni, azaz: Text3D:AFKLabel[MAX_PLAYERS]; a többi helynél a MAX_PLAYERS helyett playerid-t írj.
4. Ezt a kódot:
 
#define FILTERSCRIPT
#if defined FILTERSCRIPT
#endif
[/quote]
Cseréld ki erre:
[pawn]#define FILTERSCRIPT[/pawn]
és tedd az a_samp inc felé, szóval ez legyen az elsõ sorban.
5. felesleges a Float típusú változók és a játékos pozíciójának létrehozása/lekérdezése. Ez alapján csináld: http://wiki.sa-mp.com/wiki/Attach3DTextLabelToPlayer
6. Ennél a lekérdezésnél:
 
else if(AFK[playerid] == 1)[/quote]
Elég csak ennyit írni:
[pawn]else[/pawn]
És az utolsó észrevételem:
  • Az OnPlayerGiveDamage résznél SendClientMessage helyett inkább GameTextForPlayer-t alkalmaznék, mert így tele floodólja lövés esetén a játékosnak a chat-ét a hibaüzenettel.

Nem elérhető Beckham

  • 1693
  • Noresz
  • Discord: Noresz#4265
    • Profil megtekintése
    • OctansV Alt:v szervere
Away From Keyboard System
« Válasz #9 Dátum: 2014. Augusztus 02. - 21:35:24 »
0
Ha én csináltam volna akkor megspórolom azt hogy visszatöltsd a játékos HP-ját amikor sebezik,mégpedig hogy másik vw-be rakom,és lefagyasztom.

Away From Keyboard System
« Válasz #10 Dátum: 2014. November 11. - 10:04:23 »
0
Szerintem jó kis script lett ha kezdő vagy.

Away From Keyboard System
« Válasz #11 Dátum: 2014. November 11. - 13:27:18 »
0
Igen, amikor ezt készítettem, akkor kezdő voltam :P :D Köszi

Away From Keyboard System
« Válasz #12 Dátum: 2014. November 11. - 13:35:32 »
0
Idézetet írta: MichaelTMorales date=1415696663\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"49802\" data-ipsquote-contentclass=\"forums_Topic
Szerintem jó kis script lett ha kezdő vagy.
 
És mi van ha nem?  :D

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal