/*
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;
}
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_TopicSzerintem jó kis script lett ha kezdő vagy.És mi van ha nem? :D