-
GM elejen:
new deaths[MAX_PLAYERS];
new kills[MAX_PLAYERS];
public OnPlayerDeath(playerid, killerid, reason)
{
deaths[playerid]++;
kills[killerid]++;
Ez mar mashol van:
new tstring[256];
format(tstring,256,\"Olesek szama: %d - Halalok szama: %d\",kills[playerid],deaths[playerid]);
TextDrawSetString(kd,tstring);
Ha torlom a \"playerid\"-t akkor nem ir hibat viszont mindenkinek kiirja az Olesek és Halalok szamat.
HELP!!
-
Az utolsó rész milyen public alatt van?
-
public PontFrissito()
{
-
A teljes eljárást bemásolnád? (PontFrissito)
-
public PontFrissito()
{
Nincs bnne (playerid). Ehhez nem értek 100%-osan az a baj. Ez egy timerhöz van rendelve?
-
Igen Timerhez van.
Igy nez ki most.
public PontFrissito()
{
new tstring[256];
format(tstring,256,\"Olesek szama: %d - Halalok szama: %d\",kills,deaths);
TextDrawSetString(kd,tstring);
}
-
Próbáld így:
E: Jaj nemjó.
Bemásolnád a textdraw készítését?
-
De jo. :D De bolond vagyok erre nem is gondoltam. Koszonom! :thumbsup:
-
[mod]Téma kérésre megnyitva.[/mod]
-
Kiprobaltam igy:
public PontFrissito(playerid)
{
new tstring[256];
format(tstring,256,\"Olesek szama: %d - Halalok szama: %d\",kills[playerid],deaths[playerid]);
TextDrawSetString(kd,tstring);
}
Mukodik is, csak az baj hogy mindenkinek kiirja. Szoval ha engem megolnek egyszer akkor azt masnal is szamolja. (Nem egyeni a dolog)
Azt hogy lehet megcsinalni?
-
írtam pm-ben, ha elkulted megcsinalom.
E: Úgy látom kiléptél, leírom, hogy mit csinálj majd.
Tehát van ugye a new része a textdrawnok, ezt írd át ilyenre:
new Text:textdrawnév[MAX_PLAYERS];
Majd van az OnGameModeInit alatt az a rész, ahol létrehoztad és beállítotad a textdrawot, itt írd át ilyenre:
for(new i; i < GetMaxPlayers(); i++)
{
textdrawnév = TextDrawCreate(koordináta1, koordináta2, \" \"); //fontos, hogy a szöveg így legyen!
SetTimerEx(\"PontFrissito\", 1000, true, \"i\", i);
TextDrawFont(textdrawnév, 3);
TextDrawColor(textdrawnév, 0xFFFFFFFF);
//stb.
}
És végül van ugye a frissítés:
forward PontFrissito(playerid);
public PontFrissito(playerid)
{
new tstring[256];
format(tstring,256,\"Olesek szama: %d - Halalok szama: %d\",kills[playerid],deaths[playerid]);
TextDrawSetString(textdrawnév,tstring);
}
Remélem érthetõ.
-
Na beraktam nem ir errort mukodik is. De most csak en latom. ID 0 voltam foljottek segiteni tesztelni ID 1 nem latott semmit.
gm elejen:
new Text:kd[MAX_PLAYERS];
OnGamemodinit:
for( new i = 0; i < MAX_PLAYERS; i ++ )
{
kd = TextDrawCreate(20.000000, 321.000000, \"\");
TextDrawBackgroundColor(kd, 255);
TextDrawFont(kd, 1);
TextDrawLetterSize(kd, 0.500000, 1.000000);
TextDrawColor(kd, -1);
TextDrawSetOutline(kd, 0);
TextDrawSetProportional(kd, 1);
TextDrawSetShadow(kd, 1);
OnPlayerConnect:
TextDrawShowForPlayer(playerid,Text:kd[playerid]);
PontFrissito:
new tstring[256];
format(tstring,256,\"Olesek szama: %d - Halalok szama: %d\",kills[playerid],deaths[playerid]);
TextDrawSetString(kd[playerid],tstring);
SZERK:
Most nezem hogy kihagytam a \"SetTimerEx(\"PontFrissito\", 1000, true, \"i\", i);\" ez lehet a baj? Bar ettol fuggetlenul is frissitette.
-
TextDrawShowForPlayer(playerid, kd[playerid]);
Így írd.
E: És igen a frissítést is írd át!!!
-
Koszonom mukodik!
Mar csak egy kerdesem lenne ezzel az aranyt meglehet valahogy csinalni? Mert probalkozok vele, de meg az se jelenik meg ami eddig.
new tdstring[5];
new Float:arany = kills[playerid]/deaths[playerid];
format( tdstring, sizeof( tdstring ),\"Olesek szama: %d - Halalok szama: %d - Arany: %f\",kills[playerid],deaths[playerid],arany);
TextDrawSetString(kd[playerid],tdstring);
-
Persze. :)
new Float:arany=floatdiv(kills[playerid],deaths[playerid]);
És a floathoz ezt írd inkább:
%.2f
OFF: