-
Sziasztok!
Az ilyenekbe hogyan tudnám beleírni pl.: hogy hány játékos online és hogy ki csatlakozott utoljára?
new Reklamok[][]=
{
\"~g~Online játékosok XY/30\",
\"~y~Utoljára csatlakozott játékos: XY\"
};
-
értem, máképp kell csinálni ha találok egy leírást linkelem mert láttam már csak meg keresem neked..
-
new connectername[MAX_PLAYER_NAME], str[128];
Ha egy játékos belép
GetPlayerName(playerid, connectername, sizeof(connectername));
Itt a két format:
format(str, sizeof(str), \"Utoljára csatlakozott játékos:%s\", connectername);
format(str, sizeof(str), \"Online játékosok %d/30\", GetOnlinePlayers());
Ezt tedd a script aljára:
stock GetOnlinePlayer() {
new players;
for(new i; i <= MAX_PLAYERS; i++) {
if(IsPlayerConnected(i)) {
players++;
}
}
return players;
}
csinalj egy timert (20-30 masodpercest) rakd ezt ala:
new rand = random(1);
if(rand == 1) {
format(str, sizeof(str), \"Utoljára csatlakozott játékos:%s\", connectername);
SendClientMessageToAll(2, str);
} else if(rand == 0) {
format(str, sizeof(str), \"Online játékosok %d/30\", GetOnlinePlayers());
SendClientMessageToAll(2, str);
}
-
#include <a_samp>
new online;
new Reklam[2][64] =
{
\"~g~Online játékosok XY/30\",
\"~y~Utoljára csatlakozott játékos: XY\"
};
public OnPlayerConnect(playerid)
{
online++;
new pname[MAX_PLAYER_NAME]; GetPlayerName(playerid,pname,MAX_PLAYER_NAME);
format(Reklam[0],sizeof(Reklam[]),\"~g~Online játékosok: %d/%d\",online,GetMaxPlayers());
format(Reklam[1],sizeof(Reklam[]),\"~y~Utoljára csatlakozott: %s\",pname);
return 1;
}
public OnPlayerDisconnect(playerid)
{
online--;
return 1;
}
-
Nem jó! A textdraw megakad!
Most engem az érdekelne hogyan lehetne az XY-t helyettesíteni %s -re.
Itt a teljes reklám:
new Reklamok[][]=
{
\"~g~Online játékosok XY/30\",
\"~y~Utoljára csatlakozott játékos: XY\"
};
Textdraw6 = TextDrawCreate(2,436,\"Betöltés...\");
TextDrawFont(Textdraw6, 1);
TextDrawAlignment(Textdraw6, 1);
TextDrawSetOutline(Textdraw6, 1);
TextDrawColor(ShadowsRandom, -1);
TextDrawBackgroundColor(Textdraw6, 255);
TextDrawLetterSize(Textdraw6, 0.38, 0.99);
TextDrawUseBox(Textdraw6,1);
TextDrawBoxColor(Textdraw6,0x00000033);
TextDrawTextSize(Textdraw6,5000,5000);
SetTimer(\"randReklam\", 10000, true);
public randReklam()
{
TextDrawSetString(Textdraw6,Reklamok[random(sizeof(Reklamok))]);
return 1;
}
-
Az enyémet próbáltad?
-
Mindegyiket próbáltam.
-
filterscriptben vagy gamemodeban próbáltad?
mert találtam egy érdekes dolgot amivel eddig nem találkoztam...
#include <a_samp>
public OnFilterScriptInit()
{
SetTimer(\"Teszt\",1000,true);
return 1;
}
forward Teszt();
public Teszt()
{
print(\"Runned\");
return ;
}
ezt a scriptet betöltöttem loadfs-el a szerverablakban és nem írta a Runned szövegeket...
beleírtam server.cfg-be hogy töltse be...akkor viszont írta...
szóval ha scripttel próbálkozol akkor server.cfg-ben töltsd be...
#include <a_samp>
new online,timer,Text:Textdraw6;//,cadv; // online játékosok, idõzítõ, textdraw, mostani reklám
new Reklam[2][64] =
{
\"~g~Online játékosok XY/30\",
\"~y~Utoljára csatlakozott játékos: XY\"
};
public OnFilterScriptInit()
{
timer = SetTimer(\"UpdateReklam\",2000,true);
//
Textdraw6 = TextDrawCreate(2,436,\"Betöltés...\");
TextDrawFont(Textdraw6, 1);
TextDrawAlignment(Textdraw6, 1);
TextDrawSetOutline(Textdraw6, 1);
//TextDrawColor(ShadowsRandom, -1); // ez nem tudom mit keres itt
TextDrawBackgroundColor(Textdraw6, 255);
TextDrawLetterSize(Textdraw6, 0.38, 0.99);
TextDrawUseBox(Textdraw6,1);
TextDrawBoxColor(Textdraw6,0x00000033);
//for(new p; p < GetMaxPlayers(); p++) { if(IsPlayerConnected(p)) { online++; TextDrawShowForPlayer(p,Textdraw6); } }
return 1;
}
public OnFilterScriptExit()
{
KillTimer(timer);
TextDrawDestroy(Textdraw6);
return 1;
}
public OnPlayerConnect(playerid)
{
online++;
new pname[MAX_PLAYER_NAME]; GetPlayerName(playerid,pname,MAX_PLAYER_NAME);
format(Reklam[0],sizeof(Reklam[]),\"~g~Online játékosok: %d/%d\",online,GetMaxPlayers());
format(Reklam[1],sizeof(Reklam[]),\"~y~Utoljára csatlakozott: %s\",pname);
TextDrawShowForPlayer(playerid,Textdraw6);
return 1;
}
public OnPlayerDisconnect(playerid)
{
online--;
return 1;
}
forward UpdateReklam();
public UpdateReklam()
{
//cadv++; if(cadv == sizeof(cadv)) { cadv = 0; }
//TextDrawSetString(Textdraw6,Reklam[cadv]);
TextDrawSetString(Textdraw6,Reklam[random(sizeof(Reklam))]);
return 1;
}
nálam ez a kód mûködik ( azt az includeot töltsd be amivel az ékezetes karaktereket fixálja mert így nem látszanak az ékezetes karakterek )
ha nem randomot szeretnél akkor a cadv-os részek elõl szedd ki a //-t és a randomost kommentezd ki...a cadv az végig megy a reklámokon...mondjuk itt csak 2 van de ha késõbb több lenne akkor azokon is végig menne...
-
Ez most már mûködik köszi!
Még anyit kérdeznék ha lehívok egy jármûvet akkor mér tûnik el a textdraw?
-
nem tudom...nálam nem tûnik el...lehet a jármû spawnnál vagy beszállásnál van valami kódod ami eltünteti...
-
De még a jármû respawnál is eltüník :S