GS-Zone

Hacer que determinado item no se caiga del inventario al morir(IAO Clon) Ir al Indice

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

13

Nota » 02 Ene 2012 13:53

Con esto hareis con que todos los items que querais crear o editar para que no se caigan del inventario a la hora de morir... que tanto dolor de cabeza me ha dado y alfinal tan simple T_T...

Primero hay que declarar el nuevo tipo de objeto:

Busca en Declaraciones:



Y por encima pon el numero siguiente al ultimo objeto anteriormente marcado, por ejemplo queremos crear un par de PocionesMaster (en este caso se llamaria otPocionesMaster) y que no se caigan, y el ultimo tipo de objeto declarado eran los anillos, quedaria asi:

  1. otAnillos = 47
  2.     otPocionesMaster = 48
  3.     otCualquiera = 1000



Luego tendriais que ir al LoadObjData para que se cargue ese objeto y pondriamos una funcion semejante a las pociones normales, para que sea mas facil buscais:

  1. Case otPociones
  2.                 ObjData(Object).TipoPocion = val(Leer.GetValue("OBJ" & Object, "TipoPocion"))
  3.                 ObjData(Object).MaxModificador = val(Leer.GetValue("OBJ" & Object, "MaxModificador"))
  4.                 ObjData(Object).MinModificador = val(Leer.GetValue("OBJ" & Object, "MinModificador"))
  5.                 ObjData(Object).DuracionEfecto = val(Leer.GetValue("OBJ" & Object, "DuracionEfecto"))


y reemplazais por:

  1. Case otPociones
  2.                 ObjData(Object).TipoPocion = val(Leer.GetValue("OBJ" & Object, "TipoPocion"))
  3.                 ObjData(Object).MaxModificador = val(Leer.GetValue("OBJ" & Object, "MaxModificador"))
  4.                 ObjData(Object).MinModificador = val(Leer.GetValue("OBJ" & Object, "MinModificador"))
  5.                 ObjData(Object).DuracionEfecto = val(Leer.GetValue("OBJ" & Object, "DuracionEfecto"))
  6.  
  7. Case otPocionesMaster
  8.                 ObjData(Object).TipoPocion = val(Leer.GetValue("OBJ" & Object, "TipoPocion"))
  9.                 ObjData(Object).MaxModificador = val(Leer.GetValue("OBJ" & Object, "MaxModificador"))
  10.                 ObjData(Object).MinModificador = val(Leer.GetValue("OBJ" & Object, "MinModificador"))
  11.                 ObjData(Object).DuracionEfecto = val(Leer.GetValue("OBJ" & Object, "DuracionEfecto"))



Despues vais al UseInvItem para poderlas usar cuando las teneis en el inventario y buscais por :

  1. Case eOBJType.otPociones
  2.         If .flags.Muerto = 1 Then


y arriba poneis:
  1. Case eOBJType.otPocionesMaster
  2.         If .flags.Muerto = 1 Then
  3.             Call WriteConsoleMsg(1, UserIndex, "¡¡Estas muerto!! Solo podes usar items cuando estas vivo. ", FontTypeNames.FONTTYPE_INFO)
  4.             Exit Sub
  5.         End If
  6.        
  7.         If Not IntervaloPermiteGolpeUsar(UserIndex, False) Then
  8.             Call WriteConsoleMsg(1, UserIndex, "¡¡Debes esperar unos momentos para tomar otra poción!!", FontTypeNames.FONTTYPE_INFO)
  9.             Exit Sub
  10.         End If
  11.        
  12.         .flags.TomoPocion = True
  13.         .flags.TipoPocion = Obj.TipoPocion
  14.                
  15.         Select Case .flags.TipoPocion
  16.        
  17.             Case 1 'Modif la agilidad
  18.                 .flags.DuracionEfecto = Obj.DuracionEfecto
  19.        
  20.                 'Usa el item
  21.                 .Stats.UserAtributos(eAtributos.Agilidad) = .Stats.UserAtributos(eAtributos.Agilidad) + RandomNumber(Obj.MinModificador, Obj.MaxModificador)
  22.                 If .Stats.UserAtributos(eAtributos.Agilidad) > MAXATRIBUTOS Then _
  23.                     .Stats.UserAtributos(eAtributos.Agilidad) = MAXATRIBUTOS
  24.  
  25.                 'Quitamos del inv el item
  26.                 Call QuitarUserInvItem(UserIndex, Slot, 1)
  27.                 Call SendData(SendTarget.ToPCArea, UserIndex, PrepareMessagePlayWave(SND_BEBER, .Pos.X, .Pos.Y))
  28.                
  29.                 Call WriteAgilidad(UserIndex)



Ahora para que no se caiga, buscais:
  1. ObjData(index).OBJType <> eOBJType.otMonturas And _


Y debajo ponen:
  1. ObjData(index).OBJType <> eOBJType.otPocionesMaster And _



Y listo de codigo todo echo, luego hay que ir a obj.dat y poner alfinal de la lista de tipos de objetos:

' 44 Monturas
' 45 Puestos de Entrenamiento
' 46 Nudillos para Artes Marciales
' 47 Anillos Habilitadores de Hechizos
' 48 PocionesMaster (Agregais el tipo de objeto)

Luego creais la pocion y poneis en los datos
ObjType=48


Si ta mal avisar donde porfis :P
Última edición por ZoLTaR el 05 Ene 2012 22:18, editado 2 veces en total

Administrador de CruzNegrAO (Servidor Mundial Style IAO Pero Mas Desarrollado...)
http://www.cruznegrao.webs.com
RaZoV - lLider de CruzNegra|
454
Aprendiz [2]
Registrado: Diciembre 2011
Ubicación: Portugal
Mensajes: 259
Aportes: 2

Nota » 02 Ene 2012 13:54

TEnes que poner

Itemsecae=1

Así lo prohibe

Imagen
@lautamarino
531
Oraculo [5]
Registrado: Octubre 2011
Mensajes: 2034
Aportes: 46
Premios: 1
Embajador (1)

Nota » 02 Ene 2012 16:23

Fijate que tienen de distinto los items que se caen con los que no(monturas etc) en los dats y anda probando :P

Imagen
Usuario Registrado
388
Aprendiz [1]
Registrado: Años de membresía
Mensajes: 226

Nota » 02 Ene 2012 18:50

No sirvio shak, no deja. Es que esto ta echo en el codigo, quedando algo asi:

ItemSeCae= Todos los objectos <> otmonturas
<> otnavegacion

ya pense hacer un nuevo ot para ropas q no se caen y poner <> otNoSeCae
...
Pero como ya tengo los objectos en el obj.dat con
NoSeCae =1

Me gustaria saber como codeo en el server para que lea el obj.dat y vea los NoSeCae=1 (activado)

Administrador de CruzNegrAO (Servidor Mundial Style IAO Pero Mas Desarrollado...)
http://www.cruznegrao.webs.com
RaZoV - lLider de CruzNegra|
454
Aprendiz [2]
Registrado: Diciembre 2011
Ubicación: Portugal
Mensajes: 259
Aportes: 2

Nota » 02 Ene 2012 19:15

En el server Busca:

  1. Sub UserDie(ByVal UserIndex As Integer)


En su interior busca:

  1.            If Not EsNewbie(UserIndex) Then
  2.                 If UserList(UserIndex).flags.Plantando = 0 Then
  3.                 Call TirarTodo(UserIndex)
  4.                 End If
  5.             Else
  6.                 Call TirarTodosLosItemsNoNewbies(UserIndex)
  7.             End If
  8.         End If


y lo borras

Imagen
★★★★★
419
Aprendiz [5]
Registrado: Años de membresía
Mensajes: 401
Aportes: 6

Nota » 02 Ene 2012 19:41

Muy bien ya entendi la intencion :) asi los demas equipos que yo quiera que no se caigan, voy al dat y pongo ej:
Armadura, pongo tipo armadura newbie
arma, arma newbie , etc :) ahi lo pruebo y digo si funca ;)

Administrador de CruzNegrAO (Servidor Mundial Style IAO Pero Mas Desarrollado...)
http://www.cruznegrao.webs.com
RaZoV - lLider de CruzNegra|
454
Aprendiz [2]
Registrado: Diciembre 2011
Ubicación: Portugal
Mensajes: 259
Aportes: 2

Nota » 02 Ene 2012 19:44

ZoLTaR escribió:Muy bien ya entendi la intencion :) asi los demas equipos que yo quiera que no se caigan, voy al dat y pongo ej:
Armadura, pongo tipo armadura newbie
arma, arma newbie , etc :) ahi lo pruebo y digo si funca ;)


Al hacer lo que te dijo bywolf no se te vana caer los items de ninguna clase

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

Nota » 02 Ene 2012 20:02

Nop no era bien eso :P eso lo que hace es que las ropas no se caigan pero yo quiero que cualquier item que sea , que yo en el dat ponga NoSeCae=1 no se caigan . Nose si me hago entender :P

Eso entendi despues :P xD

Administrador de CruzNegrAO (Servidor Mundial Style IAO Pero Mas Desarrollado...)
http://www.cruznegrao.webs.com
RaZoV - lLider de CruzNegra|
454
Aprendiz [2]
Registrado: Diciembre 2011
Ubicación: Portugal
Mensajes: 259
Aportes: 2

Nota » 02 Ene 2012 20:11

No se fijate poniendo

Plantando = 1

en el item que no quieras que se caiga fijate

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

Nota » 03 Ene 2012 10:21

Para los que usan IAO Clon aqui va la solucion... vais al buscador y ponen ITEMSECAE, veran que no se caen otmonturas(todo el objecto del tipo monturas) y otnavegaciones, poneis la misma frase que la de otmonturas pero cambiais por otObjEterno (por ejemplo :P) luego poneis en el buscador otmonturas hasta que os salga la lista de los tipos de objetos, otmontura, ot navegacion etcetc y al final de todo y antes del numero limite de tipos de objetos poneis vuestro tipo de objeto que no se caera(en este caso otObjEterno) y listo. Luego en obj.dat abajo de los demas tipos pongan en ultimo lugar(imaginemos que es anillos habilitadores de hechizos 47,poneis 48 y el vuestro(en este caso ObjEterno) y en los objectos que quieran que no se caigan, ponen objType= 48.

Pueden cerrar. Espero haber ayudado.

Administrador de CruzNegrAO (Servidor Mundial Style IAO Pero Mas Desarrollado...)
http://www.cruznegrao.webs.com
RaZoV - lLider de CruzNegra|
454
Aprendiz [2]
Registrado: Diciembre 2011
Ubicación: Portugal
Mensajes: 259
Aportes: 2

Nota » 08 Ene 2012 04:33

esta testeado?

buen aporte!

¿Tu área de especialidad es Graficación o Mapeación? Te presento el proyecto serio que esperabas para trabajar...

~ Para que aprendas ~
821
Dragon Ancestral [2]
Registrado: Años de membresía
Mensajes: 2707
Aportes: 98

Nota » 08 Ene 2012 18:47

sipi , el que hace esto tendra una pocion o algo de esa categoria que no se caera mas en iao clon xD

Administrador de CruzNegrAO (Servidor Mundial Style IAO Pero Mas Desarrollado...)
http://www.cruznegrao.webs.com
RaZoV - lLider de CruzNegra|
454
Aprendiz [2]
Registrado: Diciembre 2011
Ubicación: Portugal
Mensajes: 259
Aportes: 2

Nota » 08 Ene 2012 20:43

Me hubiera servido un mes atras cuando buscaba como loco este aporte gracias wilson saludos!

Imagen
Tribal Peliculas
545
Oraculo [3]
Registrado: Años de membresíaAños de membresía
Ubicación: Colombia
Mensajes: 1553
Aportes: 4


Volver a Otras versiones

¿Quién está conectado?

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