[D2NT Release] Game Announcements im Channel

05/18/2010 18:51 Muddy Waters#46
Quote:
Originally Posted by deep_thought View Post
easy muling... der bot ist da ziemlich eigensinnig. vorallem jetzt, wo er noch in den channel geht usw, teilweise ziemlich schwierig in ein bestimmtes game zu joinen. Oder wie macht ihr das?

Oder auch, wenn man mal kurz chatten will, oder was auch immer^^ Also, wenn's zu aufwendig ist, kein Problem, aber wenn's leicht möglich ist, schadet's ja nicht ;)
Ich werds mir mal anschauen wenn ich wieder Zeit zum programmieren finde. :)

Zu deiner anderen Frage: Die Pause Funktion läuft über ein Event Handle, welches Tastendrücke abfängt. Dies befindet sich aber in der NTBotGame.ntj, darum ist es für mich leider nach wie vor nicht nachvollziehbar inwieweit dies hiermit zusammen hängen könnte.
Was nicht heisst, dass ich dir das nicht abnehme, ich kann es mir nur genauso wenig erklären wie du. :(

Quote:
Originally Posted by HK18 View Post
Code:
var gameMinLength        = 120000;    // time in milliseconds, minimum game length, 180 seconds default (1 game/3 minutes)
var unableToConnectRetry    = 5;        // time in minutes to retry connecting on connection fail (real value is +/- 1 min)
var realmDownRetry        = 300;        // time in minutes to retry connecting on a realm down (default is 300 minutes)
var disconnectedRetry        = 5;        // time in minutes to retry on a disconnection (usually ip ban related)
var cdkeyInUseRetry        = 5;        // time in minutes to retry on a cdkey in use error message (set to 0 to stop)
var connectingToBnetTimeout    = 20000;    // time in milliseconds to wait for a login to time out and click cancel and retry
var characterScreenTimeout    = 10000;    // time in milliseconds to wait for character screen to appear
var pleaseWaitTimeout        = 10000;    // time in milliseconds to wait for a please wait popup
var createGameThreshold        = 5000;        // time in milliseconds to wait between making games
var createGameThresholdRandom    = 1000;        // time in milliseconds to randomly add +/- to the game create time
var createGameTimeout        = 15000;    // time in milliseconds to register a failed to create game
var waitInLineTimeout        = 60000;    // time in milliseconds to wait in lines for a create game (60 second default)
var characterSelectDelay    = 1000;        // time in milliseconds to wait before selecting a character on the char screen
var loginDelay            = 1000;        // time in milliseconds to wait before submitting login information
var clickDelay            = 500;        // wait X milliseconds before next action after a click event
var textDelay            = 500;        // wait X milliseconds before next action after inserting text into a textbox
var clickDelayRandom        = 500;        // random amount of time to add to a click
var textDelayRandom        = 500;        // random amount of time to add to a text set
var gameDoesNotExistDelayMin    = 600000;    // how long to wait when a Game Does Not Exist occurs - minimum - default 10 minutes
var gameDoesNotExistDelayMax    = 900000;    // how long to wait when a Game Does Not Exist occurs - maximum - default 15 minutes
var gameDoesNotExistTimeout    = 30000;    // how long to wait for the dialog to disappear (default 30 seconds, don't change this)
var joinChatAfterLogin        = true;        // join chat after login
var joinRandomChannel        = false;        // if this is true, will join a random channel, otherwise it will use the channel below..
var joinChannelInChat        = "OP Lastbaal";        // leave blank not to join a private channel
var channelLogin            = true;    // type ".login" once after joining the channel
var channelUsers             = new Array(); // dynamic array that holds channel users
//---------------------------------------------------------------------------------------------------------------------------------------------------------
// add any char/account here that is supposed to perform chat actions/game announcements or join a private channel
channelUsers.push("Buzul123-mf");
channelUsers.push("Hammer-Buz");
//----------------------------------------------------------------------------------------------------------------------------------------------------------
//These key expressions are replaced that way: %game --> "gamename-",%counter --> number of the next game, %time --> time in seconds till game creation, %password --> game password
//Note that the announcement will start after the first run, so there won't be any anncouncement right after login
var gameAnnouncement        = "Next Game: %game%counter in few seconds."; // leave blank not to post a channel announcement
var gameAnnouncementDelay    = 1000;        // wait X milliseconds before posting the announcement message (don't set this too low!)
var gameAnnouncementDelayRandom = 500; // random amount of time to add to a to the announcement delay
//----------------------------------------------------------------------------------------------------------------------------------------------------------
var waitBeforeEnterChatMin    = 1000;        // min how long to wait before entering chat
var waitBeforeEnterChatMax    = 2000;        // max how long to wait before entering chat
var waitInChatBeforeActionsMin    = 2000;        // min how long to wait before joining channel
var waitInChatBeforeActionsMax    = 3000;        // max how long to wait before joining channel

// DONT EDIT ANYTHING BELOW THIS
zu meinem problem seitdem ich "var createGameThreshold" geändert habe nachdem mir das erstellen zu unregelmässig war funktioniert die ansage leider nicht mehr tips für die parameter?^^
Die Frage wurde im Grunde schon beantwortet, die Werte sind ganz einfach viel gering, ich würde als createGameThreshold mindestens 15 Sekunden ansetzen.
Achja, und gameAnnouncementDelay kannst du zwar auf unter 5 Sekunden setzen, dann wird aber deine Angabe ignoriert und der default Wert von 5 Sekunden angesetzt. Das ist eine Sicherheitsmaßnahme, weil zu kurze Delays hier zu Fehlfunktionen führen. Mal abgesehen davon, dass andere Spielteilnehmer in der Regel etwas Zeit brauchen und nicht simultan mit dem Bot das Spiel verlassen. Allein aus diesem Grund macht es keinen Sinn schon dann eine Ansage zu machen, wenn sie niemand hören kann. ;)

Lg
Muddy
05/23/2010 17:54 Coras#47
Danke klappt alles wunderbar!

Ich hätte da nur noch ein kleines problemchen und zwar wüsste ich gerne, wie ich meinen Bot im Spiel dazu kriege "join op RandomChannel" kann.
05/23/2010 18:49 Muddy Waters#48
Quote:
Originally Posted by Coras View Post
Danke klappt alles wunderbar!

Ich hätte da nur noch ein kleines problemchen und zwar wüsste ich gerne, wie ich meinen Bot im Spiel dazu kriege "join op RandomChannel" kann.
"That sentence is a bit holprig", wie mein Englischlehrer früher immer zu sagen pflegte. :)

Was heisst im Spiel? Tatsächlich im Spiel selbst? Oder in der Lobby?

Entweder die Antwort ist offensichtlich oder ich verstehe die Frage nicht.
Könntest du es bitte nochmal so erklären, dass es auch die ganz dummen (also ich :D) verstehen? :)

Lg
Muddy
05/23/2010 21:46 Coras#49
Ich meine im Spiel selbst, nicht in der Lobby.
05/23/2010 21:58 Muddy Waters#50
Quote:
Originally Posted by Coras View Post
Ich meine im Spiel selbst, nicht in der Lobby.
Das kann mein modifiziertes Script nicht, müsstest du selbst programmieren. Du müsstest die Variable für den Channelnamen global deklarieren und dann per Event handle das ingame Messagelog überwachen und bei nem gewissen Befehl, genau die Parameter auslesen, die dem Channelnamen entsprechen.

Schon halbwegs aufwändig von der Umsetzung her, was genau willst du damit denn erreichen, so ganz verstehe ich den Sinn nämlich immernoch nicht. :)

Lg
Muddy
05/23/2010 23:49 Coras#51
Uii wirklich zimlich aufwendig ^^
Der Sinn und Zeck der ganzen sache ist es, dass wenn mein Bot diese Nachricht immer im Spiel schreibt, mehr Leute meine runs verfolgen können und ich daher mehr exp und bessere drops bekomme. Auserdem wird der Channel dadurch auch bekannter.
05/24/2010 00:27 Muddy Waters#52
Quote:
Originally Posted by Coras View Post
Uii wirklich zimlich aufwendig ^^
Der Sinn und Zeck der ganzen sache ist es, dass wenn mein Bot diese Nachricht immer im Spiel schreibt, mehr Leute meine runs verfolgen können und ich daher mehr exp und bessere drops bekomme. Auserdem wird der Channel dadurch auch bekannter.
Moment mal, du willst ganz einfach irgendetwas im Spiel ausgeben?!
Sag das doch gleich! :D

Dafür fügst du einfach Ausgaben ein, die entsprechende Funktion heisst Say(), als Parameter wird ein konstanter String erwartet.
Beispiel:
Code:
Say("Join my precious Channel OP Random Channel for loads of fancy runs!");
Wichtig:
Danach sollte immer ein Delay stehen, bei einem so langen String wie im Beispiel würde ich 500-1000 Millisekunden ansetzen.
Code:
NTC_PingDelay(500);
Say("Join my precious Channel OP Random Channel for loads of fancy  runs!");
NTC_PingDelay(500);
Fehlen die Delays, kann es sein, dass deine Ausgabe übersprungen wird.

Diesen Part fügst du nun einfach an der gewünschten Stelle in dein Dia oder Baal Script ein.
Ich hoffe, ich habe damit deine eigentliche Frage beantwortet, wenn ja war diese definitiv etwas ungeschickt formuliert. ;)

Lg
Muddy
05/25/2010 00:44 Coras#53
Genau danach habe ich gesucht, danke!

Nur stelle ich mich glaube ich zu dumm an, denn ich habe nicht wirklich verstanden wo ich das einfügen muss. Wäre nett wenn du mir das näher erklären könntest oder einfach ein beispiel posten.

mfg

Coras
05/25/2010 19:10 Muddy Waters#54
Quote:
Originally Posted by Coras View Post
Genau danach habe ich gesucht, danke!

Nur stelle ich mich glaube ich zu dumm an, denn ich habe nicht wirklich verstanden wo ich das einfügen muss. Wäre nett wenn du mir das näher erklären könntest oder einfach ein beispiel posten.

mfg

Coras
Kein Thema, bekommst nachher mal Post von mir, das passt nicht wirklich in das Topic hier. ;)

Lg
Muddy
05/25/2010 23:22 Coras#55
Vielen Dank!
05/27/2010 17:06 spankyvz#56
ich weis nich bei mir kaputt ist aber er schreibt immer XxX-NaN obwohl es XxX-Dia-XX heissen sollte... help
05/28/2010 11:51 Muddy Waters#57
Quote:
Originally Posted by spankyvz View Post
ich weis nich bei mir kaputt ist aber er schreibt immer XxX-NaN obwohl es XxX-Dia-XX heissen sollte... help
Das liegt am zweiten Bindestrich im Namen. Der Spielname wird in der aktuellen Version einfach nach Bindestrichen getrennt, es ergibt sich dann ein Teil "Spielname" und ein Teil "Nummer". Der zweite Teil wird nun in eine ganze Zahl (= Integer Wert) umgewandelt. Da du einen weiteren Bindestrich hast, versuch er den String "Dia" in eine Zahl umzuwandeln, da dieser Teil aber aus Buchstaben und nicht aus Ziffern besteht, ist der Rückgabewert des Casts NaN (= not a number).

Ich werde mir mal Gedanken machen, wie ich am sinnvollsten nur die letzt Zahl nach dem Bindestrich auswerte. )

Lg
Muddy
05/28/2010 13:59 Muddy Waters#58
Quote:
Originally Posted by spankyvz View Post
ich weis nich bei mir kaputt ist aber er schreibt immer XxX-NaN obwohl es XxX-Dia-XX heissen sollte... help
So, erledigt, die aktuelle Version steht online :)

Es ist nun völlig egal, wieviele Bindestriche der Spielname enthält, nur hinter dem letzten wird die Spielnummer erwartet.

Danke nochmal für den Hinweis!

Lg
Muddy
06/01/2010 03:17 sirsit#59
hmmm glaube dafür bin ich auch zu dumm ^^

bei mir klabt das nicht
das der im chat schreibt
06/01/2010 19:55 Muddy Waters#60
Quote:
Originally Posted by sirsit View Post
hmmm glaube dafür bin ich auch zu dumm ^^

bei mir klabt das nicht
das der im chat schreibt
Also wenn du die Kommentare und dieses Topic durchliest, alle Hinweise aufnimmst und das Ganze dann stringent durchexerziert, habe ich starke Zweifel, dass es dann gerade bei dir nicht funktioniert. ;)

Im Zweifelsfall eben jeden Satz auf der Zunge zergehen lassen. Zu meiner Schulzeit hat man uns immer vorgeworfen, wir würden die Aufgabestellungen nicht richtig durchlesen. Und in vielen Fällen stimmte das auch - also immer alles erstmal in aller Ruhe durchlesen und verstehen, dann erübrigen sich viele Fragen direkt. :)

Wenn es dann immernoch nicht so tut wie gewünscht, darfst du hier gerne um Rat fragen, dann aber bitte mit einer konkreten und möglichst präzisen Problembeschreibung. ;)

Lg
Muddy