GS-Zone

Evento - Rey vs Rey, base. (Adaptado) Ir al Indice

Moderadores: Moderadores de Argentum, Especialistas de Argentum, Especialistas de Programación

7

Nota » 18 Ene 2012 18:36

Bueno, como estaba aburrido me puse adaptar las pocas lineas que habia que adaptar del sistema de matih.

Post Original:
http://www.gs-zone.org/evento_rey_vs_rey_base_tk8O.html

Muestra de lo que podemos lograr:

http://www.youtube.com/watch?v=gd2r8eAbAsY&list=UUJwZNZ0Tc5liptVsa2vpKfQ&index=6&feature=plcp

Explicacion:
bueno para los qe jugaron bender ao capas que ya saben como es , igual lo explico cortito.

Son 2 equipos , en los cuales, cuando el evento se inicia, se elige (al azar) un rey para cada equipo, y cada jugador de cada equipo es transportado a su base, bueno y quien mata al rey primero seria el ganador, cuando morís a los 3 segundos sos revivido y transportado a tu base, acá les dejo el módulo.


  1. Option Explicit
  2.  
  3. '******** Modulo Adaptado por Samke ********
  4.  
  5. Type tEquiposRey
  6.      UserIndex()      As Integer
  7.      Rey              As Integer
  8.      CContados        As Byte
  9. End Type
  10.  
  11. Public Type Rey
  12.      Equipo1        As tEquiposRey
  13.      Equipo2        As tEquiposRey
  14.      Cupos          As Byte
  15.      CuentaCupos    As Byte
  16.      Hay            As Boolean
  17.      Cerrado        As Boolean
  18. End Type
  19.  
  20. Public Type uREY
  21.      iRey            As Byte
  22.      EsperaRevivir   As Byte
  23.      iEvento         As Boolean
  24. End Type
  25.  
  26. Public sRey As Rey
  27.  
  28. 'CONSTANTES
  29.  
  30. Public Const MAPA_REY As Integer = 190
  31.  
  32. Public Const TEAM1_X  As Byte = 50
  33. Public Const TEAM1_Y  As Byte = 50
  34. Public Const TEAM2_X  As Byte = 50
  35. Public Const TEAM2_Y  As Byte = 50
  36.  
  37.  
  38. Public Sub REY_START(ByVal Cupos As Byte)
  39.  
  40. ' \ Author   :  maTih.-
  41. ' \ Note     :  Iniciamos el evento
  42.  
  43. Dim sCupos  As Byte
  44.  
  45. sCupos = (Cupos / 2)
  46.  
  47. With sRey
  48. .Cupos = Cupos
  49. .CuentaCupos = 0
  50. .Equipo1.CContados = 0
  51. .Equipo2.CContados = 0
  52. .Equipo1.Rey = 0
  53. .Equipo2.Rey = 0
  54.  
  55. ReDim .Equipo1.UserIndex(1 To sCupos) As Integer
  56. ReDim .Equipo2.UserIndex(1 To sCupos) As Integer
  57.  
  58. End With
  59.  
  60. End Sub
  61.  
  62. Public Sub REY_GO()
  63.  
  64. ' \ Author   :  maTih.-
  65. ' \ Note     :  Mandamos a peliar
  66.  
  67. Dim LoopC     As Long
  68.  
  69. With sRey
  70.  
  71. 'RANDOMIZE REYS
  72.  
  73. .Equipo1.Rey = REY_DameRey(1)
  74. .Equipo2.Rey = REY_DameRey(2)
  75.  
  76. 'MENSAJE DE CONSOLA
  77.  
  78. Call SendData(SendTarget.ToMap, MAPA_REY, 0, "||El REY Del equipo 1 es : " UserList(.Equipo1.Rey).name & " y el del equipo 2 es : " & UserList(.Equipo2.Rey).name & " que empieze la masacre!" & FONTTYPE_GUILD)
  79.  
  80. 'CERRAMOS PARA QUE NO ENTRE MÁS GENTE
  81.  
  82. .Cerrado = True
  83.  
  84. 'vamos desde LBOUND to UBOUND
  85.  
  86. For LoopC = LBound(.Equipo1.UserIndex()) To UBound(.Equipo2.UserIndex())
  87.  
  88.     'ID VALIDA?
  89.     If UserList(.Equipo1.UserIndex(LoopC)).ConnID <> -1 Then
  90.    
  91.     'WARP A LA BASE
  92.    
  93.     WarpUserChar .Equipo1.UserIndex(LoopC), MAPA_REY, TEAM1_X + LoopC, TEAM1_Y + LoopC
  94.    
  95.     'FLAGS
  96.    
  97.     UserList(.Equipo1.UserIndex(LoopC)).reyUser.iRey = 1
  98.     UserList(.Equipo2.UserIndex(LoopC)).reyUser.iEvento = True
  99.    
  100.     End If
  101.    
  102.     'ID VALIDA?
  103.     If UserList(.Equipo2.UserIndex(LoopC)).ConnID <> -1 Then
  104.    
  105.     'WARP A LA BASE
  106.    
  107.     WarpUserChar .Equipo2.UserIndex(LoopC), MAPA_REY, TEAM2_X + LoopC, TEAM2_Y + LoopC
  108.    
  109.     'FLAGS
  110.    
  111.     UserList(.Equipo2.UserIndex(LoopC)).reyUser.iRey = 2
  112.     UserList(.Equipo2.UserIndex(LoopC)).reyUser.iEvento = True
  113.    
  114.     End If
  115.    
  116. Next LoopC
  117.  
  118. End With
  119.  
  120. End Sub
  121.  
  122. Public Sub REY_MensajeTeams(ByVal TeamRey As Byte, ByVal MENSAJE As String)
  123.  
  124. ' \ Author   :  maTih.-
  125. ' \ Note     :  Envia un mensaje al teamRey
  126.  
  127. Dim LoopC  As Long
  128.  
  129. 'MANEJAMOS TEAM1 O TEAM2
  130.  
  131. If TeamRey = 1 Then
  132.  
  133. '1 TO UBOUND USERINDEXS
  134.  
  135. For LoopC = 1 To UBound(sRey.Equipo1.UserIndex())
  136.     If UserList(sRey.Equipo1.UserIndex(LoopC)).ConnID <> -1 Then
  137.     Call SendData(SendTarget.ToIndex, sRey.Equipo1.UserIndex(LoopC), 0, MENSAJE & FONTTYPE_CITIZEN)
  138.    
  139.     End If
  140. Next LoopC
  141.  
  142. Else
  143.  
  144. For LoopC = 1 To UBound(sRey.Equipo2.UserIndex())
  145.     If UserList(sRey.Equipo2.UserIndex(LoopC)).ConnID <> -1 Then
  146.    
  147.     Call SendData(SendTarget.ToIndex, sRey.Equipo2.UserIndex(LoopC), 0, MENSAJE & FONTTYPE_CITIZEN)
  148.    
  149.     End If
  150. Next LoopC
  151.  
  152. End If
  153.  
  154. End Sub
  155.  
  156. Public Sub REY_MuereIndex(ByVal UserMuerto As Integer)
  157.  
  158. ' \ Author   :  maTih.-
  159. ' \ Note     :  Controla las muertes de los usuarios
  160.  
  161. With UserList(UserMuerto)
  162.  
  163. If REY_UserEsRey(UserMuerto, .reyUser.iRey) Then
  164.  
  165. REY_Finish TeamWinner
  166.  
  167. Exit Sub
  168.  
  169. End If
  170.  
  171. .reyUser.EsperaRevivir = 3
  172.  
  173. End With
  174.  
  175. End Sub
  176.  
  177. Public Sub REY_SegundoRevivirUsuario(ByVal UserIndex As Integer)
  178.  
  179. ' \ Author   :  maTih.-
  180. ' \ Note     :  Segundos (3) para revivir el usuario cuando muere.
  181.  
  182. With UserList(UserIndex).reyUser
  183.  
  184. Dim XPos As Byte
  185. Dim YPos As Byte
  186.  
  187. XPos = IIf(.iRey = 1, TEAM1_X, TEAM1_Y)
  188. YPos = IIf(.iRey = 1, TEAM2_X, TEAM2_Y)
  189.  
  190. .EsperaRevivir = .EsperaRevivir - 1
  191.  
  192. If .EsperaRevivir <= 0 Then
  193.  
  194. .EsperaRevivir = 0
  195.  
  196. RevivirUsuario UserIndex
  197.  
  198. WarpUserChar UserIndex, MAPA_REY, XPos, YPos
  199.  
  200. End If
  201.  
  202. End With
  203.  
  204. End Sub
  205.  
  206. Public Sub REY_DisconnectUser(ByVal UserDis As Integer)
  207.  
  208. ' \ Author   :  maTih.-
  209. ' \ Note     :  Controla las muertes de los usuarios
  210.  
  211. With UserList(UserDis)
  212.  
  213. WarpUserChar UserDis, 1, 58, 45
  214.  
  215. REY_MensajeTeams .reyUser.iRey, .name & " Se ha desconectado."
  216.  
  217. End With
  218.  
  219. End Sub
  220.  
  221. Public Sub REY_Finish(ByVal TeamWinner As Byte)
  222.  
  223. ' \ Author   :  maTih.-
  224. ' \ Note     :  Termina el evento y lleva a todos a su casa
  225.  
  226. Dim LoopC     As Long
  227.  
  228. With sRey.Equipo1
  229.  
  230. For LoopC = LBound(.UserIndex()) To UBound(.UserIndex())
  231.    
  232.     'ID VALIDA?
  233.    
  234.     If UserList(.UserIndex(LoopC)).ConnID <> -1 Then
  235.    
  236.     WarpUserChar .UserIndex(LoopC), 1, 68 + LoopC, 45 + LoopC
  237.    
  238.     Call SendData(SendTarget.ToIndex, .UserIndex(LoopC), 0, "||El evento ha finalizado, ah ganado el equipo " & TeamWinner & FONTTYPE_GUILD)
  239.        
  240.     End If
  241.    
  242. Next LoopC
  243.  
  244. End With
  245.  
  246. With sRey.Equipo2
  247.    
  248. For LoopC = LBound(.UserIndex()) To UBound(.UserIndex())
  249.  
  250.     'ID VALIDA?
  251.      
  252.     If UserList(.UserIndex(LoopC)).ConnID <> -1 Then
  253.    
  254.     WarpUserChar .UserIndex(LoopC), 1, 58 + LoopC, 45 + LoopC
  255.    
  256.     Call SendData(SendTarget.ToIndex, .UserIndex(LoopC), 0, "||El evento ha finalizado, ah ganado el equipo " & TeamWinner & FONTTYPE_GUILD)
  257.        
  258.     End If
  259.      
  260. Next LoopC
  261.    
  262. End With
  263.  
  264. End Sub
  265.  
  266. Public Function REY_DameRey(ByVal TeamRey As Byte) As Integer
  267.  
  268. ' \ Author   :  maTih.-
  269. ' \ Note     :  Devuelve un usuario random como rey
  270.  
  271. Dim rRey   As Integer
  272.  
  273. If TeamRey = 1 Then
  274.  
  275. rRey = RandomNumber(LBound(sRey.Equipo1.UserIndex()), UBound(sRey.Equipo1.UserIndex()))
  276.  
  277. rRey = sRey.Equipo1.UserIndex(rRey)
  278.  
  279. Else
  280.  
  281. rRey = RandomNumber(LBound(sRey.Equipo2.UserIndex()), UBound(sRey.Equipo2.UserIndex()))
  282.  
  283. rRey = sRey.Equipo2.UserIndex(rRey)
  284.  
  285. End If
  286.  
  287. REY_DameRey = rRey
  288.  
  289. End Function
  290.  
  291. Public Function REY_UserEsRey(ByVal UserIndex As Integer, ByVal TeamRey As Byte) As Boolean
  292.  
  293. ' \ Author   :  maTih.-
  294. ' \ Note     :  Devuelve si UserIndex es el Rey del TeamRey
  295.  
  296. If TeamRey = 1 Then
  297.  
  298. REY_UserEsRey = (sRey.Equipo1.Rey = UserIndex)
  299.  
  300. Else
  301.  
  302. REY_UserEsRey = (sRey.Equipo2.Rey = UserIndex)
  303.  
  304. End If
  305.  
  306. End Function
  307.  
  308. Public Function REY_UserDameTag(ByVal UserIndex As Integer)
  309.  
  310. ' \ Author   :  maTih.-
  311. ' \ Note     :  Devuelve el Tag de userIndex by su team
  312.  
  313. With UserList(UserIndex).reyUser
  314.  
  315. REY_UserDameTag = UserList(UserIndex).name & " <Equipo " & .iRey & ">"
  316.  
  317. End With
  318.  
  319. End Function


desp es facil lo van leyendo y van poniendo en el sub userdie , closesocket , refreshcharstatus, etc etc.


Saludos ^^
Última edición por Samke el 24 Ene 2012 12:04, editado 1 vez en total

Imagen
Imagen
Staff Zeiked-Games
641
Dragon Ancestral [3]
Registrado: Años de membresíaAños de membresía
Ubicación: Castelar
Mensajes: 3414
Aportes: 66
Premios: 3
Usuario omnipresente (1) Embajador (2)

Nota » 18 Ene 2012 18:45

Estaría bueno que pongas que si un administrador pone /CANCELARTEAM se cancele, y esto como se hace, es decir se hace cada X tiempo o El GM lo inicia?

Imagen

Ilaisa
<Aprendiendo a Programar>
227
Newbie [4]
Registrado: Diciembre 2011
Mensajes: 128

Nota » 18 Ene 2012 18:50

Ilaisa escribió:Estaría bueno que pongas que si un administrador pone /CANCELARTEAM se cancele, y esto como se hace, es decir se hace cada X tiempo o El GM lo inicia?


Es una base, no voy a aportar todo el sistema completo, aporte el modulo que puso matih.- adaptado.

Saludos ^^

Imagen
Imagen
Staff Zeiked-Games
641
Dragon Ancestral [3]
Registrado: Años de membresíaAños de membresía
Ubicación: Castelar
Mensajes: 3414
Aportes: 66
Premios: 3
Usuario omnipresente (1) Embajador (2)

Nota » 18 Ene 2012 19:06

Samke escribió:
Ilaisa escribió:Estaría bueno que pongas que si un administrador pone /CANCELARTEAM se cancele, y esto como se hace, es decir se hace cada X tiempo o El GM lo inicia?


Es una base, no voy a aportar todo el sistema completo, aporte el modulo que puso matih.- adaptado.

Saludos ^^


Tampoco es la gran adaptación pero se agradece martín

Imagen
Ninja en progreso
919
Dragon Ancestral [5]
Registrado: Años de membresía
Ubicación: • olivos •
Mensajes: 4097
Aportes: 13

Nota » 18 Ene 2012 23:04

miqueas150 escribió:
Samke escribió:
Ilaisa escribió:Estaría bueno que pongas que si un administrador pone /CANCELARTEAM se cancele, y esto como se hace, es decir se hace cada X tiempo o El GM lo inicia?


Es una base, no voy a aportar todo el sistema completo, aporte el modulo que puso matih.- adaptado.

Saludos ^^


Tampoco es la gran adaptación pero se agradece martín


Na, no es gran cosa, adapte un par de lineas de mensajes y warpuser. Pero como mucha gente no sabe adaptar lo hice yo :P

Saludos ^^

Imagen
Imagen
Staff Zeiked-Games
641
Dragon Ancestral [3]
Registrado: Años de membresíaAños de membresía
Ubicación: Castelar
Mensajes: 3414
Aportes: 66
Premios: 3
Usuario omnipresente (1) Embajador (2)

Nota » 18 Ene 2012 23:11

Samke escribió:
miqueas150 escribió:
Samke escribió:
Es una base, no voy a aportar todo el sistema completo, aporte el modulo que puso matih.- adaptado.

Saludos ^^


Tampoco es la gran adaptación pero se agradece martín


Na, no es gran cosa, adapte un par de lineas de mensajes y warpuser. Pero como mucha gente no sabe adaptar lo hice yo :P

Saludos ^^


Yeah por eso se agradece =$

Imagen
Ninja en progreso
919
Dragon Ancestral [5]
Registrado: Años de membresía
Ubicación: • olivos •
Mensajes: 4097
Aportes: 13

Nota » 19 Ene 2012 02:02

Sisi, :P pero estaria bueno que hagas un Plus xD, Que con /CANCELARREY se cancele o que lo empieze el adm o nose jaja xD Buen aporte!

Imagen

Ilaisa
<Aprendiendo a Programar>
227
Newbie [4]
Registrado: Diciembre 2011
Mensajes: 128


Volver a AO 0.11.5

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados