Bueno, este codigo me lo pidio alguien por msn asi que aca lo tienen. Saben bien que si tienen algun problema o alguna duda pueden postear que voy a tratar de solucionarlo.
Buscamos Sub UseInvItem, y en ese sub nos posicionamos debajo de:
y ponemos:
Ahora vamos al modulo Declares y Buscamos:
y debajo de esto ponemos:
Buscamos:
y debajo ponemos :
Buscamos
y debajo ponemos:
Luego buscamos en el Sub LoadObjData buscamos:
y arriba de eso ponemos:
Y listo, ah si me olvida el dat
Del Objeto
Del Pirata:
Bueno eso es todo, fijense que trate de comentar el codigo lo mas que pude asi ven que hace cada coda .
Atte. Tales, Mr Man
Edit: Lo complete a pedido de alguien, ahora tenes que estar cerca de un Npc.
Buscamos Sub UseInvItem, y en ese sub nos posicionamos debajo de:
Código:
Select Case Obj.ObjType
Código:
' Tales
Case OBJTYPE_PASAJES
'Se asegura que el target es un npc
If UserList(UserIndex).flags.TargetNPC = 0 Then
Call SendData(ToIndex, UserIndex, 0, "||Primero tenes que seleccionar un personaje, hace click izquierdo sobre el." & FONTTYPE_INFO)
Exit Sub
End If
' Verificamos que sea el pirata
If Npclist(UserList(UserIndex).flags.TargetNPC).NPCtype <> 9 Then Exit Sub
' Si esta muy lejos no actua
If Distancia(UserList(UserIndex).Pos, Npclist(UserList(UserIndex).flags.TargetNPC).Pos) > 10 Then
Call SendData(ToIndex, UserIndex, 0, "||Estas demasiado lejos del pirata para tomar el pasaje." & FONTTYPE_INFO)
Exit Sub
End If
' Si esta muerto no puede usar el pasaje.
If UserList(UserIndex).flags.Muerto = 1 Then
Call SendData(ToIndex, UserIndex, 0, "||Estas muerto, solo los vivos pueden usar los pasajes!!!" & FONTTYPE_WARNING)
Exit Sub
End If
' Esta en zona Segura?
If MapInfo(UserList(UserIndex).Pos.Map).Pk = True Then
Call SendData(ToIndex, UserIndex, 0, "|| Debes estar en sona segura para utilizar un pasaje!!!" & FONTTYPE_INFO)
Exit Sub
End If
' Para prevenir que no se quede trabado el pj verificamos si el mapa de destino es un mapa valido.
If MapaValido(Obj.mapa) Then
' Transportamos al usuario
Call WarpUserChar(UserIndex, Obj.mapa, Obj.X, Obj.Y, True)
Call SendData(ToIndex, UserIndex, 0, "|| Has sido transportado." & FONTTYPE_INFO)
'Quitamos el item del inventario.
Call QuitarUserInvItem(UserIndex, Slot, 1)
Else
' Si no es un mapa valido se lo informamos al usuario.
Call SendData(ToIndex, UserIndex, 0, "|| El mapa al que se dirije el pase no es un mapa valido." & FONTTYPE_INFO)
exit sub
End If
Call UpdateUserInv(False, UserIndex, Slot)
Call SendUserStatsBox(UserIndex)
Exit Sub
' Tales
Ahora vamos al modulo Declares y Buscamos:
Código:
Public Const OBJTYPE_MANCHAS = 35
y debajo de esto ponemos:
Código:
Public Const OBJTYPE_PASAJES = 36
Buscamos:
Código:
Public Const NPCTYPE_GUARDIASCAOS = 8
Código:
' Tales declaramos al pirata
Public Const NPCTYPE_PIRATA = 9
' Tales
Buscamos
Código:
Public Type ObjData
Código:
' Tales
' Le damos los atributos al objeto.
Mapa As Integer
X As Integer
Y As Integer
' Tales
Luego buscamos en el Sub LoadObjData buscamos:
Código:
If ObjData(Object).ObjType = OBJTYPE_ARMOUR Then
Código:
' Tales
'Tomamos el destino del pasaje.
If ObjData(Object).ObjType = OBJTYPE_PASAJES Then
ObjData(Object).mapa = val(Leer.DarValor("OBJ" & Object, "Mapa"))
ObjData(Object).X = val(Leer.DarValor("OBJ" & Object, "X"))
ObjData(Object).Y = val(Leer.DarValor("OBJ" & Object, "Y"))
End If
' Tales
Y listo, ah si me olvida el dat
Del Objeto
Código:
[OBJ708]
Name=Pasaje a Ullathorpe
GrhIndex=506
ObjType=36
Valor=1
Mapa=1
X=50
Y=50
Del Pirata:
Código:
[NPCXXX] 'NPC
Name=Pirata
Desc=Hola, deseas tomar un pasaje? Hasme Click y luego utilisalo.
NpcType=9
Head=0
Body=18
Heading=3
Movement=2
Comercia=1
Alineacion=0
ReSpawn=0
NROITEMS=1
Obj1=2-1
Bueno eso es todo, fijense que trate de comentar el codigo lo mas que pude asi ven que hace cada coda .
Atte. Tales, Mr Man
Edit: Lo complete a pedido de alguien, ahora tenes que estar cerca de un Npc.