Helló! Arról lenne szó hogy megcsináltam hogy mérje mennyi idõt volt a játékos AFK-ben, evvel nincs is semmi gond csak azt szeretném megcsinálni hogy írja a feje fölött vagyis hogy számolja. Megpróbáltam 3D textel de úgy nem mûködött így maradtam a ChatBubblel-nál de ez se jó valakinek van valamit ötlete ?
Így alkalmaztam.
forward SAFK(playerid);
public SAFK(playerid)
{
new Hstring[256];
format(Hstring, sizeof(Hstring), \"AFK-ben: %02i óra,%02i perc,%02i másodperc\",d[playerid][2],d[playerid][1],d[playerid][0]);
SetPlayerChatBubble(playerid, Hstring, 0x00ff00AA, 100.0, 10000);
return 1;
}
nem teszteltem..
#include a_samp
#include zcmd
new afktimer[MAX_PLAYERS];
new Text3D:afktext[MAX_PLAYERS];
new d[MAX_PLAYERS][3];
CMD:afk(playerid)
{
if(GetPVarInt(playerid,\"AFKON\") == 0)
{
new Float:X,Float:Y,Float:Z;
GetPlayerPos(playerid,X,Y,Z);
SetPVarInt(playerid,\"AFKON\",1);
SendClientMessage(playerid,-1,\"AFK-ba léptél!\");
afktext[playerid] = Create3DTextLabel(\"AFK: 0 órája 0 perce \\n0 másodperce\",0x51e026AA,X,Y,Z,20.0,0);
afktimer[playerid] = SetTimerEx(\"SAFK\",1000,1,\"i\",playerid);
}
else
{
SetPVarInt(playerid,\"AFKON\",0);
SendClientMessage(playerid,-1,\"Az AFK-ból kiléptél!\");
KillTimer(afktimer[playerid]);
d[playerid][0] = 0;
d[playerid][1] = 0;
d[playerid][2] = 0;
}
}
forward SAFK(playerid);
public SAFK(playerid)
{
new string[128];
if(d[playerid][2] == 60)
{
d[playerid][2] = 0;
d[playerid][1]++;
}
if(d[playerid][1] == 60)
{
d[playerid][1] = 0;
d[playerid][0]++;
}
format(string,sizeof(string),\"AFK: %02i órája %02i perce\\n%02i másodperce\",d[playerid][2],d[playerid][1],d[playerid][0]);
Update3DTextLabelText(afktext[playerid],0x51e026AA,string);
return 1;
}
Van más baja? Szerintem az a gondja, hogy létrehozza, és ott marad. Szóval megy a számláló közben?
A játékoshoz hozzákell ragasztani a 3D szöveget.
Attach3DTextLabelToPlayer(afktext[playerid], playerid, 0.0, 0.0, 0.7);