Advertisement
Luciano_fuentes

Untitled

Jan 12th, 2017
256
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 15.03 KB | None | 0 0
  1. Option Explicit
  2.  
  3. '*************************
  4. 'AUTOR: G TOYZ - TOYZ - LUCIANO
  5. 'FECHA: 12/01
  6. 'RESPETAR CRÉDITOS EN CASO DE USAR EL SISTEMA Y EN UNA PUBLICIDAD _
  7. 'MENCIONAR LAS IMPLEMENTACIONES DEL SERVIDOR, SI ESTA SE INCLUYE, DEJE CRÉDITOS. GRACIAS.
  8. '-------------------
  9. '*************************
  10.  
  11. Private Enum eTipoMisioneros
  12. Negro = 1 ' Ilegal
  13. Blanco ' Legal
  14. End Enum
  15.  
  16. Private Enum eFacciones
  17. Armada = 1
  18. Legion
  19. Ciudadano
  20. criminal
  21. End Enum
  22.  
  23. Private Enum eBuffs
  24. HappyHour_EXP = 1 'Mayor experiencia. (INFLUYE EN LAS MISIONES HASTA PUEDE DUPLICARSE LA ACTUAL HAPPYHOUR EN CASO DE QUE SEA EL MISMO PREMIO EN OTRA MISIÓN)
  25. HappyHour_ORO 'Lo mismo que el de arriba pero con las palabras ORO
  26. Descuento 'Descuento en el vendedor del misionero.
  27. MenosTiempo 'Menos tiempo en los counters: Inmovilizar, envenenamiento
  28. MasTiempo 'Mas tiempo en los counters: Fuerza, celeridad, invisibilidad, hambre, sed, energía
  29. End Enum
  30.  
  31. Private Type tRecompensa
  32. Oro As Long 'Oro de la recompensa
  33. Objeto() As Obj 'Objetos de la recompensa
  34. Buffs() As eBuffs 'Buffs que se le pueden dar al usuario
  35. End Type
  36.  
  37. Private Type tMatarUsuario
  38. Nombre As String '<------ ID del usuario a matar
  39. Pos As Integer ' <--- Mapa donde se encuentra (Se actualiza cada vez que se va del mapa) :)
  40. Faccion As eFacciones
  41. Nivel As Byte
  42. razon As String
  43. End Type
  44.  
  45. Private Type tMatarNPCObjeto
  46. Objeto As Obj 'El objeto
  47. LoTiene As Boolean '¿Lo consiguió?
  48. End Type
  49.  
  50. Private Type tNPC
  51. ID As Integer 'ID del NPC
  52. Pos As Integer 'Solo el mapa
  53. End Type
  54.  
  55. Private Type tMatarNPC
  56. Cantidad As Byte '<--- Cantidad de NPC's que tiene que matar para conseguir los objetos
  57. Objeto() As tMatarNPCObjeto
  58. NpcData As tNPC
  59. End Type
  60.  
  61. Private Type tMensajero
  62. Mensaje As String 'El mensaje
  63. ID As Integer 'ID del NPC
  64. Nombre As String 'Por si es un usuario
  65. Pos As Integer '<---- Mapa en donde se encuentra el Usuario o NPC.
  66. End Type
  67.  
  68. Private Type tComprarObjeto
  69. Objeto() As Obj '<--- Objetos a comprar
  70. Oro As Long '<--- El oro que te da el misionero, es justo.
  71. ID As Byte '<--- El ID del misionero.
  72. End Type
  73.  
  74. Private Type tObjetivo
  75. MatarUsuario As tMatarUsuario '<--- Misión de matar a un usuario
  76. MatarNPC As tMatarNPC '<---- Misión de matar a un NPC
  77. Mensajero As tMensajero '<----- Misión de enviar un mensaje
  78. ComprarObjeto As tComprarObjeto '<---- Misión de comprar X objeto
  79. End Type
  80.  
  81. Private Type tRequisitos
  82. Nivel As Byte '<--- Nivel requerido
  83. Oro As Long '<--------- Oro requerido
  84. Reputacion As Integer '<---- Reputación requerida
  85. Faccion As eFacciones '<----- Facción requerida
  86. End Type
  87.  
  88. Private Type tMision
  89. Recompensa As tRecompensa 'La recompensa.
  90. Objetivo As tObjetivo 'Objetivo
  91. Costo As Long 'En caso de que la arme un usuario (EN ORO)
  92. Tiempo As Integer 'Tiempo que tiene para hacer la misión.
  93. Descripcion As String '<---- Descripción de la misión (SI SE QUIERE PUEDEN: usar un index para optimizar y setear strs en el cliente)
  94. Requisito As tRequisitos '<---- Los requisitos de la misión
  95. End Type
  96.  
  97. Private Type tReservacion
  98. Objeto() As Obj 'Todos los objetos en reserva
  99. Oro As Long 'El oro total
  100. Misionero As Byte 'Misionero al que se lo reservó
  101. End Type
  102.  
  103. Private Type tVenta '<- Venta del objeto
  104. Objeto As Obj '<- Objeto para vender
  105. Oro As Long '<- Cantidad de oro
  106. End Type
  107.  
  108. Private Type tVendedor
  109. ID As Integer '<-- ID del vendedor
  110. Pos As WorldPos '<-- Su posición
  111. Reservacion() As tReservacion '<--- ¿Tiene reservaciones?
  112. Objeto() As tVenta '<--- Objetos a la venta
  113. End Type
  114.  
  115. Private Type tDatosHombre
  116. Nombre As String '<---- ID de usuario
  117. Reputacion As Integer '<---- Reputación
  118. EnMision As Boolean '<---- ¿Está en misión?
  119. End Type
  120.  
  121. Private Type tHombre '<----- Los mejores hombres en:
  122. MatadorDeNPC As tDatosHombre '<--- matadores de NPC's
  123. Mensajero As tDatosHombre '<---- Mensajeros
  124. MatadorUsuarios As tDatosHombre '<--- Matadores de usuarios
  125. CompradorObjetos As tDatosHombre '<---- Compradores de objetos
  126. End Type
  127.  
  128. Private Type tDatosObjeto
  129. Objeto As Obj '<-- El objeto
  130. LoHizo As Boolean '<-- Lo hizo?
  131. End Type
  132.  
  133. Private Type tArmarObjeto
  134. Objeto() As tDatosObjeto '<--- Objetos
  135. Tiempo As Integer '<---- Tiempo que lleva hacer todos.
  136. End Type
  137.  
  138. Private Type tNPCArmadores
  139. ID As Integer '<---- ID del NPC
  140. ArmarObjeto As tArmarObjeto '<--- Objeto que tienen que armar
  141. End Type
  142.  
  143. Private Type tCantidadMisionesDatos
  144. CantidadDeObjetosRecompensa As Byte '<---- Cantidad de objetos recompensados en la misión
  145. CantidadDeBuffsRecompensa As Byte '<----- Cantidad de buffs recompensados en la misión
  146. CantidadDeObjetosAComprar As Byte '<----- Cantidad de objetos a comprar en la misión
  147. CantidadDeObjetosAConseguirEnNPCs As Byte '<----- Cantidad de objetos que tenés que conseguir matando NPC's
  148. End Type
  149.  
  150. Private Type tCantidades
  151. CantidadHombre As Byte '<----- Cantidad de hombres
  152. CantidadMisiones As Byte '<------ Cantidad de misiones
  153. CantidadObjetos As Byte '<----- Cantidad de objetos
  154. CantidadMisionesDatos() As tCantidadMisionesDatos '<----- Cantidad de objetos o buffs que tiene la recompensa de X misión
  155. End Type
  156.  
  157. Private Type tMisionero
  158. Hombre() As tHombre '<---- Hombres que hicieron misiones (MACHISMO)
  159. Mision() As tMision '<--- Misiones
  160. Objeto() As Obj 'Objetos que puede llegar hacer el misionero con sus ayudantes
  161. Vendedor As tVendedor '<---- Vendedor
  162. Sastre As tNPCArmadores '<--- El sastre
  163. Herrero As tNPCArmadores '<--- El herrero
  164. Tipo As eTipoMisioneros '<---- Qué tipo de misionero es?
  165. Pos As WorldPos ' <---- Su posición
  166. Cantidades As tCantidades '<----- Para los arrays :P
  167. Oro As Long '<---- Oro que tiene
  168. ID As Integer '<---- Su id
  169. End Type
  170.  
  171. Private CantidadMisioneros As Byte '<--- Cantidad total de misioneros
  172. Private Leer As New clsIniReader '<---- Para leer el .dat
  173. Private Misionero() As tMisionero '<---- Todos los misioneros
  174.  
  175. Public Sub Cargar_Cantidades()
  176.  
  177. On Error GoTo error
  178.  
  179. 100 Dim LoopC As Long
  180. 110 Dim LoopI As Long
  181.  
  182. 120 Call Leer.Initialize(DatPath & "\Misioneros.dat")
  183.  
  184. 130 CantidadMisioneros = CByte(Leer.GetValue("INIT", "Misioneros"))
  185. 140 ReDim Misionero(1 To CantidadMisioneros) As tMisionero
  186.  
  187. 150 For LoopC = 1 To CantidadMisioneros
  188. 160 With Misionero(LoopC).Cantidades
  189. 170 .CantidadHombre = CByte(Leer.GetValue("Misionero" & LoopC, "Cantidad de hombres"))
  190. 180 .CantidadMisiones = CByte(Leer.GetValue("Misionero" & LoopC, "Cantidad de misiones"))
  191. 190 .CantidadObjetos = CByte(Leer.GetValue("Misionero" & LoopC, "Cantidad de objetos"))
  192.  
  193. 'Redims:
  194. 200 With Misionero(LoopC)
  195. 210 ReDim .Hombre(1 To .Cantidades.CantidadHombre) As tHombre
  196. 220 ReDim .Mision(1 To .Cantidades.CantidadMisiones) As tMision
  197. 230 ReDim .Objeto(1 To .Cantidades.CantidadObjetos) As Obj
  198. 240 ReDim .CantidadRecompensaMisiones(1 To .CantidadMisiones) As tCantidadRecompensas
  199. 250 For LoopI = 1 To .CantidadMisiones
  200. 260 Misionero(LoopC).Cantidades.CantidadMisionesDatos(LoopI).CantidadDeBuffsRecompensa = CByte(Leer.GetValue("Misionero" & LoopC, "Cantidad de objetos como recompensa de la mision " & LoopI)) '<--- Otra vez leemos :P
  201. 270 Misionero(LoopC).Cantidades.CantidadMisionesDatos(LoopI).CantidadDeObjetosRecompensa = CByte(Leer.GetValue("Misionero" & LoopC, "Cantidad de objetos como recompensa de la mision " & LoopI)) '<--- Otra vez leemos :P
  202. 280 Misionero(LoopC).Cantidades.CantidadMisionesDatos(LoopI).CantidadDeObjetosAConseguirEnNPCs = CByte(Leer.GetValue("Misionero" & LoopC, "Cantidad de objetos que tiene que recolectar matando un NPC de la misión " & LoopI))
  203. 290 Misionero(LoopC).Cantidades.CantidadMisionesDatos(LoopI).CantidadDeObjetosAComprar = CByte(Leer.GetValue("Misionero" & LoopC, "Cantidad de objetos que tiene que ir a comprar a otro misionero de la misión " & LoopI))
  204.  
  205. 300 ReDim .Mision(LoopI).Recompensa.Objeto(1 To .Cantidades.CantidadRecompensaMisiones(LoopI).CantidadDeObjetos) As Obj
  206. 310 ReDim .Mision(LoopI).Recompensa.Buffs(1 To .Cantidades.CantidadRecompensaMisiones(LoopI).CantidadDeBuffs) As eBuffs
  207. 320 ReDim .Mision(LoopI).Objetivo.ComprarObjeto(1 To .Cantidades.CantidadMisionesDatos(LoopI).CantidadDeObjetosAComprar) As tComprarObjeto
  208. 330 ReDim .Mision(LoopI).Objetivo.MatarNPC.Objeto(1 To .Cantidades.CantidadMisionesDatos(LoopI).CantidadDeObjetosAConseguirEnNPCs) As tMatarNPCObjeto
  209.  
  210.  
  211. 320 Next LoopI
  212. 330 End With
  213. 340 End With
  214. 350 Next LoopC
  215.  
  216. Exit Sub
  217. error:
  218. Call LogError("Error en Cargar_Cantidades, línea: " & Erl & ", error: " & Err.description)
  219.  
  220. End Sub
  221.  
  222. Public Sub Cargar_ID_Misioneros(ByVal ID As Integer)
  223.  
  224. On Error GoTo error
  225.  
  226. 10 If MisionerosContados >= CantidadDeMisioneros Then Exit Sub
  227. 20 MisionerosContados = MisionerosContados + 1
  228. 30 Misionero(MisionerosContados).ID = ID
  229.  
  230. Exit Sub
  231. error:
  232. Call LogError("Error en Cargar_ID_Misioneros, línea: " & Erl & ", error: " & Err.description)
  233.  
  234. End Sub
  235.  
  236. Public Sub Cargar_Misioneros()
  237.  
  238. On Error GoTo error
  239.  
  240. 90 Dim LoopZ As Long
  241. 100 Dim LoopC As Long
  242. 110 Dim loopX As Long
  243. 120 Dim strReadfield As String
  244. 130 Dim Ascii As Integer
  245. 140 Ascii = Asc("-")
  246.  
  247. 150 Call Leer.Initialize(DatPath & "\Misioneros.dat")
  248.  
  249. 160 For LoopC = 1 To CantidadDeMisioneros
  250. 170 With Misionero(LoopC)
  251. 180 strReadfield = Leer.GetValue("Misionero" & LoopC, "Posicion")
  252. 190 .Pos.Map = CInt(ReadField(1, strReadfield, Ascii))
  253. 200 .Pos.X = CByte(ReadField(2, strReadfield, Ascii))
  254. 210 .Pos.Y = CByte(ReadField(3, strReadfield, Ascii))
  255. 220 .Oro = CLng(Leer.GetValue("Misionero" & LoopC, "Oro"))
  256.  
  257. 230 For loopX = 1 To Contadores.CantidadHombres
  258. 240 With .Hombre(loopX).CompradorObjetos
  259. 250 .Nombre = Leer.GetValue("Misionero" & LoopC, "Hombre comprador de objetos nombre [" & loopX & "]")
  260. 260 .Reputacion = CInt(Leer.GetValue("Misionero" & LoopC, "Hombre comprador de objetos reputacion [" & loopX & "]"))
  261. 270 .EnMision = CBool(Leer.GetValue("Misionero" & LoopC, "Hombre comprador de objetos está en mision [" & loopX & "]"))
  262. 280 End With
  263. 290 With .Hombre(loopX).MatadorDeNPC
  264. 300 .Nombre = Leer.GetValue("Misionero" & LoopC, "Hombre matador de NPC's nombre [" & loopX & "]")
  265. 310 .Reputacion = CInt(Leer.GetValue("Misionero" & LoopC, "Hombre matador de NPC's reputacion [" & loopX & "]"))
  266. 320 .EnMision = CBool(Leer.GetValue("Misionero" & LoopC, "Hombre matador de NPC's está en misión [" & loopX & "]"))
  267. 330 End With
  268. 340 With .Hombre(loopX).MatadorUsuarios
  269. 350 .Nombre = Leer.GetValue("Misionero" & LoopC, "Hombre matador usuarios nombre [" & loopX & "]")
  270. 360 .Reputacion = CInt(Leer.GetValue("Misionero" & LoopC, "Hombre matador de usuarios reputacion [" & loopX & "]"))
  271. 370 .EnMision = CBool(Leer.GetValue("Misionero" & LoopC, "Hombre matador usuarios está en misión [" & loopX & "]"))
  272. 380 End With
  273. 390 With .Hombre(loopX).Mensajero
  274. 400 .Nombre = Leer.GetValue("Misionero" & LoopC, "Hombre mensajero nombre [" & loopX & "]")
  275. 410 .Reputacion = CInt(Leer.GetValue("Misionero" & LoopC, "Hombre mensajero reputacion [" & loopX & "]"))
  276. 420 .EnMision = CBool(Leer.GetValue("Misionero" & LoopC, "Hombre mensajero en misión [" & loopX & "]"))
  277. 430 End With
  278. 440 Next loopX
  279.  
  280. 450 For loopX = 1 To .Cantidades.CantidadObjetos
  281. 460 strReadfield = Leer.GetValue("Misionero" & LoopC, "Objetos que puede llegar a construir el misionero [" & loopX & "]")
  282. 470 .Objeto(loopX).ObjIndex = CInt(ReadField(1, strReadfield, Ascii))
  283. 480 .Objeto(loopX).Amount = CInt(ReadField(2, strReadfield, Ascii))
  284. 490 Next loopX
  285.  
  286. 500 For loopX = 1 To .Cantidades.CantidadMisiones
  287. 510 .Mision(loopX).Costo = CLng(Leer.GetValue("Misionero" & LoopC, "Costo de la misión [" & loopX & "]"))
  288. 520 .Mision(loopX).Descripcion = Leer.GetValue("Misionero" & LoopC, "Descripcion de la misión [" & loopX & "]")
  289. 530 .Mision(loopX).Tiempo = CInt(Leer.GetValue("Misionero" & LoopC, "Tiempo que lleva hacer la misión [" & loopX & "]"))
  290.  
  291. 540 For LoopZ = 1 To .Cantidades.CantidadMisionesDatos.CantidadDeObjetosAComprar
  292. 550 strReadfield = Leer.GetValue("Misionero" & LoopC, "Objeto [" & LoopZ & "] a comprar en la misión [" & loopX & "]")
  293. 560 .Mision(loopX).Objetivo.ComprarObjeto.Objeto(LoopZ).Amount = CInt(ReadField(2, strReadfield, Ascii))
  294. 570 .Mision(loopX).Objetivo.ComprarObjeto.Objeto(LoopZ).ObjIndex = CInt(ReadField(1, strReadfield, Ascii))
  295. 580 Next LoopZ
  296.  
  297. 590 For LoopZ = 1 To .Cantidades.CantidadMisionesDatos.CantidadDeObjetosAConseguirEnNPCs
  298. 600 strReadfield = Leer.GetValue("Misionero" & LoopC, "Objeto [" & LoopZ & "] a conseguir matando un NPC en la misión [" & loopX & "]")
  299. 610 .Mision(loopX).Objetivo.MatarNPC.Objeto(LoopZ).Objeto.ObjIndex = CInt(ReadField(1, strReadfield, Ascii))
  300. 620 .Mision(loopX).Objetivo.MatarNPC.Objeto(LoopZ).Objeto.Amount = CInt(ReadField(2, strReadfield, Ascii))
  301. 630 .Mision(loopX).Objetivo.MatarNPC.Objeto(LoopZ).LoTiene = CBool(Leer.GetValue("Misionero" & LoopC, "¿Tiene el objeto [" & LoopZ & "]? Misión: [" & loopX & "]"))
  302. 640 Next LoopZ
  303.  
  304.  
  305. 650 .Mision(loopX).Objetivo.MatarUsuario.Faccion = CByte(Leer.GetValue("Misionero" & LoopC, "Faccion del usuario a matar en la misión [" & loopX & "]"))
  306. 660 .Mision(loopX).Objetivo.MatarUsuario.Nivel = CByte(Leer.GetValue("Misionero" & LoopC, "Nivel del usuario a matar en la misión [" & loopX & "]"))
  307. 670 .Mision(loopX).Objetivo.MatarUsuario.Nombre = Leer.GetValue("Misionero" & LoopC, "Nombre del usuario a matar en la misión [" & loopX & "]")
  308. 680 .Mision(loopX).Objetivo.MatarUsuario.razon = CByte(Leer.GetValue("Misionero" & LoopC, "Razón del usuario a matar en la misión [" & loopX & "]"))
  309. 690 .Mision(loopX).Objetivo.MatarUsuario.Pos = CInt(Leer.GetValue("Misionero" & LoopC, "Mapa del usuario a matar en la misión [" & loopX & "]"))
  310.  
  311. 123 Next loopX
  312. 123 End With
  313. 123 Next LoopC
  314.  
  315. Exit Sub
  316. error:
  317. Call LogError("Error en Cargar_Misioneros, línea: " & Erl & ", error: " & Err.description)
  318.  
  319. End Sub
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement