C sharp - Ayuda c# - bot dice varias frases al mismo tiempo en vez de una detras de la otra

 
Vista:

Ayuda c# - bot dice varias frases al mismo tiempo en vez de una detras de la otra

Publicado por Antony (1 intervención) el 12/02/2016 03:12:36
Hola buenas ando haciendo una cosilla en c# y quiero hacer una cosilla que me anda aqui dando la lata, esto va orientado a un juego, y la funcion de este codigo hace entrar un Bot a una habitacion el bot dice unas frases pero el problema es que las dice al mismo tiempo, trate de ponerle esto entre mensaje y mensaje..

1
2
3
4
5
6
Thread.Sleep(9000);
user.GetClient().SendMessage(botChatmsg);
Thread.Sleep(9000);
user.GetClient().SendMessage(botChatmsg2);
Thread.Sleep(9000);
user.GetClient().SendMessage(botChatmsg3);


Funciona, pero no es lo esperado, es decir, hace los intervalos entre mensaje y mensaje, pero al entrar en la habitacion en el ultimo mensaje user.GetClient().SendMessage(botChatmsg3) como tiene el sleep pues.. tarda mas en salir los objetos de la sala en este caso los muebles de la sala, y no se me ocurre otra forma de hacer que vaya todo en su sitio.. aqui dejo el codigo completo de todo el void donde tengo metido lo susodicho

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
internal void OnUserEnter(RoomUser user)
{
	GetWiredHandler().ExecuteWired(Interaction.TriggerRoomEnter, user);
 
	var count = 0;
 
	foreach (var current in _roomUserManager.UserList.Values)
	{
		if (current.IsBot || current.IsPet)
		{
			current.BotAI.OnUserEnterRoom(user);
			count++;
		}
 
		if (count >= 3)
			break;
	}
 
	if (user.GetClient().GetHabbo().Nuevo)
	{
		Console.WriteLine("NOOO ES NOOOOOB");
 
	}
	else
	{
		user.GetClient().GetHabbo().UnNuevo();
		RoomBot bot = new RoomBot(900, 8, AIType.Generic, true);
 
 
		bot.BotId = 900;
		bot.RoomId = user.RoomId;
		bot.OwnerId = 8;
		bot.AiType = AIType.Generic;
		bot.Name = "Frank";
		bot.Motto = "Soy tu bot guia";
		bot.Look = "ha-3129-70.sh-290-92.hd-180-1.fa-1206-63.hr-3090-40.cc-3039-100.lg-285-100";
		bot.X = 0;
		bot.Y = 0;
		bot.Z = 0;
		bot.Rot = 0;
		bot.WalkingMode = "freeroam";
		bot.MinX = 0;
		bot.MinY = 0;
		bot.MaxX = 0;
		bot.MaxY = 0;
		bot.Gender = "m";
		bot.DanceId = 0;
		bot.AutomaticChat = true;
		bot.IsBartender = true;
		bot.MixPhrases = true;
		bot.SpeechInterval = 1;
		bot.Responses = new List<string>();
		bot.Responses.Add("Hola, bienvenido al hotel.");
		bot.Responses.Add("¿Nuevos usuarios, mirate el tutorilal?.");
		bot.Responses.Add("Hola, bienvenido al hotel 4.");
		bot.Responses.Add("Hola, bienvenido al hotel 5.");
		bot.Responses.Add("Hola, bienvenido al hotel 6.");
 
		GetRoomUserManager().DeployBot(bot, null);
		bot.WasPicked = false;
 
		var botChatmsg = new ServerMessage();
		botChatmsg.Init(LibraryParser.OutgoingRequest("ChatMessageComposer"));
 
 
		if (user.GetClient().GetHabbo().Gender == "m")
		{
 
			botChatmsg.AppendInteger(bot.RoomUser.VirtualId);// vrid
			botChatmsg.AppendString("¡Bienvenido a HBeam " + user.GetClient().GetHabbo().UserName + "! Soy Frank, el manager del Hotel, Haz clic en el suelo de la sala para poder andar. ¡Estás en tu sala!");
			botChatmsg.AppendInteger(0);
			botChatmsg.AppendInteger(34);
			botChatmsg.AppendInteger(0);
			botChatmsg.AppendInteger(1);
		}
		else
		{
			botChatmsg.AppendInteger(bot.RoomUser.VirtualId);// vrid
			botChatmsg.AppendString("¡Bienvenida a HBeam " + user.GetClient().GetHabbo().UserName + "! Soy Frank, el manager del Hotel, Haz clic en el suelo de la sala para poder andar. ¡Estás en tu sala!");
			botChatmsg.AppendInteger(0);
			botChatmsg.AppendInteger(34);
			botChatmsg.AppendInteger(0);
			botChatmsg.AppendInteger(1);
		}
 
		var botChatmsg2 = new ServerMessage();
		botChatmsg2.Init(LibraryParser.OutgoingRequest("ChatMessageComposer"));
		botChatmsg2.AppendInteger(bot.RoomUser.VirtualId);// vrid
		botChatmsg2.AppendString("¡Durante los próximos días vas a recibir regalos muy valiosos, y los staffs te darán premios!");
		botChatmsg2.AppendInteger(0);
		botChatmsg2.AppendInteger(34);
		botChatmsg2.AppendInteger(0);
		botChatmsg2.AppendInteger(2);
 
 
		var botChatmsg3 = new ServerMessage();
		botChatmsg3.Init(LibraryParser.OutgoingRequest("ChatMessageComposer"));
		botChatmsg3.AppendInteger(bot.RoomUser.VirtualId);// vrid
		botChatmsg3.AppendString("Aquí tienes el primero: ¡Unos diamantes para poder comprar la sala que se monta sola! Los diamantes se encuentra arriba a tu derecha.");
		botChatmsg3.AppendInteger(0);
		botChatmsg3.AppendInteger(34);
		botChatmsg3.AppendInteger(0);
		botChatmsg3.AppendInteger(2);
 
		Thread.Sleep(9000);
		user.GetClient().SendMessage(botChatmsg);
		Thread.Sleep(9000);
		user.GetClient().SendMessage(botChatmsg2);
		Thread.Sleep(9000);
		user.GetClient().SendMessage(botChatmsg3);
	}
}


Un cordial saludo.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder