Wie kann ich machen das zuerst alle NPC´s connecten bevor ich erst drauf kann ?:)
erst alle NPC connecten lassen?
- GRPKing
- Geschlossen
- Erledigt
Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!
Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
-
-
Du kannst beim Connecten eines Bots dessen ID abfangen (Callback:OnNPCConnect). Dafür musst du natürlich wissen, wie viele Bots insgesamt auf deinen Server connecten. Sind es z.B. 5 Bots (playerid = 4)
public OnNPCConnect(myplayerid)
{
if(myplayerid == 4)
{
//allow player to connect here
}
}Innerhalb der if-Abfrage kannst du dann das Connecten erlauben. Du kannst z.B. eine Variable auf false setzen, welche den Spieler beim Connecten kicken würde, wenn diese true wäre. Oder, wobei ich nicht weiß ob das geht, beim Starten ein Passwort setzen und dieses dann nach dem letzten Bot entfernen.
-
also muss ich
public OnNPCConnect(myplayerid)
{
if(myplayerid == 4)
{
//dan das was unter onplayerconect setht
und dan
}
else
{
//kick ..
}
}
? -
Naja.
Füts was brauchste das denn?
Die Bots connecten doch eh total schnell nach GMX. -
du könntest es z.B. so machen
new bool:canlogin = false; // globale variable
Bei OnPlayerConnect
if(canlogin == false && IsPlayerNPC(playerid) == 0) Kick(playerid);
Und dann natürlich:
public OnNPCConnect(myplayerid)
{
if(myplayerid == 4)
{
canlogin = true;
}
}Eventuell funktioniert das, eventuell aber auch nicht
Man müsste rausfinden ob eine ID (playerid) kurzeitig blockiert würde wenn ein Spieler Connected, da dann unter umständen der vorletzte Bot schon die Id des letzten Bots bekommen würde.Ansonsten fällt mir aber auch keine gute Lösung ein.
Kann man eigentlich per Rcon Command beim laufenden Server das Passwort rausnehmen? Wenn ja dann kann man das ja rausnehmen wenn alle Bots connected sind. Dann hätte man das Problem mit den eventuell blockierten IDs nicht.
-
Ich glaub schon, dass das geht, wenn man mit rcon exec ne neue Server.cfg lädt.
Oder auch mit irgend nem andren rcon Befehl -
/rcon password 0
Damit nimmt man das Passwort bei laufendem Server raus. Mit z. B. /rcon password bla setzt man das Serverpasswort auf bla.
-
Wenn das von Homer stimmt, dann sollte das so auf jeden Fall funktionieren:
OnGameModeInit
SendRconCommand("password changeme");
public OnNPCConnect(myplayerid)
{
if(myplayerid == 4)
{
SendRconCommand("password 0");
}
} -
Besser wäre wohl eine Warteschlange mit einem Timer...
(sagen wir eine halbe minute nach serverstart sollte reichen) -
und wie mach ich das mit timer ?
-
-
Eine Warteschlange? Wie willstn das umsetzen? Du kannst ihn ja ned wirklich warten lassen.
-
ich habs jetzt mit timer also rcon password usw. kanns sein das wen ein password drauf ist die npc´s nicht connecten können ?
Lacht mich nicht aus wen ich falsch liege nur eine frage -
Ich persönlich arbeite mit 300 Bots, setze bei Ongamemodeinit ein langes Passowort
SendRconCommand("password changeme");
und wenn ale Bots drauf sind lösche ich das Posswort: SendRconCommand("password 0");
Damit die User auch sofort sehen, dass sie nicht connecten können habe ich als Gamemode loading... xxx%
und wenn es fertig ist change ich auf den richtigen Namen.ergo funtzt dass mit dem passwort.
-
die sache bei mir ist jetzt aber ich habe pw gemacht..aber jetzt connecten nicht die beiden bots ._.
habs so
bei ongamemodeiniloginvar3c = SetTimer("loginvar3", 1000, 1);
SendRconCommand("password asdssd");dan der timer forward loginvar3();
public loginvar3(){
new playerid;
ConnectNPC("Alexander","none");
ConnectNPC("Dustin","none");
// botsvar = 1;
if(IsPlayerNPC(playerid))
{
new botname[MAX_PLAYER_NAME];
GetPlayerName(playerid, botname, sizeof(botname));
if(!strcmp(botname, "Dustin", true))
{
gPlayerLogged[playerid] = 1;//Der Bot ist gleich eingeloggt (Anpassen!)
}
if(!strcmp(botname, "Alexander", true))
{
gPlayerLogged[playerid] = 1;//Der Bot ist gleich eingeloggt (Anpassen!)
}
}
SetTimerEx("botcommand", 1000, 0, "i", playerid);
SendRconCommand("password 0");
KillTimer(loginvar3c);
} -
breadfish.de
Hat das Thema geschlossen.