Les dejo este código que encontre en internet. Es muy bueno para la version 11.5.
Buscan:
Código:
Select Case UCase(Left(rData, 5))
Case "/_BUG "
N = FreeFile
Open App.Path & "\LOGS\BUGs.log" For Append Shared As N
Print #N,
Print #N,
Print #N, "########################################################################"
Print #N, "########################################################################"
Print #N, "Usuario:" & UserList(Userindex).name & " Fecha:" & Date & " Hora:" & Time
Print #N, "########################################################################"
Print #N, "BUG:"
Print #N, Right$(rData, Len(rData) - 5)
Print #N, "########################################################################"
Print #N, "########################################################################"
Print #N,
Print #N,
Close #N
Exit Sub
End Select
Y antes del "End Select" ponemos:
Código:
Case "/CARA"
If UserList(Userindex).flags.Muerto = 1 Then
Call SendData(SendTarget.ToIndex, Userindex, 0, "||¡¡Estas muerto!!" & FONTTYPE_INFO)
ElseIf UserList(Userindex).flags.TargetNPC = 0 Then
'Se asegura que el target es un npc
Call SendData(SendTarget.ToIndex, Userindex, 0, "||Primero tenes que seleccionar un personaje, hace click izquierdo sobre el." & FONTTYPE_INFO)
ElseIf Distancia(Npclist(UserList(Userindex).flags.TargetNPC).Pos, UserList(Userindex).Pos) > 10 Then
Call SendData(SendTarget.ToIndex, Userindex, 0, "||Estas demasiado lejos." & FONTTYPE_INFO)
ElseIf Npclist(UserList(Userindex).flags.TargetNPC).NPCtype <> eNPCType.Cirujano Then
Exit Sub
Else
Call SendData(SendTarget.ToIndex, Userindex, 0, "||" & vbWhite & "°" & "Espero que te guste tu nueva cara!" & "°" & str(Npclist(UserList(Userindex).flags.TargetNPC).Char.CharIndex))
If UserList(Userindex).Raza = "Humano" Then
If UserList(Userindex).Genero = "Hombre" Then
UserList(Userindex).Char.Head = RandomNumber(1, 30)
UserList(Userindex).OrigChar.Head = RandomNumber(1, 30)
Call WriteVar(CharPath & UCase(UserList(Userindex).name) & ".chr", "INIT", "Head", str(UserList(Userindex).OrigChar.Head))
Call ChangeUserChar(ToMap, 0, UserList(Userindex).Pos.Map, 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)
Exit Sub
End If
If UserList(Userindex).Genero = "Mujer" Then
UserList(Userindex).Char.Head = RandomNumber(1, 7) + 69
UserList(Userindex).OrigChar.Head = RandomNumber(1, 7) + 69
Call WriteVar(CharPath & UCase(UserList(Userindex).name) & ".chr", "INIT", "Head", str(UserList(Userindex).OrigChar.Head))
Call ChangeUserChar(ToMap, 0, UserList(Userindex).Pos.Map, 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)
Exit Sub
End If
ElseIf UserList(Userindex).Raza = "Elfo" Then
If UserList(Userindex).Genero = "Hombre" Then
UserList(Userindex).Char.Head = RandomNumber(1, 13) + 100
UserList(Userindex).OrigChar.Head = RandomNumber(1, 13) + 100
Call WriteVar(CharPath & UCase(UserList(Userindex).name) & ".chr", "INIT", "Head", str(UserList(Userindex).OrigChar.Head))
Call ChangeUserChar(ToMap, 0, UserList(Userindex).Pos.Map, 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)
Exit Sub
End If
If UserList(Userindex).Genero = "Mujer" Then
UserList(Userindex).Char.Head = RandomNumber(1, 7) + 169
UserList(Userindex).OrigChar.Head = RandomNumber(1, 7) + 169
Call WriteVar(CharPath & UCase(UserList(Userindex).name) & ".chr", "INIT", "Head", str(UserList(Userindex).OrigChar.Head))
Call ChangeUserChar(ToMap, 0, UserList(Userindex).Pos.Map, 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)
Exit Sub
End If
ElseIf UserList(Userindex).Raza = "Elfo oscuro" Then
If UserList(Userindex).Genero = "Hombre" Then
UserList(Userindex).Char.Head = RandomNumber(1, 8) + 201
UserList(Userindex).OrigChar.Head = RandomNumber(1, 8) + 201
Call WriteVar(CharPath & UCase(UserList(Userindex).name) & ".chr", "INIT", "Head", str(UserList(Userindex).OrigChar.Head))
Call ChangeUserChar(ToMap, 0, UserList(Userindex).Pos.Map, 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)
Exit Sub
End If
If UserList(Userindex).Genero = "Mujer" Then
UserList(Userindex).Char.Head = RandomNumber(1, 11) + 269
UserList(Userindex).OrigChar.Head = RandomNumber(1, 11) + 269
Call WriteVar(CharPath & UCase(UserList(Userindex).name) & ".chr", "INIT", "Head", str(UserList(Userindex).OrigChar.Head))
Call ChangeUserChar(ToMap, 0, UserList(Userindex).Pos.Map, 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)
Exit Sub
End If
ElseIf UserList(Userindex).Raza = "Enano" Then
If UserList(Userindex).Genero = "Hombre" Then
UserList(Userindex).Char.Head = RandomNumber(1, 5) + 300
UserList(Userindex).OrigChar.Head = RandomNumber(1, 5) + 300
Call WriteVar(CharPath & UCase(UserList(Userindex).name) & ".chr", "INIT", "Head", str(UserList(Userindex).OrigChar.Head))
Call ChangeUserChar(ToMap, 0, UserList(Userindex).Pos.Map, 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)
Exit Sub
End If
If UserList(Userindex).Genero = "Mujer" Then
UserList(Userindex).Char.Head = RandomNumber(1, 3) + 369
UserList(Userindex).OrigChar.Head = RandomNumber(1, 3) + 369
Call WriteVar(CharPath & UCase(UserList(Userindex).name) & ".chr", "INIT", "Head", str(UserList(Userindex).OrigChar.Head))
Call ChangeUserChar(ToMap, 0, UserList(Userindex).Pos.Map, 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)
Exit Sub
End If
ElseIf UserList(Userindex).Raza = "Gnomo" Then
If UserList(Userindex).Genero = "Hombre" Then
UserList(Userindex).Char.Head = RandomNumber(1, 6) + 400
UserList(Userindex).OrigChar.Head = RandomNumber(1, 6) + 400
Call WriteVar(CharPath & UCase(UserList(Userindex).name) & ".chr", "INIT", "Head", str(UserList(Userindex).OrigChar.Head))
Call ChangeUserChar(ToMap, 0, UserList(Userindex).Pos.Map, 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)
Exit Sub
End If
If UserList(Userindex).Genero = "Mujer" Then
UserList(Userindex).Char.Head = RandomNumber(1, 5) + 469
UserList(Userindex).OrigChar.Head = RandomNumber(1, 5) + 469
Call WriteVar(CharPath & UCase(UserList(Userindex).name) & ".chr", "INIT", "Head", str(UserList(Userindex).OrigChar.Head))
Call ChangeUserChar(ToMap, 0, UserList(Userindex).Pos.Map, 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)
Exit Sub
End If
End If
End If
Luego buscamos:
Código:
Public Enum eNPCType
Y antes de:
Código:
End Enum
Ponemos:
Código:
Cirujano = 9
ACLARO: En mi caso es el numero 14 porque tengo distintos tipos de npcs, pero ustedes ponganle el numero al que le siga el npc anterior.
Hasta aca terminamos de codear, ahora vamos a datear, nos dirijimos a los Dats del server, npcs, y vamos abajo de todo ponemos:
Código:
[NPCXXX] 'NPC Cambia Caras
Name=Cirujano
NpcType=10
Desc=Hola, ¿No te gusta tu rostro? escribe /cara para cambiarte esa cosa que le llamas cara.
Head=503
Heading=3
Body=241
Movement=1
Attackable=0
ReSpawn=0
Hostile=0
Domable=0
Alineacion=0
Cambienle el numero de npc y ya estaria terminado, testeado y 100% funcional.
Espero que sirva. Gracias.
Buscan:
Código:
Select Case UCase(Left(rData, 5))
Case "/_BUG "
N = FreeFile
Open App.Path & "\LOGS\BUGs.log" For Append Shared As N
Print #N,
Print #N,
Print #N, "########################################################################"
Print #N, "########################################################################"
Print #N, "Usuario:" & UserList(Userindex).name & " Fecha:" & Date & " Hora:" & Time
Print #N, "########################################################################"
Print #N, "BUG:"
Print #N, Right$(rData, Len(rData) - 5)
Print #N, "########################################################################"
Print #N, "########################################################################"
Print #N,
Print #N,
Close #N
Exit Sub
End Select
Y antes del "End Select" ponemos:
Código:
Case "/CARA"
If UserList(Userindex).flags.Muerto = 1 Then
Call SendData(SendTarget.ToIndex, Userindex, 0, "||¡¡Estas muerto!!" & FONTTYPE_INFO)
ElseIf UserList(Userindex).flags.TargetNPC = 0 Then
'Se asegura que el target es un npc
Call SendData(SendTarget.ToIndex, Userindex, 0, "||Primero tenes que seleccionar un personaje, hace click izquierdo sobre el." & FONTTYPE_INFO)
ElseIf Distancia(Npclist(UserList(Userindex).flags.TargetNPC).Pos, UserList(Userindex).Pos) > 10 Then
Call SendData(SendTarget.ToIndex, Userindex, 0, "||Estas demasiado lejos." & FONTTYPE_INFO)
ElseIf Npclist(UserList(Userindex).flags.TargetNPC).NPCtype <> eNPCType.Cirujano Then
Exit Sub
Else
Call SendData(SendTarget.ToIndex, Userindex, 0, "||" & vbWhite & "°" & "Espero que te guste tu nueva cara!" & "°" & str(Npclist(UserList(Userindex).flags.TargetNPC).Char.CharIndex))
If UserList(Userindex).Raza = "Humano" Then
If UserList(Userindex).Genero = "Hombre" Then
UserList(Userindex).Char.Head = RandomNumber(1, 30)
UserList(Userindex).OrigChar.Head = RandomNumber(1, 30)
Call WriteVar(CharPath & UCase(UserList(Userindex).name) & ".chr", "INIT", "Head", str(UserList(Userindex).OrigChar.Head))
Call ChangeUserChar(ToMap, 0, UserList(Userindex).Pos.Map, 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)
Exit Sub
End If
If UserList(Userindex).Genero = "Mujer" Then
UserList(Userindex).Char.Head = RandomNumber(1, 7) + 69
UserList(Userindex).OrigChar.Head = RandomNumber(1, 7) + 69
Call WriteVar(CharPath & UCase(UserList(Userindex).name) & ".chr", "INIT", "Head", str(UserList(Userindex).OrigChar.Head))
Call ChangeUserChar(ToMap, 0, UserList(Userindex).Pos.Map, 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)
Exit Sub
End If
ElseIf UserList(Userindex).Raza = "Elfo" Then
If UserList(Userindex).Genero = "Hombre" Then
UserList(Userindex).Char.Head = RandomNumber(1, 13) + 100
UserList(Userindex).OrigChar.Head = RandomNumber(1, 13) + 100
Call WriteVar(CharPath & UCase(UserList(Userindex).name) & ".chr", "INIT", "Head", str(UserList(Userindex).OrigChar.Head))
Call ChangeUserChar(ToMap, 0, UserList(Userindex).Pos.Map, 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)
Exit Sub
End If
If UserList(Userindex).Genero = "Mujer" Then
UserList(Userindex).Char.Head = RandomNumber(1, 7) + 169
UserList(Userindex).OrigChar.Head = RandomNumber(1, 7) + 169
Call WriteVar(CharPath & UCase(UserList(Userindex).name) & ".chr", "INIT", "Head", str(UserList(Userindex).OrigChar.Head))
Call ChangeUserChar(ToMap, 0, UserList(Userindex).Pos.Map, 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)
Exit Sub
End If
ElseIf UserList(Userindex).Raza = "Elfo oscuro" Then
If UserList(Userindex).Genero = "Hombre" Then
UserList(Userindex).Char.Head = RandomNumber(1, 8) + 201
UserList(Userindex).OrigChar.Head = RandomNumber(1, 8) + 201
Call WriteVar(CharPath & UCase(UserList(Userindex).name) & ".chr", "INIT", "Head", str(UserList(Userindex).OrigChar.Head))
Call ChangeUserChar(ToMap, 0, UserList(Userindex).Pos.Map, 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)
Exit Sub
End If
If UserList(Userindex).Genero = "Mujer" Then
UserList(Userindex).Char.Head = RandomNumber(1, 11) + 269
UserList(Userindex).OrigChar.Head = RandomNumber(1, 11) + 269
Call WriteVar(CharPath & UCase(UserList(Userindex).name) & ".chr", "INIT", "Head", str(UserList(Userindex).OrigChar.Head))
Call ChangeUserChar(ToMap, 0, UserList(Userindex).Pos.Map, 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)
Exit Sub
End If
ElseIf UserList(Userindex).Raza = "Enano" Then
If UserList(Userindex).Genero = "Hombre" Then
UserList(Userindex).Char.Head = RandomNumber(1, 5) + 300
UserList(Userindex).OrigChar.Head = RandomNumber(1, 5) + 300
Call WriteVar(CharPath & UCase(UserList(Userindex).name) & ".chr", "INIT", "Head", str(UserList(Userindex).OrigChar.Head))
Call ChangeUserChar(ToMap, 0, UserList(Userindex).Pos.Map, 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)
Exit Sub
End If
If UserList(Userindex).Genero = "Mujer" Then
UserList(Userindex).Char.Head = RandomNumber(1, 3) + 369
UserList(Userindex).OrigChar.Head = RandomNumber(1, 3) + 369
Call WriteVar(CharPath & UCase(UserList(Userindex).name) & ".chr", "INIT", "Head", str(UserList(Userindex).OrigChar.Head))
Call ChangeUserChar(ToMap, 0, UserList(Userindex).Pos.Map, 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)
Exit Sub
End If
ElseIf UserList(Userindex).Raza = "Gnomo" Then
If UserList(Userindex).Genero = "Hombre" Then
UserList(Userindex).Char.Head = RandomNumber(1, 6) + 400
UserList(Userindex).OrigChar.Head = RandomNumber(1, 6) + 400
Call WriteVar(CharPath & UCase(UserList(Userindex).name) & ".chr", "INIT", "Head", str(UserList(Userindex).OrigChar.Head))
Call ChangeUserChar(ToMap, 0, UserList(Userindex).Pos.Map, 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)
Exit Sub
End If
If UserList(Userindex).Genero = "Mujer" Then
UserList(Userindex).Char.Head = RandomNumber(1, 5) + 469
UserList(Userindex).OrigChar.Head = RandomNumber(1, 5) + 469
Call WriteVar(CharPath & UCase(UserList(Userindex).name) & ".chr", "INIT", "Head", str(UserList(Userindex).OrigChar.Head))
Call ChangeUserChar(ToMap, 0, UserList(Userindex).Pos.Map, 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)
Exit Sub
End If
End If
End If
Luego buscamos:
Código:
Public Enum eNPCType
Y antes de:
Código:
End Enum
Ponemos:
Código:
Cirujano = 9
ACLARO: En mi caso es el numero 14 porque tengo distintos tipos de npcs, pero ustedes ponganle el numero al que le siga el npc anterior.
Hasta aca terminamos de codear, ahora vamos a datear, nos dirijimos a los Dats del server, npcs, y vamos abajo de todo ponemos:
Código:
[NPCXXX] 'NPC Cambia Caras
Name=Cirujano
NpcType=10
Desc=Hola, ¿No te gusta tu rostro? escribe /cara para cambiarte esa cosa que le llamas cara.
Head=503
Heading=3
Body=241
Movement=1
Attackable=0
ReSpawn=0
Hostile=0
Domable=0
Alineacion=0
Cambienle el numero de npc y ya estaria terminado, testeado y 100% funcional.
Espero que sirva. Gracias.