-
Sziasztok azt szeretném megkérdezni hogy lehet /stats parancsot készíteni. Vagyis hogy valaki beírja hogy /stats és oda kiírja az adatait.
Elõre is köszi!
-
Helló! Ha beirod a /stats parancsot akkor ezek játszódnak le:
PL: Név lekérése
készitesssz egy: new neve[MAX_PLAYER_NAME];
készitess egy kijelzést is: new kijelzes[256];
utána létrehozod hogy lekérje a nevét: GetPlayerName(playerid, neve, sizeof(neve));
ez határozza meg a nevét: format(kijelzes, sizeof(kijelzes), \"Neved: %s\", neve);
és végül az ami elküldi a gyereknek: SendClientMessage(playerid, szin, format);
és lezárjuk: return 1;
és végül igy néz ki:
if (strcmp(\"/stats\", cmdtext, true, 10) == 0)
{
new neve[MAX_PLAYER_NAME];
new kijelzes[256];
GetPlayerName(playerid, neve, sizeof(neve));
format(kijelzes, sizeof(kijelzes), \"Neved: %s\", neve);
SendClientMessage(playerid, szin, format);
return 1;
}
Ha mindent jól csináltam akkor mûködik! A többivel is ugyan igy kell, persze van amelyknél nehezebb! Ha nem mûküdik akkor szolj! Üdv: Zalakaka45
Dupla hozzászólás automatikusan összefûzve. ( 2013. augusztus 17. - 18:00:43 )
Szerintem nem is annyira nehéz :)
Csak annyi hogy készítesz/letöltesz egy stats parancsot, aztán azt megcsinálod úgy hogy elmentse dinibe.
??? Hogy a parancsot elmentse dinibe? A gyerek azt kérte hogyha egy gyerek beirja /stats akkor kiirja az adatait... Figyelj máskor oda...
-
Kössz mndenkinek kipróbálom.
Dupla hozzászólás automatikusan összefûzve. ( 2013. augusztus 17. - 19:01:53 )
Akkor ezt most Gamemode-ba kell vagy nyissak egy új Filterscriptet?
-
Kössz mndenkinek kipróbálom.
Dupla hozzászólás automatikusan összefûzve. ( 2013. augusztus 17. - 19:01:53 )
Akkor ezt most Gamemode-ba kell vagy nyissak egy új Filterscriptet?
Ezt a GameMode ba illeszt be, keress rá hogy: OnPlayerCommandText
Utána ott van a többi parancs is, és pl vna hogy OnPlayerCOmmandText... { és akk ennek a jel után berakhatod, de vigyázz hogy a következõ parancsal ne keveredjen!
Dupla hozzászólás automatikusan összefûzve. ( 2013. augusztus 17. - 19:09:26 )
Szolj ha megvan, és mûködik.
Dupla hozzászólás automatikusan összefûzve. ( 2013. augusztus 17. - 19:14:53 )
Nah?
-
D:\\gta san andreas\\myszerver\\gamemodes\\gyakorlás.pwn(83) : error 076: syntax error in the expression, or invalid function call
Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase
1 Error.
SendClientMessage(playerid, zold, format); Ez a 83-as sor.
-
D:\\gta san andreas\\myszerver\\gamemodes\\gyakorlás.pwn(83) : error 076: syntax error in the expression, or invalid function call
Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase
1 Error.
SendClientMessage(playerid, zold, format); Ez a 83-as sor.
Azt a SendClientMessage-t cseréld ki erre:
SendClientMessage(playerid, zold, kijelzes);
-
Kössz a Segítésget sikerült. Még annyit kérdeznékhogy lehet az idõt beállítani mert nekem csak annyit ír ki hogy \"Szerveren eltöltött idõ 1\" Ez miért lehet?
-
Kössz a Segítésget sikerült. Még annyit kérdeznékhogy lehet az idõt beállítani mert nekem csak annyit ír ki hogy \"Szerveren eltöltött idõ 1\" Ez miért lehet?
Hú, ez nekem kicsit magas, viszont úgy gondolom meglehetne csinálni hogy dinivel létrehozol egy valamit hogy pl a neve legyen Ido: és akkor oda folyamatosan mentené az összes percet amit játszott és utána lekéreted vele hogy mennyit játszott. De ezt szerintem nyisd külön témába. Nem akarok kéregetni de az elõzõ segitségemér kaphatok 1 +? Van ott hogy felfele meg lefele mutat az ujjával, és nyom meg a felfele.
-
Játszott idõ mérése:
1. :
Connectnél indíts egy egy másodperces timert, a játszott másodperceihez mindig adj hozzá egyet.
Ha eléri a játszott MP a 60-at akkor nullázod, és hozzáadsz egyet a játszott percekhez.
Ha a játszott perc 60, akkor lenullázod és az óra + 1.
Ezt mentheted akár óraugrásnál, akor disconnectnél, aminél akarod.
2. :
Connectnél leméred mikor csatlakozott, disconnectnél pedig az akkori idõbõl kivonod a connect idõt.
Megkapod hogy mennyit játszott.
/stats-nál meg egyszerûen kiiratod. (%02d:%02d:%02d - Óra, Perc, M.Perc)
-
Fl0rian
Ezt kifejtenéd bõvebben? Addig megvan hogy csináltam 1 Timert és mindig hozzáad 1-et de utána megakadtam.
-
Tessék:
d[playerid][0] = másodperc
d[playerid][1] = perc
d[playerid][2] = óra
new d[MAX_PLAYERS][3];
public OnPlayerConnect(playerid)
{
EltoltottIdo[playerid] = SetTimerEx(\"Szamlalo\",1000,1,\"i\",playerid);
SetTimerEx(\"Kiiras\",randomEx(350000,600000),1,\"i\",playerid);
}
public Szamlalo(playerid)
{
d[playerid][0]++;
if(d[playerid][0] == 60)
{
d[playerid][0] = 0;
d[playerid][1]++;
}
if(d[playerid][1] == 60)
{
d[playerid][0] = 0;
d[playerid][1] = 0;
d[playerid][2]++;
}
return 1;
}
public Kiiras(playerid)
{
new string[256];
format(string,sizeof(string),\"A Szerveren eltöltött idõd: %02i óra,%02i perc,%02i másodperc\",d[playerid][2],d[playerid][1],d[playerid][0]);
SendClientMessage(playerid,-1,string);
return 1;
}
stock randomEx(min, max)
{
//Credits to y_less
new rand = random(max-min)+min;
return rand;
}
-
D:\\gta san andreas\\myszerver\\gamemodes\\gyakorlás.pwn(58) : error 017: undefined symbol \"EltoltottIdo\"
D:\\gta san andreas\\myszerver\\gamemodes\\gyakorlás.pwn(58) : warning 215: expression has no effect
D:\\gta san andreas\\myszerver\\gamemodes\\gyakorlás.pwn(58) : error 001: expected token: \";\", but found \"]\"
D:\\gta san andreas\\myszerver\\gamemodes\\gyakorlás.pwn(58) : error 029: invalid expression, assumed zero
D:\\gta san andreas\\myszerver\\gamemodes\\gyakorlás.pwn(58) : fatal error 107: too many error messages on one line
Compilation aborted.Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase
4 Errors.
Ezt írja ki.
-
new EltoltottIdo[MAX_PLAYERS];
-
Hopp a kill timeres részt is kihagytam :whistle:
Na fullosan így néz ki:
new d[MAX_PLAYERS][3];
new EltoltottIdo[MAX_PLAYERS];
public OnPlayerConnect(playerid)
{
EltoltottIdo[playerid] = SetTimerEx(\"Szamlalo\",1000,1,\"i\",playerid);
SetTimerEx(\"Kiiras\",randomEx(350000,600000),1,\"i\",playerid);
}
public OnPlayerDisconnect(playerid)
{
KillTimer(EltoltottIdo[playerid]);
}
public Szamlalo(playerid)
{
d[playerid][0]++;
if(d[playerid][0] == 60)
{
d[playerid][0] = 0;
d[playerid][1]++;
}
if(d[playerid][1] == 60)
{
d[playerid][0] = 0;
d[playerid][1] = 0;
d[playerid][2]++;
}
return 1;
}
public Kiiras(playerid)
{
new string[256];
format(string,sizeof(string),\"A Szerveren eltöltött idõd: %02i óra,%02i perc,%02i másodperc\",d[playerid][2],d[playerid][1],d[playerid][0]);
SendClientMessage(playerid,-1,string);
return 1;
}
stock randomEx(min, max)
{
//Credits to y_less
new rand = random(max-min)+min;
return rand;
}
-
C:\\Program Files\\Rockstar Games\\gamemodes\\saját.pwn(63) : warning 235: public function lacks forward declaration (symbol \"Szamlalo\")
C:\\Program Files\\Rockstar Games\\gamemodes\\saját.pwn(80) : warning 235: public function lacks forward declaration (symbol \"Kiiras\")
Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase
2 Warnings.
Most Ezt írja.
-
..... meleg van bocsi.
new d[MAX_PLAYERS][3];
new EltoltottIdo[MAX_PLAYERS];
forward Szamlalo(playerid);
forward Kiiras(playerid);
public OnPlayerConnect(playerid)
{
EltoltottIdo[playerid] = SetTimerEx(\"Szamlalo\",1000,1,\"i\",playerid);
SetTimerEx(\"Kiiras\",randomEx(350000,600000),1,\"i\",playerid);
}
public OnPlayerDisconnect(playerid)
{
KillTimer(EltoltottIdo[playerid]);
}
public Szamlalo(playerid)
{
d[playerid][0]++;
if(d[playerid][0] == 60)
{
d[playerid][0] = 0;
d[playerid][1]++;
}
if(d[playerid][1] == 60)
{
d[playerid][0] = 0;
d[playerid][1] = 0;
d[playerid][2]++;
}
return 1;
}
public Kiiras(playerid)
{
new string[256];
format(string,sizeof(string),\"A Szerveren eltöltött idõd: %02i óra,%02i perc,%02i másodperc\",d[playerid][2],d[playerid][1],d[playerid][0]);
SendClientMessage(playerid,-1,string);
return 1;
}
stock randomEx(min, max)
{
//Credits to y_less
new rand = random(max-min)+min;
return rand;
}
-
Kössz a segítséget sikerült megy a + ;)
[mod]Megkérnék minden kedves témanyitót, ha kérdésére/kérésére választ kapott, akkor legyen szíves használni, a \"Téma megoldva\" funkciót![/mod]