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: .random. - 2014. Augusztus 02. - 13:23:50

Cím: Away From Keyboard System
Írta: .random. - 2014. Augusztus 02. - 13:23:50
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;
}
Cím: Away From Keyboard System
Írta: blackdog476 - 2014. Augusztus 02. - 13:38:32
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
Cím: Away From Keyboard System
Írta: .random. - 2014. Augusztus 02. - 14:22:02
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!
Cím: Away From Keyboard System
Írta: TengeriMalac - 2014. Augusztus 02. - 14:30:36
vannak benne hibák, de nem lövöm le a poént.. gondolom egyedül tesztelted.
Cím: Away From Keyboard System
Írta: blackdog476 - 2014. Augusztus 02. - 14:34:38
gondolom egyedül tesztelted.
[/quote] Lelõtted. Amúgy a labelre gondolsz? :D
Cím: Away From Keyboard System
Írta: .random. - 2014. Augusztus 02. - 16:30:58
Igen egyedül teszteltem  :D

Egyébként elárulhatjátok nyugodtan, végül is azért vagyok tanuló scripter, hogy tanuljak :)
Cím: Away From Keyboard System
Írta: gbr333 - 2014. Augusztus 02. - 18:14:37
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]
Cím: Away From Keyboard System
Írta: .random. - 2014. Augusztus 02. - 18:45:17
RoLuX köszönöm a segítséget és a magyarázatot is  :D

Az FS-t kiegészítettem!
Cím: Away From Keyboard System
Írta: Flash - 2014. Augusztus 02. - 18:50:19
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.
Cím: Away From Keyboard System
Írta: Beckham - 2014. Augusztus 02. - 21:35:24
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.
Cím: Away From Keyboard System
Írta: MichaelTMorales - 2014. November 11. - 10:04:23
Szerintem jó kis script lett ha kezdő vagy.
Cím: Away From Keyboard System
Írta: .random. - 2014. November 11. - 13:27:18
Igen, amikor ezt készítettem, akkor kezdő voltam :P :D Köszi
Cím: Away From Keyboard System
Írta: citromhun - 2014. November 11. - 13:35:32
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