AGREGAR MONTURA

Estado
Cerrado para nuevas respuestas.

RubenDario

Newbie Lvl 1
hola gente, bueno kisiera saber como hacer para agregar montura a mi servidor, si alguien sabe por favor q me conteste.
desde ya muchas gracias.
 

AzaGaL

Destructor Lvl 5
RubenDario dijo:
hola gente, bueno kisiera saber como hacer para agregar montura a mi servidor, si alguien sabe por favor q me conteste.
desde ya muchas gracias.

Primero tienes que Indexar el Grafico de la montura... despues Indexar>TODO>Completo (Graficos.ini)

a eso te refieres?
 

RubenDario

Newbie Lvl 1
Si consulto es porq no se, sino no estaria preguntando aca.
y se buscar pero no encuentro el boton.! kaajajaja.

Ahora, hablando encerio, si a eso me refiero, pero no podrias ser mas especifico en explicar, soy nuevo en el tema.
Muchas gracias-
 

Harry Panzer

Destructor Lvl 3
Vos querés agregar el código para monturas, o querés indexar Gráficos, para ver el caballito que corre alegre de la vida?
 

Kajjin

Aprendiz Lvl 2
aca est

Aca te dejo el code.
Realizado por Shura.
EDIT:NO me salio , perdon a la comunidad.Te dejo el link
http://gs-zone.org/foro/viewtopic.php?t=5929&highlight=monturas

'*********************************************************
'Author: Pablo Ezequiel Jurio (Shura)
'Code Date: 04/19/07
'News: Min And Max Objet Defense And Atack, Real, Caos Or
'Normal Object, MinSkill Needed To Use It (Monturas), New
'Skill Equitation (Equitacion), Remove Skill Luck (Suerte)
'*********************************************************


Server

Buscamos En Declares.bas:

Código de Visual Basic: otManchas = 35


Y Debajo Agregamos:

Código de Visual Basic: otMontura = 36


Ahora Buscamos:

Código de Visual Basic: Navegando As Byte


Y Debajo Agregamos:

Código de Visual Basic: Montado As Byte


Ahora Buscamos:

Código de Visual Basic: Public Enum eSkill
Suerte = 1
...


Y Lo Reemplazamos Por:

Código de Visual Basic: Public Enum eSkill
Equitacion = 1
...


Buscamos En FileIO.bas Dentro De LoadObjData:

Código de Visual Basic: Case eOBJType.otBarcos
ObjData(Object).MinSkill = val(Leer.GetValue("OBJ" & Object, "MinSkill"))
ObjData(Object).MaxHIT = val(Leer.GetValue("OBJ" & Object, "MaxHIT"))
ObjData(Object).MinHIT = val(Leer.GetValue("OBJ" & Object, "MinHIT"))


Y Debajo Agregamos:

Código de Visual Basic: Case eOBJType.otMontura Then
ObjData(Object).MaxHIT = val(Leer.GetValue("OBJ" & Object, "MaxHIT"))
ObjData(Object).MinHIT = val(Leer.GetValue("OBJ" & Object, "MinHIT"))
ObjData(Object).MinDef = val(Leer.GetValue("OBJ" & Object, "MINDEF"))
ObjData(Object).MaxDef = val(Leer.GetValue("OBJ" & Object, "MAXDEF"))
ObjData(Object).MinSkill = val(Leer.GetValue("OBJ" & Object, "MinSkill"))
ObjData(Object).Real = val(Leer.GetValue("OBJ" & Object, "Real"))
ObjData(Object).Caos = val(Leer.GetValue("OBJ" & Object, "Caos"))


Buscamos En InvUsuario Dentro Del Sub DropObj:

Código de Visual Basic: If ObjData(Obj.ObjIndex).OBJType = eOBJType.otBarcos Then
Call WriteConsoleMsg(UserIndex, "¡¡ATENCION!! ¡ACABAS DE TIRAR TU BARCA!", FontTypeNames.FONTTYPE_TALK)
End If


Y Debajo Agregamos:

Código de Visual Basic: If ObjData(Obj.ObjIndex).ObjType = eOBJType.otMontura Then
Call WriteConsoleMsg(UserIndex, "¡¡ATENCION!! ¡ACABAS DE TIRAR TU MONTURA!" & FontTypeNames.FONTTYPE_TALK)
End If


Buscamos En El Sub UseInvItem:

Código de Visual Basic: Case eOBJType.otBarcos
'Verifica si esta aproximado al agua antes de permitirle navegar
If UserList(UserIndex).Stats.ELV eClass.Fisher And UserList(UserIndex).clase eClass.Pirat Then
Call WriteConsoleMsg(UserIndex, "Para recorrer los mares debes ser nivel 25 o superior.", FontTypeNames.FONTTYPE_INFO)
Exit Sub
Else
If UserList(UserIndex).Stats.ELV 0 Then
UserList(UserIndex).Char.Body = ObjData(UserList(UserIndex).Invent.ArmourEqpObjIndex).Ropaje
Else
Call DarCuerpoDesnudo(UserIndex)
End If

If UserList(UserIndex).Invent.EscudoEqpObjIndex > 0 Then _
UserList(UserIndex).Char.ShieldAnim = ObjData(UserList(UserIndex).Invent.EscudoEqpObjIndex).ShieldAnim
If UserList(UserIndex).Invent.WeaponEqpObjIndex > 0 Then _
UserList(UserIndex).Char.WeaponAnim = ObjData(UserList(UserIndex).Invent.WeaponEqpObjIndex).WeaponAnim
If UserList(UserIndex).Invent.CascoEqpObjIndex > 0 Then _
UserList(UserIndex).Char.CascoAnim = ObjData(UserList(UserIndex).Invent.CascoEqpObjIndex).CascoAnim
Else
UserList(UserIndex).Char.Body = iCuerpoMuerto
UserList(UserIndex).Char.Head = iCabezaMuerto
UserList(UserIndex).Char.ShieldAnim = NingunEscudo
UserList(UserIndex).Char.WeaponAnim = NingunArma
UserList(UserIndex).Char.CascoAnim = NingunCasco
End If
End If
Call ChangeUserChar(UserIndex, UserList(UserIndex).Char.body, UserList(UserIndex).Char.Head, UserList(UserIndex).Char.heading, UserList(UserIndex).Char.WeaponAnim, UserList(UserIndex).Char.ShieldAnim, UserList(UserIndex).Char.CascoAnim)
Call WriteEquiteToggle(UserIndex)

End Sub


Ahora Buscamos En TCP.bas En ResetUserFlags:

Código de Visual Basic: .Navegando = 0


Y Debajo Agregamos:

Código de Visual Basic: .Montado = 0


Buscamos En ModHechizos.bas En HechizoEstadoUsuario:

Código de Visual Basic: If UserList(tU).flags.Navegando = 1 Then
Exit Sub
End If
If UserList(UserIndex).flags.Navegando = 1 Then
Exit Sub
End If


Y Debajo Agregamos:

Código de Visual Basic: If UserList(tU).flags.Montado = 1 Then
Exit Sub
End If
If UserList(UserIndex).flags.Montado = 1 Then
Exit Sub
End If


Buscamos En EquiparInvItem:

Código de Visual Basic: Case eOBJType.otArmadura
If UserList(UserIndex).flags.Navegando = 1 Then Exit Sub


Y Lo Reemplazamos Por

Código de Visual Basic: Case eOBJType.otArmadura
If UserList(UserIndex).flags.Navegando = 1 Or UserList(UserIndex).flags.Montado = 1 Then Exit Sub


Luego Repetimos Lo Mismo Con “Case eOBJType.otCASCO”, “Case eOBJType.otESCUDO”.
Ahora Buscamos En SistemaCombate.bas, UserDañoNPC:

Código de Visual Basic: If UserList(UserIndex).flags.Navegando = 1 And UserList(UserIndex).Invent.BarcoObjIndex > 0 Then _
daño = daño + RandomNumber(ObjData(UserList(UserIndex).Invent.BarcoObjIndex).MinHIT, ObjData(UserList(UserIndex).Invent.BarcoObjIndex).MaxHIT)


Y Debajo Agregamos:

Código de Visual Basic: If UserList(UserIndex).flags.Montado = 1 And UserList(UserIndex).Invent. MonturaObjIndex > 0 Then _
daño = daño + RandomNumber(ObjData(UserList(UserIndex).Invent. MonturaObjIndex).MinHIT, ObjData(UserList(UserIndex).Invent. MonturaObjIndex).MaxHIT)


Luego Vamos A NPCDaño Y Buscamos:

Código de Visual Basic: If UserList(UserIndex).flags.Navegando = 1 And UserList(UserIndex).Invent.BarcoObjIndex > 0 Then
Obj = ObjData(UserList(UserIndex).Invent.BarcoObjIndex)
defbarco = RandomNumber(Obj.MinDef, Obj.MaxDef)
End If


Y Debajo Agregamos:

Código de Visual Basic: Dim defMontura As Integer
If UserList(UserIndex).flags.Montado = 1 And UserList(UserIndex).Invent.MonturaObjIndex > 0 Then
Obj = ObjData(UserList(UserIndex).Invent.MonturaObjIndex)
defMontura = RandomNumber(Obj.MinDef, Obj.MaxDef)
End If


Ahora Buscamos En NpcAtacaUser:

Código de Visual Basic: If UserList(UserIndex).flags.Meditando = False Then
If UserList(UserIndex).flags.Navegando = 0 Then
Call SendData(SendTarget.ToPCArea, UserIndex, PrepareMessageCreateFX(UserList(UserIndex).Char.CharIndex, FXSANGRE, 0))
End If
End If


Y Lo Reemplazamos Por:

Código de Visual Basic: If UserList(UserIndex).flags.Meditando = False Then
If UserList(UserIndex).flags.Navegando = 0 Or UserList(UserIndex).flags.Montado = 0 Then
Call SendData(SendTarget.ToPCArea, UserIndex, PrepareMessageCreateFX(UserList(UserIndex).Char.CharIndex, FXSANGRE, 0))
End If
End If


Ahora Vamos A UsuarioAtacaUsuario Y Buscamos:

Código de Visual Basic: If UserList(VictimaIndex).flags.Navegando = 0 Then
Call SendData(SendTarget.ToPCArea, VictimaIndex, PrepareMessageCreateFX(UserList(VictimaIndex).Char.CharIndex, FXSANGRE, 0))
End If


Y Lo Reemplazamos Por:

Código de Visual Basic: If UserList(VictimaIndex).flags.Navegando = 0 Or UserList(VictimaIndex).flags.Montado = 0 Then
Call SendData(SendTarget.ToPCArea, VictimaIndex, PrepareMessageCreateFX(UserList(VictimaIndex).Char.CharIndex, FXSANGRE, 0))
End If


Ahora Vamos A UserDañoUser Y Buscamos:

Código de Visual Basic: If UserList(AtacanteIndex).flags.Navegando = 1 And UserList(AtacanteIndex).Invent.BarcoObjIndex > 0 Then
Obj = ObjData(UserList(AtacanteIndex).Invent.BarcoObjIndex)
daño = daño + RandomNumber(Obj.MinHIT, Obj.MaxHIT)
End If

If UserList(VictimaIndex).flags.Navegando = 1 And UserList(VictimaIndex).Invent.BarcoObjIndex > 0 Then
Obj = ObjData(UserList(VictimaIndex).Invent.BarcoObjIndex)
defbarco = RandomNumber(Obj.MinDef, Obj.MaxDef)
End If


Y Debajo Agregamos:

Código de Visual Basic: If UserList(AtacanteIndex).flags.Montado = 1 And UserList(AtacanteIndex).Invent.MonturaObjIndex > 0 Then
Obj = ObjData(UserList(AtacanteIndex).Invent.MonturaObjIndex)
daño = daño + RandomNumber(Obj.MinHIT, Obj.MaxHIT)
End If

If UserList(VictimaIndex).flags.Montado = 1 And UserList(VictimaIndex).Invent.MonturaObjIndex > 0 Then
Obj = ObjData(UserList(VictimaIndex).Invent.MonturaObjIndex)
defbarco = RandomNumber(Obj.MinDef, Obj.MaxDef)
End If


Ahora Nos Dirijimos A Protocol.bas A HandleDrop Y Buscamos:

Código de Visual Basic: If .flags.Navegando = 1 Or _
.flags.Muerto = 1 Or _
((.flags.Privilegios And PlayerType.Consejero) 0 And (Not .flags.Privilegios And PlayerType.RoleMaster) 0) Then Exit Sub


Y Lo Reemplazamos Por:

Código de Visual Basic: If .flags.Navegando = 1 Or _
.flags.Muerto = 1 Or _
.flags.Montado = 1 Or _
((.flags.Privilegios And PlayerType.Consejero) 0 And (Not .flags.Privilegios And PlayerType.RoleMaster) 0) Then Exit Sub


Ahora Vamos A HandleUserCommerceOffer Y Buscamos:

Código de Visual Basic: If .flags.Navegando = 1 Then
If .Invent.BarcoSlot = Slot Then
Call WriteConsoleMsg(UserIndex, "No podés vender tu barco mientras lo estés usando.", FontTypeNames.FONTTYPE_TALK)
Exit Sub
End If
End If


Y Debajo Agregamos:

Código de Visual Basic: If .flags.Montadodo = 1 Then
If .Invent.MonturaSlot = Slot Then
Call WriteConsoleMsg(UserIndex, "No podés vender tu montura mientras la estés usando.", FontTypeNames.FONTTYPE_TALK)
Exit Sub
End If
End If


Ahora Buscamos:

Código de Visual Basic: Public Sub HandleNavigateToggle(ByVal UserIndex As Integer)
'***************************************************
'Author: Juan Martín Sotuyo Dodero (Maraxus)
'Last Modification: 01/12/07
'
'***************************************************
With UserList(UserIndex)
'Remove Packet ID
Call .incomingData.ReadByte

If .flags.Privilegios And (PlayerType.User Or PlayerType.Consejero) Then Exit Sub

If .flags.Navegando = 1 Then
.flags.Navegando = 0
Else
.flags.Navegando = 1
End If

'Tell the client that we are navigating.
Call WriteNavigateToggle(UserIndex)
End With
End Sub


Y Debajo Agregamos:

Código de Visual Basic: Public Sub HandleEquiteToggle(ByVal UserIndex As Integer)
With UserList(UserIndex)
'Remove Packet ID
Call .incomingData.ReadByte

If .flags.Privilegios And (PlayerType.User Or PlayerType.Consejero) Then Exit Sub

If .flags.Montadodo = 1 Then
.flags.Montadodo = 0
Else
.flags.Montado = 1
End If

'Tell the client that we are Equiting.
Call WriteEquiteToggle(UserIndex)
End With
End Sub


Ahora Buscamos:

Código de Visual Basic: Public Sub WriteNavigateToggle(ByVal UserIndex As Integer)
'***************************************************
'Author: Juan Martín Sotuyo Dodero (Maraxus)
'Last Modification: 05/17/06
'Writes the "NavigateToggle" message To the given user's outgoing data buffer
'***************************************************
Call UserList(UserIndex).outgoingData.WriteByte(ServerPacketID.NavigateToggle)
End Sub


Y Debajo Agregamos:

Código de Visual Basic: Public Sub WriteEquiteToggle(ByVal UserIndex As Integer)
Call UserList(UserIndex).outgoingData.WriteByte(ServerPacketID.EquiteToggle)
End Sub


Ahora Vamos A TCP.bas Y En ConnectUser Buscamos:

Código de Visual Basic: If UserList(UserIndex).Invent.BarcoObjIndex > 0 Then
UserList(UserIndex).Char.body = ObjData(UserList(UserIndex).Invent.BarcoObjIndex).Ropaje
UserList(UserIndex).Char.Head = 0
UserList(UserIndex).Char.WeaponAnim = NingunArma
UserList(UserIndex).Char.ShieldAnim = NingunEscudo
UserList(UserIndex).Char.CascoAnim = NingunCasco
UserList(UserIndex).flags.Navegando = 1
End If


Y Debajo Agregamos:

Código de Visual Basic: If UserList(UserIndex).Invent.MonturaObjIndex > 0 Then
UserList(UserIndex).Char.body = ObjData(UserList(UserIndex).Invent.BarcoObjIndex).Ropaje
UserList(UserIndex).Char.Head = 0
UserList(UserIndex).Char.WeaponAnim = NingunArma
UserList(UserIndex).Char.ShieldAnim = NingunEscudo
UserList(UserIndex).Char.CascoAnim = NingunCasco
UserList(UserIndex).flags.Montado = 1
End If


Ahora Buscamos:

Código de Visual Basic: If UserList(UserIndex).flags.Navegando = 1 Then
Call WriteNavigateToggle(UserIndex)
End If


Y Debajo Agregamos:

Código de Visual Basic: If UserList(UserIndex).flags.Montado = 1 Then
Call WriteEquiteToggle(UserIndex)
End If


Ahora Vamos A General.bas Y En Main Buscamos:

Código de Visual Basic: SkillsNames(eSkill.Suerte) = "Suerte"


Y Reemplazamos Por:

Código de Visual Basic: SkillsNames(eSkill.Equitacion) = "Equitacion"


Ahora Vamos A TCP.bas Y Buscamos:

Código de Visual Basic: UserList(UserIndex).Stats.UserSkills(eSkill.Suerte) = US1


Y Lo Reemplazamos Por:

Código de Visual Basic: UserList(UserIndex).Stats.UserSkills(eSkill.Equitacion) = US1


Con Esto Terminamos Con El Servidor Ahora Es El Turno Del Cliente JiJi

Cliente

En Protocol.bas Buscamos:

Código de Visual Basic: Private Sub HandleNavigateToggle()
'***************************************************
'Autor: Juan Martín Sotuyo Dodero (Maraxus)
'Last Modification: 05/17/06
'
'***************************************************
'Remove packet ID
Call incomingData.ReadByte

UserNavegando = Not UserNavegando
End Sub


Y Debajo Agregamos:

Código de Visual Basic: Private Sub HandleNavigateToggle()
'Remove packet ID
Call incomingData.ReadByte

UserMontado = Not UserMontado
End Sub


Ahora Buscamos:

Código de Visual Basic: Public Sub WriteNavigateToggle()
'***************************************************
'Autor: Juan Martín Sotuyo Dodero (Maraxus)
'Last Modification: 05/17/06
'Writes the "NavigateToggle" message To the outgoing data buffer
'***************************************************
Call outgoingData.WriteByte(ClientPacketID.NavigateToggle)
End Sub


Y Debajo Agregamos:

Código de Visual Basic: Public Sub WriteEquiteToggle()
Call outgoingData.WriteByte(ClientPacketID.EquiteToggle)
End Sub


Luego Vamos A HandleDisconect Y Buscamos:

Código de Visual Basic: UserNavegando = False


Y Debajo Agregamos:

Código de Visual Basic: UserMontado = False


Ahora Buscamos En Declares.bas:

Código de Visual Basic: Public Enum eSkill
Suerte = 1
...


Y Lo Reemplazamos Por:

Código de Visual Basic: Public Enum eSkill
Equitacion = 1
...


Ahora Buscamos:

Código de Visual Basic: Public UserNavegando As Boolean


Y Debajo Agregamos:

Código de Visual Basic: Public UserMontado As Boolean


Ahora Vamos A General.bas Y Buscamos:

Código de Visual Basic: SkillsNames(eSkill.Suerte) = "Suerte"


Y Lo Reemplazamos Por:

Código de Visual Basic: SkillsNames(eSkill.Equitacion) = "Equitacion"
 
Estado
Cerrado para nuevas respuestas.
Arriba