Guten Morgen,
Ich arbeite zurzeit an einem Freeroam Script
Und habe unten ein Textdraw erstellt und dort steht also /dm /cod usw....
Wie kann ich machen das dort steht wieviel User Grade drine sind?
Danke im Vorraus
Mit Freundlichen Grüßen
Guten Morgen,
Ich arbeite zurzeit an einem Freeroam Script
Und habe unten ein Textdraw erstellt und dort steht also /dm /cod usw....
Wie kann ich machen das dort steht wieviel User Grade drine sind?
Danke im Vorraus
Mit Freundlichen Grüßen
new var;
public OnPlayerConnect(playerid)
{
var ++;
new string[64];
new players = var;
format(string,sizeof(string),"Spieler: %d",players);
TextDrawSetString(deintextdraw,string);
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
var --;
new string[64];
new players = var;
format(string,sizeof(string),"Spieler: %d",players);
TextDrawSetString(deintextdraw,string);
return 1;
}
Dürfte so funktioniereren ungetestet.
MfG
mach ne i schleife und schreib unten hin:
User die Online sind: %d das %d verwendest du in nen Format und packst das i nur darein
Alles anzeigenpublic OnPlayerConnect(playerid)
{
var ++;
new string[64];
new players = var;
format(string,sizeof(string),"Spieler: %d",players);
TextDrawSetString(deintextdraw,string);
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
var --;
new string[64];
new players = var;
format(string,sizeof(string),"Spieler: %d",players);
TextDrawSetString(deintextdraw,string);
return 1;
}
Also ich habe Nur ein einziges Textdraw -
Server = TextDrawCreate(1.000000,438.000000, "~w~/Cod /Fallout /Dm /Mini /Stunt /Sniper /Deagle /M4 /Help");
TextDrawAlignment(Server,0);
TextDrawBackgroundColor(Server,0x000000ff);
TextDrawFont(Server,3);
TextDrawUseBox(Server, 1);
TextDrawBoxColor(Server, 84215240);
TextDrawLetterSize(Server,0.400000,0.888880);
TextDrawColor(Server, 0xffffffff);
TextDrawSetOutline(Server,1);
TextDrawSetProportional(Server,1);
TextDrawSetShadow(Server,1);
/Cod = 0 /Fallout = 0 /Dm = 0 /Mini = 0 /Stunt = 0 /Sniper = 0 /Deagle = 0 /M4 = 0
Legende
= 0 - User
Achso, wieviele da grad drinnen sind. Ich dachte wie viele User gesamt auf dem Server sind, sorry.
dann machst du einfach bei dem Befehl, /cod z.B. die Funktion.
Ganz oben wieder definieren:
new codvar;
dann die Commands:
if (strcmp("/cod", cmdtext, true, 10) == 0)
{
codvar ++;
new string[156];
new players = codvar;
format(string,sizeof(string),"~w~/Cod - %d /Fallout - 0 /Dm - 0 /Mini - 0 /Stunt - 0 /Sniper - 0 /Deagle - 0 /M4 - 0 /Help",players);
TextDrawSetString(Server,string);
return 1;
}
if (strcmp("/codexit", cmdtext, true, 10) == 0)
{
codvar --;
new string[156];
new players = codvar;
format(string,sizeof(string),"~w~/Cod - %d /Fallout - 0 /Dm - 0 /Mini - 0 /Stunt - 0 /Sniper - 0 /Deagle - 0 /M4 - 0 /Help",players);
TextDrawSetString(Server,string);
return 1;
}
Dann halt für jeden Befehl eine "var" definieren und bei dem Befehl einbauen, dass die Var +1 wird "++" und danach den TextDraw mit dem String updaten.
MfG
Alles anzeigenif (strcmp("/cod", cmdtext, true, 10) == 0)
{
codvar ++;
new string[156];
new players = codvar;
format(string,sizeof(string),"~w~/Cod - %d /Fallout - 0 /Dm - 0 /Mini - 0 /Stunt - 0 /Sniper - 0 /Deagle - 0 /M4 - 0 /Help",players);
TextDrawSetString(Server,string);
return 1;
}
if (strcmp("/codexit", cmdtext, true, 10) == 0)
{
codvar --;
new string[156];
new players = codvar;
format(string,sizeof(string),"~w~/Cod - %d /Fallout - 0 /Dm - 0 /Mini - 0 /Stunt - 0 /Sniper - 0 /Deagle - 0 /M4 - 0 /Help",players);
TextDrawSetString(Server,string);
return 1;
}
Bei mir Kommt man nur mit /leave raus
Mom hier:
ocmd:leave(playerid,params[])
{
if(Map[playerid] == 1)
{
Map[playerid] =0;
dm[playerid] =0;
Mini[playerid] = 0;
Deagle[playerid] = 0;
Fallout[playerid] = 0;
Sniper[playerid] = 0;
//Panzer[playerid] = 0;
SendClientMessage(playerid,grün,"Map erfolgreich verlassen");
SpawnPlayer(playerid);
SetPlayerVirtualWorld(playerid,0);
}
else if(Map[playerid] ==0)
{
SendClientMessage(playerid,orange,"**Du bist auf der Spawn Map");
}
return 1;
}
if(strcmp("/cod", cmdtext,true, 10) == 0)
{
if(Map[playerid] ==0)
{
new string[128];
new rand = random(sizeof(CodSpawn));
SetPlayerPos(playerid, CodSpawn[rand][0],CodSpawn[rand][1],CodSpawn[rand][2]);
SetPlayerFacingAngle(playerid, RandomSpawn2[rand][3]);
format(string, 256, "%s portet sich nach /cod.", PlayerName(playerid));
SendClientMessageToAll(grün,string);
ResetPlayerWeapons(playerid);
GivePlayerWeapon(playerid,24,500);
GivePlayerWeapon(playerid,31,700);
GivePlayerWeapon(playerid,10,1);
SetPlayerHealth(playerid,100);
SetPlayerArmour(playerid,50);
SetPlayerAmmo(playerid,38,0);
SetPlayerInterior(playerid,0);
Map[playerid] = 1;
//Cod[playerid] = 1;
}
else if(Map[playerid] ==1)
{
SendClientMessage(playerid,orange,"Du bist auf einer map Tippe /leave um sie zu verlassen");
}
return 1;
}
So ist es bei mir
Wo ist da jetzt das Problem die kleinen Funktionen einzubauen?
ocmd:leave(playerid,params[])
{
codvar --;
new string[156];
new players = codvar;
if(Map[playerid] == 1)
{
Map[playerid] =0;
dm[playerid] =0;
Mini[playerid] = 0;
Deagle[playerid] = 0;
Fallout[playerid] = 0;
Sniper[playerid] = 0;
//Panzer[playerid] = 0;
SendClientMessage(playerid,grün,"Map erfolgreich verlassen");
SpawnPlayer(playerid);
SetPlayerVirtualWorld(playerid,0);
format(string,sizeof(string),"~w~/Cod - %d /Fallout - 0 /Dm - 0 /Mini - 0 /Stunt - 0 /Sniper - 0 /Deagle - 0 /M4 - 0 /Help",players);
TextDrawSetString(Server,string);
}
else if(Map[playerid] ==0)
{
SendClientMessage(playerid,orange,"**Du bist auf der Spawn Map");
}
return 1;
}
if(strcmp("/cod", cmdtext,true, 10) == 0)
{
if(Map[playerid] ==0)
{
codvar ++;
new string[128];
new stringx[156];
new players = codvar;
new rand = random(sizeof(CodSpawn));
SetPlayerPos(playerid, CodSpawn[rand][0],CodSpawn[rand][1],CodSpawn[rand][2]);
SetPlayerFacingAngle(playerid, RandomSpawn2[rand][3]);
format(string, 256, "%s portet sich nach /cod.", PlayerName(playerid));
SendClientMessageToAll(grün,string);
ResetPlayerWeapons(playerid);
GivePlayerWeapon(playerid,24,500);
GivePlayerWeapon(playerid,31,700);
GivePlayerWeapon(playerid,10,1);
SetPlayerHealth(playerid,100);
SetPlayerArmour(playerid,50);
SetPlayerAmmo(playerid,38,0);
SetPlayerInterior(playerid,0);
Map[playerid] = 1;
//Cod[playerid] = 1;
format(stringx,sizeof(stringx),"~w~/Cod - %d /Fallout - 0 /Dm - 0 /Mini - 0 /Stunt - 0 /Sniper - 0 /Deagle - 0 /M4 - 0 /Help",players);
TextDrawSetString(Server,stringx);
}
else if(Map[playerid] ==1)
{
SendClientMessage(playerid,orange,"Du bist auf einer map Tippe /leave um sie zu verlassen");
}
return 1;
}
Dürfte so gehen.
das bugt wen jemand betrette kommt da eins Minnus wen jemand es verlässt kommt da ein Plus also von 1 auf 0 oder 0 auf 1
Dürfte gar nicht möglich sein, da die Variablen sich so ändern, wenn man es betritt, + , wenn man es verlässt, -.
MfG
mach doch ein Timer und dann aktualisierst es
mit ner GetMaxPlayers oder so kannst du es einfach machen