Advertisement
Luciano_fuentes

Untitled

Nov 7th, 2016
211
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 23.46 KB | None | 0 0
  1. Option Explicit
  2.  
  3. Private Type tUretos
  4. UserIndex As Integer
  5. Rondas As Byte
  6. X As Byte
  7. Y As Byte
  8. End Type
  9.  
  10. Private Type tRetos
  11. Player(1) As tUretos
  12. ocupada As Boolean
  13. Oro As Long
  14. Items As Boolean
  15. CuentaRegresiva As Integer
  16. End Type
  17.  
  18. Public Arena(1 To 6) As tRetos
  19. Public ArenaPlantes(1 To 4) As tRetos
  20.  
  21. Public Const Mapa_Retos As Integer = 176
  22. Public Const Mapa_Retos_Items As Integer = 191
  23. Public Const Mapa_Retos_Plantes As Integer = 1
  24. ''FALTA RESETIAR FLAGS
  25.  
  26. Private Sub InicializarArena(ByVal ArenaN As Byte, ByVal X1 As Byte, ByVal Y1 As Byte, ByVal X2 As Byte, ByVal Y2 As Byte)
  27. With Arena(ArenaN)
  28. .Player(0).X = X1
  29. .Player(0).Y = Y1
  30. .Player(1).X = X2
  31. .Player(1).Y = Y2
  32. End With
  33. End Sub
  34. Private Sub InicializarArenaPlante(ByVal ArenaN As Byte, ByVal X1 As Byte, ByVal Y1 As Byte, ByVal X2 As Byte, ByVal Y2 As Byte)
  35. With ArenaPlantes(ArenaN)
  36. .Player(0).X = X1
  37. .Player(0).Y = Y1
  38. .Player(1).X = X2
  39. .Player(1).Y = Y2
  40. End With
  41. End Sub
  42. Public Sub InitRetos()
  43. InicializarArena 1, 13, 18, 27, 28
  44. InicializarArena 2, 44, 18, 58, 28
  45. InicializarArena 3, 74, 18, 88, 28
  46. InicializarArena 4, 13, 46, 27, 56
  47. InicializarArena 5, 44, 46, 58, 56
  48. InicializarArena 6, 74, 46, 88, 56
  49. InicializarArenaPlante 1, 50, 50, 49, 50
  50. InicializarArenaPlante 2, Null, Null, Null, Null
  51. InicializarArenaPlante 3, Null, Null, Null, Null
  52. InicializarArenaPlante 4, Null, Null, Null, Null
  53. End Sub
  54.  
  55. Public Sub MandarReto(ByVal UserIndex As Integer, ByVal tIndex As Integer, ByVal Oro As Long, ByVal Items As Boolean, ByVal Plantes As Boolean, ByVal Pociones As Integer, ByVal Cascos_Escudos As Boolean, ByVal Personaje As Boolean, ByVal Aim As Boolean)
  56. Dim nArena As Byte
  57. nArena = NuevaArena(Plantes)
  58. If nArena = 0 Then
  59. WriteConsoleMsg UserIndex, "No hay arenas disponibles", FontTypeNames.FONTTYPE_INFO
  60. Exit Sub
  61. End If
  62.  
  63. If Not PuedeReto(UserIndex, Oro, tIndex) Then Exit Sub
  64.  
  65. With UserList(UserIndex).UserReto.MandoReto
  66. .tIndex = tIndex
  67. .Oro = Oro
  68. .Items = Items
  69. .Pociones = Pociones
  70. .Personaje = Personaje
  71. .Aim = Aim
  72. End With
  73. UserList(UserIndex).UserReto.Plantes = Plantes
  74. UserList(UserIndex).UserReto.Escudos_Cascos = Cascos_Escudos
  75.  
  76. WriteConsoleMsg tIndex, UserList(UserIndex).name & "(" & UserList(UserIndex).Stats.ELV & _
  77. ") te ha invitado a participar en un reto" & IIf(Plantes = True, " de plantes ", " ") & "por " & Oro & " monedas de oro." & IIf(Pociones > 0, " Límite de pociones " & Pociones, vbNullString) _
  78. & IIf(Cascos_Escudos = True, " Se juega sin cascos y escudos.", vbNullString) & IIf(Personaje = True, " ATENCIÓN: Se juega por el personaje.", vbNullString) & IIf(Aim = True, " Se juega al AIM.", vbNullString) & IIf(Items = True, " y los items del inventario.", vbNullString) & _
  79. " Escribe /RETAR " & UserList(UserIndex).name & " para aceptar.", FontTypeNames.FONTTYPE_GUILD
  80.  
  81. WriteConsoleMsg UserIndex, "Solicitud enviada satisfactoriamente", FontTypeNames.FONTTYPE_INFO
  82.  
  83. End Sub
  84.  
  85. Public Sub AceptarReto(ByVal UserIndex As Integer, tIndex As Integer)
  86.  
  87. If UserList(tIndex).UserReto.MandoReto.tIndex <> UserIndex Then
  88. WriteConsoleMsg UserIndex, "Este usuario no te envio ninguna solicitud de reto", FontTypeNames.FONTTYPE_INFO
  89. Exit Sub
  90. End If
  91.  
  92. Dim nArena As Byte
  93. nArena = NuevaArena(UserList(tIndex).UserReto.Plantes)
  94. If nArena = 0 Then
  95. WriteConsoleMsg UserIndex, "No hay arenas disponibles", FontTypeNames.FONTTYPE_INFO
  96. Exit Sub
  97. End If
  98.  
  99. If (Not PuedeReto(UserIndex, UserList(tIndex).UserReto.MandoReto.Oro, tIndex, UserList(tIndex).UserReto.MandoReto.Pociones)) Or (Not PuedeReto(tIndex, UserList(tIndex).UserReto.MandoReto.Oro, UserIndex, UserList(tIndex).UserReto.MandoReto.Pociones)) Then Exit Sub
  100.  
  101. UserList(UserIndex).UserReto.Escudos_Cascos = UserList(tIndex).UserReto.Escudos_Cascos
  102.  
  103. If UserList(tIndex).UserReto.Escudos_Cascos = True Then
  104. With UserList(tIndex)
  105. If .Invent.CascoEqpObjIndex > 0 Then
  106. Call Desequipar(tIndex, .Invent.CascoEqpSlot)
  107. End If
  108. If .Invent.EscudoEqpObjIndex > 0 Then
  109. Call Desequipar(tIndex, .Invent.EscudoEqpSlot)
  110. End If
  111. End With
  112. With UserList(UserIndex)
  113. If .Invent.CascoEqpObjIndex > 0 Then
  114. Call Desequipar(UserIndex, .Invent.CascoEqpSlot)
  115. End If
  116. If .Invent.EscudoEqpObjIndex > 0 Then
  117. Call Desequipar(UserIndex, .Invent.EscudoEqpSlot)
  118. End If
  119. End With
  120. End If
  121.  
  122. If UserList(tIndex).UserReto.Plantes = False Then
  123.  
  124. With Arena(nArena)
  125. .Player(0).UserIndex = tIndex
  126. .Player(1).UserIndex = UserIndex
  127. .Items = UserList(tIndex).UserReto.MandoReto.Items
  128. .Oro = UserList(tIndex).UserReto.MandoReto.Oro
  129. .ocupada = True
  130. .CuentaRegresiva = 10
  131. UserList(.Player(0).UserIndex).UserReto.lastPos = UserList(.Player(0).UserIndex).Pos
  132. UserList(.Player(1).UserIndex).UserReto.lastPos = UserList(.Player(1).UserIndex).Pos
  133. WarpUserChar tIndex, Mapa_Retos, .Player(0).X, .Player(0).Y, False
  134. WarpUserChar UserIndex, Mapa_Retos, .Player(1).X, .Player(1).Y, False
  135. WritePauseToggle tIndex
  136. WritePauseToggle UserIndex
  137. UserList(.Player(0).UserIndex).UserReto.Arena = nArena
  138. UserList(.Player(1).UserIndex).UserReto.Arena = nArena
  139. UserList(.Player(0).UserIndex).UserReto.EnReto = True
  140. UserList(.Player(1).UserIndex).UserReto.EnReto = True
  141. UserList(.Player(0).UserIndex).UserReto.MandoReto.tIndex = 0
  142. UserList(.Player(1).UserIndex).UserReto.MandoReto.tIndex = 0
  143. UserList(.Player(0).UserIndex).UserReto.MandoReto.Pociones = 0
  144. UserList(.Player(1).UserIndex).UserReto.MandoReto.Pociones = 0
  145. UserList(.Player(0).UserIndex).Stats.GLD = UserList(.Player(0).UserIndex).Stats.GLD - .Oro
  146. UserList(.Player(1).UserIndex).Stats.GLD = UserList(.Player(1).UserIndex).Stats.GLD - .Oro
  147. WriteUpdateGold .Player(0).UserIndex
  148. WriteUpdateGold .Player(1).UserIndex
  149.  
  150. End With
  151. Else
  152. With ArenaPlantes(nArena)
  153. .Player(0).UserIndex = tIndex
  154. .Player(1).UserIndex = UserIndex
  155. UserList(UserIndex).UserReto.Plantes = True
  156. .Items = UserList(tIndex).UserReto.MandoReto.Items
  157. .Oro = UserList(tIndex).UserReto.MandoReto.Oro
  158. .ocupada = True
  159. .CuentaRegresiva = 10
  160. UserList(.Player(0).UserIndex).UserReto.lastPos = UserList(.Player(0).UserIndex).Pos
  161. UserList(.Player(1).UserIndex).UserReto.lastPos = UserList(.Player(1).UserIndex).Pos
  162. WarpUserChar tIndex, 1, .Player(0).X, .Player(0).Y, False
  163. WarpUserChar UserIndex, 1, .Player(1).X, .Player(1).Y, False
  164. WritePauseToggle tIndex
  165. WritePauseToggle UserIndex
  166. UserList(.Player(0).UserIndex).UserReto.Arena = nArena
  167. UserList(.Player(1).UserIndex).UserReto.Arena = nArena
  168. UserList(.Player(0).UserIndex).UserReto.EnReto = True
  169. UserList(.Player(1).UserIndex).UserReto.EnReto = True
  170. UserList(.Player(0).UserIndex).UserReto.MandoReto.tIndex = 0
  171. UserList(.Player(1).UserIndex).UserReto.MandoReto.tIndex = 0
  172. UserList(.Player(0).UserIndex).Stats.GLD = UserList(.Player(0).UserIndex).Stats.GLD - .Oro
  173. UserList(.Player(1).UserIndex).Stats.GLD = UserList(.Player(1).UserIndex).Stats.GLD - .Oro
  174. WriteUpdateGold .Player(0).UserIndex
  175. WriteUpdateGold .Player(1).UserIndex
  176. End With
  177. End If
  178.  
  179. End Sub
  180.  
  181. Public Sub MuereReto(ByVal UserIndex As Integer)
  182. Dim iRet As Byte
  183. With UserList(UserIndex).UserReto
  184. If .Arena <= 0 Then Exit Sub
  185. If .Arena > 6 Then Exit Sub
  186. Dim sData As String
  187. If .Plantes = False Then
  188. With Arena(.Arena)
  189. RevivirUsuario UserIndex
  190. With UserList(UserIndex)
  191. .Stats.MinHp = .Stats.MaxHp
  192. .Stats.MinMAN = .Stats.MaxMAN
  193. .Stats.MinSta = .Stats.MaxSta
  194. Call WriteUpdateUserStats(UserIndex)
  195. End With
  196. If UserIndex = .Player(0).UserIndex Then iRet = 1 Else iRet = 0
  197.  
  198. If .Player(iRet).Rondas = 1 Then
  199. Call TerminarReto(.Player(iRet).UserIndex, UserIndex)
  200. Else
  201. .CuentaRegresiva = 10
  202. WarpUserChar .Player(0).UserIndex, Mapa_Retos, .Player(0).X, .Player(0).Y, False
  203. WarpUserChar .Player(1).UserIndex, Mapa_Retos, .Player(1).X, .Player(1).Y, False
  204. WritePauseToggle .Player(0).UserIndex
  205. WritePauseToggle .Player(1).UserIndex
  206. .Player(iRet).Rondas = 1
  207. sData = PrepareMessageConsoleMsg("Resultado Parcial:" & vbCrLf & UserList(.Player(0).UserIndex).name & ": " & .Player(0).Rondas & vbCrLf & UserList(.Player(1).UserIndex).name & ": " & .Player(1).Rondas, FontTypeNames.FONTTYPE_GUILD)
  208. Call SendData(SendTarget.ToReto, UserList(UserIndex).UserReto.Arena, sData)
  209.  
  210. End If
  211. End With
  212. Else
  213. With ArenaPlantes(.Arena)
  214. RevivirUsuario UserIndex
  215. With UserList(UserIndex)
  216. .Stats.MinHp = .Stats.MaxHp
  217. .Stats.MinMAN = .Stats.MaxMAN
  218. .Stats.MinSta = .Stats.MaxSta
  219. Call WriteUpdateUserStats(UserIndex)
  220. End With
  221. If UserIndex = .Player(0).UserIndex Then iRet = 1 Else iRet = 0
  222.  
  223. If .Player(iRet).Rondas = 1 Then
  224. Call TerminarReto(.Player(iRet).UserIndex, UserIndex)
  225. Else
  226. .CuentaRegresiva = 10
  227. WarpUserChar .Player(0).UserIndex, Mapa_Retos_Plantes, .Player(0).X, .Player(0).Y, False
  228. WarpUserChar .Player(1).UserIndex, Mapa_Retos_Plantes, .Player(1).X, .Player(1).Y, False
  229. WritePauseToggle .Player(0).UserIndex
  230. WritePauseToggle .Player(1).UserIndex
  231. .Player(iRet).Rondas = 1
  232. sData = PrepareMessageConsoleMsg("Resultado Parcial:" & vbCrLf & UserList(.Player(0).UserIndex).name & ": " & .Player(0).Rondas & vbCrLf & UserList(.Player(1).UserIndex).name & ": " & .Player(1).Rondas, FontTypeNames.FONTTYPE_GUILD)
  233. Call SendData(SendTarget.ToReto, UserList(UserIndex).UserReto.Arena, sData)
  234.  
  235. End If
  236. End With
  237. End If
  238. End With
  239. End Sub
  240.  
  241. Public Sub TerminarReto(ByVal Winner As Integer, ByVal Perdedor As Integer)
  242. Dim nArena As Byte
  243. Dim dChar As String
  244.  
  245. nArena = UserList(Winner).UserReto.Arena
  246. If nArena <= 0 Or nArena > 6 Then Exit Sub
  247. If Winner <= 0 Then Exit Sub
  248. If Perdedor <= 0 Then Exit Sub
  249. Dim X As Byte, Y As Byte, cUser As Byte
  250. Dim sData As String
  251. If UserList(Winner).UserReto.Plantes = False Then
  252. With Arena(nArena)
  253. If .Items = False Then
  254. WarpUserChar Winner, UserList(Winner).UserReto.lastPos.map, UserList(Winner).UserReto.lastPos.X, UserList(Winner).UserReto.lastPos.Y, True, True
  255. WarpUserChar Perdedor, UserList(Perdedor).UserReto.lastPos.map, UserList(Perdedor).UserReto.lastPos.X, UserList(Perdedor).UserReto.lastPos.Y, True, True
  256. Else
  257. WarpUserChar Perdedor, Mapa_Retos_Items, .Player(0).X + 6, .Player(0).Y + 3, False, , True
  258. TirarTodosLosItems Perdedor
  259. WarpUserChar Perdedor, UserList(Perdedor).UserReto.lastPos.map, UserList(Perdedor).UserReto.lastPos.X, UserList(Perdedor).UserReto.lastPos.Y, True, True
  260. DoEvents
  261. WarpUserChar Winner, Mapa_Retos_Items, .Player(0).X + 6, .Player(0).Y + 3, True, , True
  262. End If
  263. sData = PrepareMessageConsoleMsg("Reto> " & UserList(Winner).name & " Vs " & UserList(Perdedor).name & ". Ganador " & UserList(Winner).name & ". Apuesta por " & .Oro & " monedas de oro" & IIf(.Items, " y los items del inventario.", "."), FontTypeNames.FONTTYPE_INFO)
  264. Call SendData(SendTarget.ToAll, 0, sData)
  265. UserList(Winner).Stats.GLD = UserList(Winner).Stats.GLD + (.Oro * 1.5)
  266. WriteUpdateGold Winner
  267. UserList(Winner).rank.Retos1vs1Ganados = UserList(Winner).rank.Retos1vs1Ganados + 1
  268. Call CheckRanking(eRankings.Retos1vs1, Winner, UserList(Winner).rank.Retos1vs1Ganados)
  269. .ocupada = False
  270. .Player(0).UserIndex = 0
  271. .Player(1).UserIndex = 0
  272. .Player(0).Rondas = 0
  273. .Player(1).Rondas = 0
  274. With UserList(Winner)
  275. .UserReto.Arena = 0
  276. .UserReto.EnReto = False
  277. .UserReto.Escudos_Cascos = False
  278. .UserReto.MandoReto.Aim = False
  279. End With
  280. With UserList(Perdedor)
  281. .UserReto.Arena = 0
  282. .UserReto.EnReto = False
  283. .UserReto.Escudos_Cascos = False
  284. .UserReto.MandoReto.Aim = False
  285. End With
  286. If UserList(Winner).UserReto.MandoReto.Personaje = True Or UserList(Perdedor).UserReto.MandoReto.Personaje = True Then
  287. Call WriteConsoleMsg(Winner, "¡Has ganado el personaje " & UserList(Perdedor).name & ", los datos del personaje ahora son los mismos que el tuyo. ", FontTypeNames.FONTTYPE_GUILD)
  288. dChar = CharPath & UCase$(UserList(Perdedor).name) & ".chr"
  289. UserList(Perdedor).UserReto.MandoReto.Personaje = False
  290. UserList(Winner).UserReto.MandoReto.Personaje = False
  291. Call CloseSocket(Perdedor)
  292. Call WriteVar(dChar, "INIT", "Password", GetVar(CharPath & UCase$(UserList(Winner).name) & ".chr", "INIT", "Password"))
  293. Call WriteVar(dChar, "INIT", "Pin", GetVar(CharPath & UCase$(UserList(Winner).name) & ".chr", "INIT", "Pin"))
  294. Call WriteVar(dChar, "CONTACTO", "Email", GetVar(CharPath & UCase$(UserList(Winner).name) & ".chr", "CONTACTO", "Email"))
  295. End If
  296. End With
  297. Else
  298. With ArenaPlantes(nArena)
  299. If .Items = False Then
  300. WarpUserChar Winner, UserList(Winner).UserReto.lastPos.map, UserList(Winner).UserReto.lastPos.X, UserList(Winner).UserReto.lastPos.Y, True, True
  301. WarpUserChar Perdedor, UserList(Perdedor).UserReto.lastPos.map, UserList(Perdedor).UserReto.lastPos.X, UserList(Perdedor).UserReto.lastPos.Y, True, True
  302. Else
  303. WarpUserChar Perdedor, Mapa_Retos_Items, .Player(0).X + 6, .Player(0).Y + 3, False, , True
  304. TirarTodosLosItems Perdedor
  305. WarpUserChar Perdedor, UserList(Perdedor).UserReto.lastPos.map, UserList(Perdedor).UserReto.lastPos.X, UserList(Perdedor).UserReto.lastPos.Y, True, True
  306. DoEvents
  307. WarpUserChar Winner, Mapa_Retos_Items, .Player(0).X + 6, .Player(0).Y + 3, True, , True
  308. End If
  309.  
  310. sData = PrepareMessageConsoleMsg("Reto> " & UserList(Winner).name & " Vs " & UserList(Perdedor).name & ". Ganador " & UserList(Winner).name & ". Apuesta por " & .Oro & " monedas de oro" & IIf(.Items, " y los items del inventario.", "."), FontTypeNames.FONTTYPE_INFO)
  311. Call SendData(SendTarget.ToAll, 0, sData)
  312. UserList(Winner).Stats.GLD = UserList(Winner).Stats.GLD + (.Oro * 1.5)
  313. WriteUpdateGold Winner
  314. UserList(Winner).rank.Retos1vs1Ganados = UserList(Winner).rank.Retos1vs1Ganados + 1
  315. Call CheckRanking(eRankings.Retos1vs1, Winner, UserList(Winner).rank.Retos1vs1Ganados)
  316. .ocupada = False
  317. .Player(0).UserIndex = 0
  318. .Player(1).UserIndex = 0
  319. .Player(0).Rondas = 0
  320. .Player(1).Rondas = 0
  321. With UserList(Winner)
  322. .UserReto.Arena = 0
  323. .UserReto.EnReto = False
  324. .UserReto.Plantes = False
  325. .UserReto.Escudos_Cascos = False
  326. .UserReto.MandoReto.Aim = False
  327. End With
  328. With UserList(Perdedor)
  329. .UserReto.Arena = 0
  330. .UserReto.EnReto = False
  331. .UserReto.Plantes = False
  332. .UserReto.Escudos_Cascos = False
  333. .UserReto.MandoReto.Aim = False
  334. End With
  335. If UserList(Winner).UserReto.MandoReto.Personaje = True Or UserList(Perdedor).UserReto.MandoReto.Personaje = True Then
  336. Call WriteConsoleMsg(Winner, "¡Has ganado el personaje " & UserList(Perdedor).name & ", los datos del personaje ahora son los mismos que el tuyo. ", FontTypeNames.FONTTYPE_GUILD)
  337. dChar = CharPath & UCase$(UserList(Perdedor).name) & ".chr"
  338. UserList(Perdedor).UserReto.MandoReto.Personaje = False
  339. UserList(Winner).UserReto.MandoReto.Personaje = False
  340. Call CloseSocket(Perdedor)
  341. Call WriteVar(dChar, "INIT", "Password", GetVar(CharPath & UCase$(UserList(Winner).name) & ".chr", "INIT", "Password"))
  342. Call WriteVar(dChar, "INIT", "Pin", GetVar(CharPath & UCase$(UserList(Winner).name) & ".chr", "INIT", "Pin"))
  343. Call WriteVar(dChar, "CONTACTO", "Email", GetVar(CharPath & UCase$(UserList(Winner).name) & ".chr", "CONTACTO", "Email"))
  344. End If
  345. End With
  346. End If
  347. End Sub
  348.  
  349. Public Sub PasaSegundo()
  350. Dim X As Long
  351. For X = 1 To 6
  352. With Arena(X)
  353. If .CuentaRegresiva = 0 Then
  354. .CuentaRegresiva = -1
  355. If .Player(0).UserIndex <> 0 Then
  356. WriteConsoleMsg .Player(0).UserIndex, "Reto> ¡Ya!", FontTypeNames.FONTTYPE_TALK
  357. WritePauseToggle .Player(0).UserIndex
  358. End If
  359. If .Player(1).UserIndex <> 0 Then
  360. WriteConsoleMsg .Player(1).UserIndex, "Reto> ¡Ya!", FontTypeNames.FONTTYPE_TALK
  361. WritePauseToggle .Player(1).UserIndex
  362. End If
  363. End If
  364. If .CuentaRegresiva >= 1 Then
  365. If .Player(0).UserIndex <> 0 Then
  366. WriteConsoleMsg .Player(0).UserIndex, "Reto> " & .CuentaRegresiva, FontTypeNames.FONTTYPE_TALK
  367. End If
  368. If .Player(1).UserIndex <> 0 Then
  369. WriteConsoleMsg .Player(1).UserIndex, "Reto> " & .CuentaRegresiva, FontTypeNames.FONTTYPE_TALK
  370. End If
  371. .CuentaRegresiva = .CuentaRegresiva - 1
  372. End If
  373. End With
  374. Next X
  375. For X = 1 To 4
  376. With ArenaPlantes(X)
  377. If .CuentaRegresiva = 0 Then
  378. .CuentaRegresiva = -1
  379. If .Player(0).UserIndex <> 0 Then
  380. WriteConsoleMsg .Player(0).UserIndex, "Reto> ¡Ya!", FontTypeNames.FONTTYPE_TALK
  381. WritePauseToggle .Player(0).UserIndex
  382. End If
  383. If .Player(1).UserIndex <> 0 Then
  384. WriteConsoleMsg .Player(1).UserIndex, "Reto> ¡Ya!", FontTypeNames.FONTTYPE_TALK
  385. WritePauseToggle .Player(1).UserIndex
  386. End If
  387. End If
  388. If .CuentaRegresiva >= 1 Then
  389. If .Player(0).UserIndex <> 0 Then
  390. WriteConsoleMsg .Player(0).UserIndex, "Reto> " & .CuentaRegresiva, FontTypeNames.FONTTYPE_TALK
  391. End If
  392. If .Player(1).UserIndex <> 0 Then
  393. WriteConsoleMsg .Player(1).UserIndex, "Reto> " & .CuentaRegresiva, FontTypeNames.FONTTYPE_TALK
  394. End If
  395. .CuentaRegresiva = .CuentaRegresiva - 1
  396. End If
  397. End With
  398. Next X
  399. End Sub
  400.  
  401. Private Function isCity(ByVal mapa As Integer) As Boolean
  402. Dim X As Long
  403. For X = 1 To NUMCIUDADES
  404. If mapa = Ciudades(X).map Then
  405. isCity = True
  406. Exit Function
  407. End If
  408. Next X
  409. isCity = False
  410. End Function
  411. Private Function PuedeReto(ByVal UserIndex As Integer, ByVal Oro As Long, tIndex As Integer, Optional Pociones As Integer) As Boolean
  412. PuedeReto = False
  413.  
  414. If UserIndex = tIndex Then
  415. WriteConsoleMsg UserIndex, "No puedes retarte a vos mismo", FontTypeNames.FONTTYPE_INFO
  416. Exit Function
  417. End If
  418.  
  419. If Oro < 5000 Then
  420. WriteConsoleMsg UserIndex, "La cantidad minima a retar es de 5.000 monedas de oro", FontTypeNames.FONTTYPE_INFO
  421. Exit Function
  422. End If
  423.  
  424. If Pociones > 0 Then
  425. If Potion_Red(UserIndex) > Pociones Then
  426. WriteConsoleMsg UserIndex, "La cantidad máxima de pociones es de " & Pociones, FontTypeNames.FONTTYPE_INFOBOLD
  427. Exit Function
  428. End If
  429. End If
  430.  
  431. With UserList(UserIndex)
  432. If Not isCity(.Pos.map) Then
  433. WriteConsoleMsg UserIndex, "Estás en una zona insegura", FontTypeNames.FONTTYPE_INFO
  434. Exit Function
  435. End If
  436.  
  437. If .flags.Muerto <> 0 Then
  438. WriteConsoleMsg UserIndex, "Estás muerto", FontTypeNames.FONTTYPE_INFO
  439. Exit Function
  440. End If
  441.  
  442. If .Stats.GLD < Oro Then
  443. WriteConsoleMsg UserIndex, "No tenés suficiente oro", FontTypeNames.FONTTYPE_INFO
  444. Exit Function
  445. End If
  446. End With
  447.  
  448. With UserList(tIndex)
  449. If Not isCity(.Pos.map) Then
  450. WriteConsoleMsg UserIndex, "Está en una zona insegura", FontTypeNames.FONTTYPE_INFO
  451. Exit Function
  452. End If
  453.  
  454. If .flags.Muerto <> 0 Then
  455. WriteConsoleMsg UserIndex, "Está muerto", FontTypeNames.FONTTYPE_INFO
  456. Exit Function
  457. End If
  458.  
  459. If .Stats.GLD < Oro Then
  460. WriteConsoleMsg UserIndex, "No tiene suficiente oro", FontTypeNames.FONTTYPE_INFO
  461. Exit Function
  462. End If
  463. End With
  464. PuedeReto = True
  465. End Function
  466.  
  467. Private Function NuevaArena(ByVal Plantes As Boolean) As Byte
  468. Dim X As Long
  469. If Plantes = False Then
  470. For X = 1 To 6
  471. If Arena(X).ocupada = False Then
  472. NuevaArena = X
  473. Exit Function
  474. End If
  475. Next X
  476. Else
  477. For X = 1 To 4
  478. If ArenaPlantes(X).ocupada = False Then
  479. NuevaArena = X
  480. Exit Function
  481. End If
  482. Next X
  483. End If
  484. NuevaArena = 0
  485. End Function
  486.  
  487. Private Function Potion_Red(ByVal ID As Integer) As Long
  488.  
  489. '@@ Función que devuelve las pociones rojas del usuario.
  490.  
  491. Dim LoopC As Long
  492. Dim Total As Long
  493.  
  494. With UserList(ID)
  495.  
  496. For LoopC = 1 To .CurrentInventorySlots
  497. If .Invent.Object(LoopC).ObjIndex = 38 Then
  498. Total = Total + .Invent.Object(LoopC).Amount
  499. End If
  500. Next LoopC
  501.  
  502. Potion_Red = Total
  503.  
  504. End With
  505.  
  506. End Function
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement