M.T.
Aprendiz Lvl 3
Buenas gente, tanto tiempo!!
Les explico: Al tomar esta poción automáticamente se nos cambia la cara por una al azar de su mismo genero e raza, se guarda el .chr es decir que por más que deslogeemos o se cierre el servidor vamos a seguir teniendo esa cara que nos toco. Es estilo IAO.
[SERVIDOR]
Buscamos:
Abajo:
Buscamos:
Arriba:
Esto es [OPCIONAL]:
Ahora al tocarnos la misma cara nos da la opción de volver a usar la poción y nos dice un mensaje por consola para que volvamos a usarla.
Si bien funciona esto funciona bien, nos toca la opción de volver a usarla y todo bien. A veces nos dice que la cara fue cambiada y nos toca la misma pero reducimos mucho que pase eso. Si alguien sabe como solucionarlo al 100% bienvenido sea, yo lo edito. Gracias.
[CLIENTE]
Buscamos:
Abajo:
Creamos el objeto, debemos usar (Objtype=39)
[OBJXXX]
Name=XXX
GrhIndex=XXX
ObjType=39
Agarrable=0
Crucial=0
Les dejo la foto por si no la tienen o no la encuentran en otro lugar. (Recuerden que como esta en imgur, esta en png).
Imagen de muestra:
El código se puede mejorar mucho, yo se los dejo funcional y sencillo para que lo entiendan más fácil. Abrazo-
Les explico: Al tomar esta poción automáticamente se nos cambia la cara por una al azar de su mismo genero e raza, se guarda el .chr es decir que por más que deslogeemos o se cierre el servidor vamos a seguir teniendo esa cara que nos toco. Es estilo IAO.
[SERVIDOR]
Buscamos:
Código:
otMochilas = 37
Abajo:
Código:
otCarita = 39
Buscamos:
Código:
Case eOBJType.otMochilas
Arriba:
Código:
Case eOBJType.otCarita
If .flags.invisible Or .flags.Oculto Or .flags.Escondido = True Then 'funciona
Call WriteConsoleMsg(UserIndex, "¡¡Estas invisible! Solo podes usar este items cuando estas visible. ", FontTypeNames.FONTTYPE_INFO)
Exit Sub
End If
If .flags.Comerciando = True Then 'funciona
Call WriteConsoleMsg(UserIndex, "No puedes usarlo estando comerciando.", FontTypeNames.FONTTYPE_INFO)
Exit Sub
End If
If .flags.Meditando = True Then 'funciona
Call WriteConsoleMsg(UserIndex, "¡Estas meditando!", FontTypeNames.FONTTYPE_INFO)
Exit Sub
End If
If .flags.Mimetizado = 1 Then 'funciona
Call WriteConsoleMsg(UserIndex, "No puedes usarlo mientras estes mimetizado", FontTypeNames.FONTTYPE_INFO)
Exit Sub
End If
If .flags.Navegando = 1 Then 'funciona
Call WriteConsoleMsg(UserIndex, "¡Estas navegando! no puedes usar esta poción mientras navegas.", FontTypeNames.FONTTYPE_INFO)
Exit Sub
End If
If .flags.Muerto = 1 Then 'funciona
Call WriteConsoleMsg(UserIndex, "¡¡Estas muerto!! Solo podes usar items cuando estas vivo. ", FontTypeNames.FONTTYPE_INFO)
Exit Sub
End If
If .raza = eRaza.Humano Then 'Raza = HUMANO HOMBRE
If .Genero = eGenero.Hombre Then
Call QuitarUserInvItem(UserIndex, Slot, 1)
Call UpdateUserInv(False, UserIndex, Slot)
Call WriteConsoleMsg(UserIndex, "¡Tu cara ha sido cambiada con éxito!", FontTypeNames.FONTTYPE_GUILDMSG)
UserList(UserIndex).Char.Head = RandomNumber(HUMANO_H_PRIMER_CABEZA, HUMANO_H_ULTIMA_CABEZA)
UserList(UserIndex).OrigChar.Head = UserList(UserIndex).Char.Head
Call WriteVar(CharPath & UCase(UserList(UserIndex).Name) & ".chr", "INIT", "Head", str(UserList(UserIndex).OrigChar.Head))
Call ChangeUserChar(UserIndex, .Char.body, .Char.Head, .Char.heading, .Char.WeaponAnim, _
.Char.ShieldAnim, .Char.CascoAnim)
Exit Sub
End If
End If
If .raza = eRaza.Humano Then 'Raza = HUMANO MUJER
If .Genero = eGenero.Mujer Then
Call QuitarUserInvItem(UserIndex, Slot, 1)
Call UpdateUserInv(False, UserIndex, Slot)
Call WriteConsoleMsg(UserIndex, "¡Tu cara ha sido cambiada con éxito!", FontTypeNames.FONTTYPE_GUILDMSG)
UserList(UserIndex).Char.Head = RandomNumber(HUMANO_M_PRIMER_CABEZA, HUMANO_M_ULTIMA_CABEZA)
UserList(UserIndex).OrigChar.Head = UserList(UserIndex).Char.Head
Call WriteVar(CharPath & UCase(UserList(UserIndex).Name) & ".chr", "INIT", "Head", str(UserList(UserIndex).OrigChar.Head))
Call ChangeUserChar(UserIndex, .Char.body, .Char.Head, .Char.heading, .Char.WeaponAnim, _
.Char.ShieldAnim, .Char.CascoAnim)
Exit Sub
End If
End If
If .raza = eRaza.Elfo Then 'Raza = ELFO HOMBRE
If .Genero = eGenero.Hombre Then
Call QuitarUserInvItem(UserIndex, Slot, 1)
Call UpdateUserInv(False, UserIndex, Slot)
Call WriteConsoleMsg(UserIndex, "¡Tu cara ha sido cambiada con éxito!", FontTypeNames.FONTTYPE_GUILDMSG)
UserList(UserIndex).Char.Head = RandomNumber(ELFO_H_PRIMER_CABEZA, ELFO_H_ULTIMA_CABEZA)
UserList(UserIndex).OrigChar.Head = UserList(UserIndex).Char.Head
Call WriteVar(CharPath & UCase(UserList(UserIndex).Name) & ".chr", "INIT", "Head", str(UserList(UserIndex).OrigChar.Head))
Call ChangeUserChar(UserIndex, .Char.body, .Char.Head, .Char.heading, .Char.WeaponAnim, _
.Char.ShieldAnim, .Char.CascoAnim)
Exit Sub
End If
End If
If .raza = eRaza.Elfo Then 'Raza = ELFO MUJER
If .Genero = eGenero.Mujer Then
Call QuitarUserInvItem(UserIndex, Slot, 1)
Call UpdateUserInv(False, UserIndex, Slot)
Call WriteConsoleMsg(UserIndex, "¡Tu cara ha sido cambiada con éxito!", FontTypeNames.FONTTYPE_GUILDMSG)
UserList(UserIndex).Char.Head = RandomNumber(ELFO_M_PRIMER_CABEZA, ELFO_M_ULTIMA_CABEZA)
UserList(UserIndex).OrigChar.Head = UserList(UserIndex).Char.Head
Call WriteVar(CharPath & UCase(UserList(UserIndex).Name) & ".chr", "INIT", "Head", str(UserList(UserIndex).OrigChar.Head))
Call ChangeUserChar(UserIndex, .Char.body, .Char.Head, .Char.heading, .Char.WeaponAnim, _
.Char.ShieldAnim, .Char.CascoAnim)
Exit Sub
End If
End If
If .raza = eRaza.Drow Then 'Raza = ELFO OSCURO HOMBRE
If .Genero = eGenero.Hombre Then
Call QuitarUserInvItem(UserIndex, Slot, 1)
Call UpdateUserInv(False, UserIndex, Slot)
Call WriteConsoleMsg(UserIndex, "¡Tu cara ha sido cambiada con éxito!", FontTypeNames.FONTTYPE_GUILDMSG)
UserList(UserIndex).Char.Head = RandomNumber(DROW_H_PRIMER_CABEZA, DROW_H_ULTIMA_CABEZA)
UserList(UserIndex).OrigChar.Head = UserList(UserIndex).Char.Head
Call WriteVar(CharPath & UCase(UserList(UserIndex).Name) & ".chr", "INIT", "Head", str(UserList(UserIndex).OrigChar.Head))
Call ChangeUserChar(UserIndex, .Char.body, .Char.Head, .Char.heading, .Char.WeaponAnim, _
.Char.ShieldAnim, .Char.CascoAnim)
Exit Sub
End If
End If
If .raza = eRaza.Drow Then 'Raza = ELFO OSCURO MUJER
If .Genero = eGenero.Mujer Then
Call QuitarUserInvItem(UserIndex, Slot, 1)
Call UpdateUserInv(False, UserIndex, Slot)
Call WriteConsoleMsg(UserIndex, "¡Tu cara ha sido cambiada con éxito!", FontTypeNames.FONTTYPE_GUILDMSG)
UserList(UserIndex).Char.Head = RandomNumber(DROW_M_PRIMER_CABEZA, DROW_M_ULTIMA_CABEZA)
UserList(UserIndex).OrigChar.Head = UserList(UserIndex).Char.Head
Call WriteVar(CharPath & UCase(UserList(UserIndex).Name) & ".chr", "INIT", "Head", str(UserList(UserIndex).OrigChar.Head))
Call ChangeUserChar(UserIndex, .Char.body, .Char.Head, .Char.heading, .Char.WeaponAnim, _
.Char.ShieldAnim, .Char.CascoAnim)
Exit Sub
End If
End If
If .raza = eRaza.Enano Then 'Raza = ENANO HOMBRE
If .Genero = eGenero.Hombre Then
Call QuitarUserInvItem(UserIndex, Slot, 1)
Call UpdateUserInv(False, UserIndex, Slot)
Call WriteConsoleMsg(UserIndex, "¡Tu cara ha sido cambiada con éxito!", FontTypeNames.FONTTYPE_GUILDMSG)
UserList(UserIndex).Char.Head = RandomNumber(ENANO_H_PRIMER_CABEZA, ENANO_H_ULTIMA_CABEZA)
UserList(UserIndex).OrigChar.Head = UserList(UserIndex).Char.Head
Call WriteVar(CharPath & UCase(UserList(UserIndex).Name) & ".chr", "INIT", "Head", str(UserList(UserIndex).OrigChar.Head))
Call ChangeUserChar(UserIndex, .Char.body, .Char.Head, .Char.heading, .Char.WeaponAnim, _
.Char.ShieldAnim, .Char.CascoAnim)
Exit Sub
End If
End If
If .raza = eRaza.Enano Then 'Raza = ENANO MUJER
If .Genero = eGenero.Mujer Then
Call QuitarUserInvItem(UserIndex, Slot, 1)
Call UpdateUserInv(False, UserIndex, Slot)
Call WriteConsoleMsg(UserIndex, "¡Tu cara ha sido cambiada con éxito!", FontTypeNames.FONTTYPE_GUILDMSG)
UserList(UserIndex).Char.Head = RandomNumber(ENANO_M_PRIMER_CABEZA, ENANO_M_ULTIMA_CABEZA)
UserList(UserIndex).OrigChar.Head = UserList(UserIndex).Char.Head
Call WriteVar(CharPath & UCase(UserList(UserIndex).Name) & ".chr", "INIT", "Head", str(UserList(UserIndex).OrigChar.Head))
Call ChangeUserChar(UserIndex, .Char.body, .Char.Head, .Char.heading, .Char.WeaponAnim, _
.Char.ShieldAnim, .Char.CascoAnim)
Exit Sub
End If
End If
If .raza = eRaza.Gnomo Then 'Raza = GNOMO HOMBRE
If .Genero = eGenero.Hombre Then
Call QuitarUserInvItem(UserIndex, Slot, 1)
Call UpdateUserInv(False, UserIndex, Slot)
Call WriteConsoleMsg(UserIndex, "¡Tu cara ha sido cambiada con éxito!", FontTypeNames.FONTTYPE_GUILDMSG)
UserList(UserIndex).Char.Head = RandomNumber(GNOMO_H_PRIMER_CABEZA, GNOMO_H_ULTIMA_CABEZA)
UserList(UserIndex).OrigChar.Head = UserList(UserIndex).Char.Head
Call WriteVar(CharPath & UCase(UserList(UserIndex).Name) & ".chr", "INIT", "Head", str(UserList(UserIndex).OrigChar.Head))
Call ChangeUserChar(UserIndex, .Char.body, .Char.Head, .Char.heading, .Char.WeaponAnim, _
.Char.ShieldAnim, .Char.CascoAnim)
Exit Sub
End If
End If
If .raza = eRaza.Gnomo Then 'Raza = GNOMO MUJER
If .Genero = eGenero.Mujer Then
Call QuitarUserInvItem(UserIndex, Slot, 1)
Call UpdateUserInv(False, UserIndex, Slot)
Call WriteConsoleMsg(UserIndex, "¡Tu cara ha sido cambiada con éxito!", FontTypeNames.FONTTYPE_GUILDMSG)
UserList(UserIndex).Char.Head = RandomNumber(GNOMO_M_PRIMER_CABEZA, GNOMO_M_ULTIMA_CABEZA)
UserList(UserIndex).OrigChar.Head = UserList(UserIndex).Char.Head
Call WriteVar(CharPath & UCase(UserList(UserIndex).Name) & ".chr", "INIT", "Head", str(UserList(UserIndex).OrigChar.Head))
Call ChangeUserChar(UserIndex, .Char.body, .Char.Head, .Char.heading, .Char.WeaponAnim, _
.Char.ShieldAnim, .Char.CascoAnim)
Exit Sub
End If
End If
Esto es [OPCIONAL]:
Ahora al tocarnos la misma cara nos da la opción de volver a usar la poción y nos dice un mensaje por consola para que volvamos a usarla.
Si bien funciona esto funciona bien, nos toca la opción de volver a usarla y todo bien. A veces nos dice que la cara fue cambiada y nos toca la misma pero reducimos mucho que pase eso. Si alguien sabe como solucionarlo al 100% bienvenido sea, yo lo edito. Gracias.
Case eOBJType.otCarita
If .flags.invisible Or .flags.Oculto Or .flags.Escondido = True Then 'funciona
Call WriteConsoleMsg(UserIndex, "¡¡Estas invisible! Solo podes usar este items cuando estas visible. ", FontTypeNames.FONTTYPE_INFO)
Exit Sub
End If
If .flags.Comerciando = True Then 'funciona
Call WriteConsoleMsg(UserIndex, "No puedes usarlo estando comerciando.", FontTypeNames.FONTTYPE_INFO)
Exit Sub
End If
If .flags.Meditando = True Then 'funciona
Call WriteConsoleMsg(UserIndex, "¡Estas meditando!", FontTypeNames.FONTTYPE_INFO)
Exit Sub
End If
If .flags.Mimetizado = 1 Then 'funciona
Call WriteConsoleMsg(UserIndex, "No puedes usarlo mientras estes mimetizado", FontTypeNames.FONTTYPE_INFO)
Exit Sub
End If
If .flags.Navegando = 1 Then 'funciona
Call WriteConsoleMsg(UserIndex, "¡Estas navegando! no puedes usar esta poción mientras navegas.", FontTypeNames.FONTTYPE_INFO)
Exit Sub
End If
If .flags.Muerto = 1 Then 'funciona
Call WriteConsoleMsg(UserIndex, "¡¡Estas muerto!! Solo podes usar items cuando estas vivo. ", FontTypeNames.FONTTYPE_INFO)
Exit Sub
End If
If .raza = eRaza.Humano Then 'Raza = HUMANO HOMBRE
If .Genero = eGenero.Hombre Then
If RandomNumber(HUMANO_H_PRIMER_CABEZA, HUMANO_H_ULTIMA_CABEZA) <> UserList(UserIndex).Char.Head Then
Call QuitarUserInvItem(UserIndex, Slot, 1)
Call UpdateUserInv(False, UserIndex, Slot)
Call WriteConsoleMsg(UserIndex, "¡Tu cara ha sido cambiada con éxito!", FontTypeNames.FONTTYPE_GUILDMSG)
UserList(UserIndex).Char.Head = RandomNumber(HUMANO_H_PRIMER_CABEZA, HUMANO_H_ULTIMA_CABEZA)
UserList(UserIndex).OrigChar.Head = UserList(UserIndex).Char.Head
Call WriteVar(CharPath & UCase(UserList(UserIndex).Name) & ".chr", "INIT", "Head", str(UserList(UserIndex).OrigChar.Head))
Call ChangeUserChar(UserIndex, .Char.body, .Char.Head, .Char.heading, .Char.WeaponAnim, _
.Char.ShieldAnim, .Char.CascoAnim)
Exit Sub
Else
Call WriteConsoleMsg(UserIndex, "¡Uuuffff! Casi te toca la misma cara, vuelve a tirar.", FontTypeNames.FONTTYPE_CENTINELA)
Exit Sub
End If
End If
End If
If .raza = eRaza.Humano Then 'Raza = HUMANO MUJER
If .Genero = eGenero.Mujer Then
If RandomNumber(HUMANO_M_PRIMER_CABEZA, HUMANO_M_ULTIMA_CABEZA) <> UserList(UserIndex).Char.Head Then
Call QuitarUserInvItem(UserIndex, Slot, 1)
Call UpdateUserInv(False, UserIndex, Slot)
Call WriteConsoleMsg(UserIndex, "¡Tu cara ha sido cambiada con éxito!", FontTypeNames.FONTTYPE_GUILDMSG)
UserList(UserIndex).Char.Head = RandomNumber(HUMANO_M_PRIMER_CABEZA, HUMANO_M_ULTIMA_CABEZA)
UserList(UserIndex).OrigChar.Head = UserList(UserIndex).Char.Head
Call WriteVar(CharPath & UCase(UserList(UserIndex).Name) & ".chr", "INIT", "Head", str(UserList(UserIndex).OrigChar.Head))
Call ChangeUserChar(UserIndex, .Char.body, .Char.Head, .Char.heading, .Char.WeaponAnim, _
.Char.ShieldAnim, .Char.CascoAnim)
Exit Sub
Else
Call WriteConsoleMsg(UserIndex, "¡Uuuffff! Casi te toca la misma cara, vuelve a tirar.", FontTypeNames.FONTTYPE_CENTINELA)
Exit Sub
End If
End If
End If
If .raza = eRaza.Elfo Then 'Raza = ELFO HOMBRE
If .Genero = eGenero.Hombre Then
If RandomNumber(ELFO_H_PRIMER_CABEZA, ELFO_H_ULTIMA_CABEZA) <> UserList(UserIndex).Char.Head Then
Call QuitarUserInvItem(UserIndex, Slot, 1)
Call UpdateUserInv(False, UserIndex, Slot)
Call WriteConsoleMsg(UserIndex, "¡Tu cara ha sido cambiada con éxito!", FontTypeNames.FONTTYPE_GUILDMSG)
UserList(UserIndex).Char.Head = RandomNumber(ELFO_H_PRIMER_CABEZA, ELFO_H_ULTIMA_CABEZA)
UserList(UserIndex).OrigChar.Head = UserList(UserIndex).Char.Head
Call WriteVar(CharPath & UCase(UserList(UserIndex).Name) & ".chr", "INIT", "Head", str(UserList(UserIndex).OrigChar.Head))
Call ChangeUserChar(UserIndex, .Char.body, .Char.Head, .Char.heading, .Char.WeaponAnim, _
.Char.ShieldAnim, .Char.CascoAnim)
Exit Sub
Else
Call WriteConsoleMsg(UserIndex, "¡Uuuffff! Casi te toca la misma cara, vuelve a tirar.", FontTypeNames.FONTTYPE_CENTINELA)
Exit Sub
End If
End If
End If
If .raza = eRaza.Elfo Then 'Raza = ELFO MUJER
If .Genero = eGenero.Mujer Then
If RandomNumber(ELFO_M_PRIMER_CABEZA, ELFO_M_ULTIMA_CABEZA) <> UserList(UserIndex).Char.Head Then
Call QuitarUserInvItem(UserIndex, Slot, 1)
Call UpdateUserInv(False, UserIndex, Slot)
Call WriteConsoleMsg(UserIndex, "¡Tu cara ha sido cambiada con éxito!", FontTypeNames.FONTTYPE_GUILDMSG)
UserList(UserIndex).Char.Head = RandomNumber(ELFO_M_PRIMER_CABEZA, ELFO_M_ULTIMA_CABEZA)
UserList(UserIndex).OrigChar.Head = UserList(UserIndex).Char.Head
Call WriteVar(CharPath & UCase(UserList(UserIndex).Name) & ".chr", "INIT", "Head", str(UserList(UserIndex).OrigChar.Head))
Call ChangeUserChar(UserIndex, .Char.body, .Char.Head, .Char.heading, .Char.WeaponAnim, _
.Char.ShieldAnim, .Char.CascoAnim)
Exit Sub
Else
Call WriteConsoleMsg(UserIndex, "¡Uuuffff! Casi te toca la misma cara, vuelve a tirar.", FontTypeNames.FONTTYPE_CENTINELA)
Exit Sub
End If
End If
End If
If .raza = eRaza.Drow Then 'Raza = ELFO OSCURO HOMBRE
If .Genero = eGenero.Hombre Then
If RandomNumber(DROW_H_PRIMER_CABEZA, DROW_H_ULTIMA_CABEZA) <> UserList(UserIndex).Char.Head Then
Call QuitarUserInvItem(UserIndex, Slot, 1)
Call UpdateUserInv(False, UserIndex, Slot)
Call WriteConsoleMsg(UserIndex, "¡Tu cara ha sido cambiada con éxito!", FontTypeNames.FONTTYPE_GUILDMSG)
UserList(UserIndex).Char.Head = RandomNumber(DROW_H_PRIMER_CABEZA, DROW_H_ULTIMA_CABEZA)
UserList(UserIndex).OrigChar.Head = UserList(UserIndex).Char.Head
Call WriteVar(CharPath & UCase(UserList(UserIndex).Name) & ".chr", "INIT", "Head", str(UserList(UserIndex).OrigChar.Head))
Call ChangeUserChar(UserIndex, .Char.body, .Char.Head, .Char.heading, .Char.WeaponAnim, _
.Char.ShieldAnim, .Char.CascoAnim)
Exit Sub
Else
Call WriteConsoleMsg(UserIndex, "¡Uuuffff! Casi te toca la misma cara, vuelve a tirar.", FontTypeNames.FONTTYPE_CENTINELA)
Exit Sub
End If
End If
End If
If .raza = eRaza.Drow Then 'Raza = ELFO OSCURO MUJER
If .Genero = eGenero.Mujer Then
If RandomNumber(DROW_M_PRIMER_CABEZA, DROW_M_ULTIMA_CABEZA) <> UserList(UserIndex).Char.Head Then
Call QuitarUserInvItem(UserIndex, Slot, 1)
Call UpdateUserInv(False, UserIndex, Slot)
Call WriteConsoleMsg(UserIndex, "¡Tu cara ha sido cambiada con éxito!", FontTypeNames.FONTTYPE_GUILDMSG)
UserList(UserIndex).Char.Head = RandomNumber(DROW_M_PRIMER_CABEZA, DROW_M_ULTIMA_CABEZA)
UserList(UserIndex).OrigChar.Head = UserList(UserIndex).Char.Head
Call WriteVar(CharPath & UCase(UserList(UserIndex).Name) & ".chr", "INIT", "Head", str(UserList(UserIndex).OrigChar.Head))
Call ChangeUserChar(UserIndex, .Char.body, .Char.Head, .Char.heading, .Char.WeaponAnim, _
.Char.ShieldAnim, .Char.CascoAnim)
Exit Sub
Else
Call WriteConsoleMsg(UserIndex, "¡Uuuffff! Casi te toca la misma cara, vuelve a tirar.", FontTypeNames.FONTTYPE_CENTINELA)
Exit Sub
End If
End If
End If
If .raza = eRaza.Enano Then 'Raza = ENANO HOMBRE
If .Genero = eGenero.Hombre Then
If RandomNumber(ENANO_H_PRIMER_CABEZA, ENANO_H_ULTIMA_CABEZA) <> UserList(UserIndex).Char.Head Then
Call QuitarUserInvItem(UserIndex, Slot, 1)
Call UpdateUserInv(False, UserIndex, Slot)
Call WriteConsoleMsg(UserIndex, "¡Tu cara ha sido cambiada con éxito!", FontTypeNames.FONTTYPE_GUILDMSG)
UserList(UserIndex).Char.Head = RandomNumber(ENANO_H_PRIMER_CABEZA, ENANO_H_ULTIMA_CABEZA)
UserList(UserIndex).OrigChar.Head = UserList(UserIndex).Char.Head
Call WriteVar(CharPath & UCase(UserList(UserIndex).Name) & ".chr", "INIT", "Head", str(UserList(UserIndex).OrigChar.Head))
Call ChangeUserChar(UserIndex, .Char.body, .Char.Head, .Char.heading, .Char.WeaponAnim, _
.Char.ShieldAnim, .Char.CascoAnim)
Exit Sub
Else
Call WriteConsoleMsg(UserIndex, "¡Uuuffff! Casi te toca la misma cara, vuelve a tirar.", FontTypeNames.FONTTYPE_CENTINELA)
Exit Sub
End If
End If
End If
If .raza = eRaza.Enano Then 'Raza = ENANO MUJER
If .Genero = eGenero.Mujer Then
If RandomNumber(ENANO_M_PRIMER_CABEZA, ENANO_M_ULTIMA_CABEZA) <> UserList(UserIndex).Char.Head Then
Call QuitarUserInvItem(UserIndex, Slot, 1)
Call UpdateUserInv(False, UserIndex, Slot)
Call WriteConsoleMsg(UserIndex, "¡Tu cara ha sido cambiada con éxito!", FontTypeNames.FONTTYPE_GUILDMSG)
UserList(UserIndex).Char.Head = RandomNumber(ENANO_M_PRIMER_CABEZA, ENANO_M_ULTIMA_CABEZA)
UserList(UserIndex).OrigChar.Head = UserList(UserIndex).Char.Head
Call WriteVar(CharPath & UCase(UserList(UserIndex).Name) & ".chr", "INIT", "Head", str(UserList(UserIndex).OrigChar.Head))
Call ChangeUserChar(UserIndex, .Char.body, .Char.Head, .Char.heading, .Char.WeaponAnim, _
.Char.ShieldAnim, .Char.CascoAnim)
Exit Sub
Else
Call WriteConsoleMsg(UserIndex, "¡Uuuffff! Casi te toca la misma cara, vuelve a tirar.", FontTypeNames.FONTTYPE_CENTINELA)
Exit Sub
End If
End If
End If
If .raza = eRaza.Gnomo Then 'Raza = GNOMO HOMBRE
If .Genero = eGenero.Hombre Then
If RandomNumber(GNOMO_H_PRIMER_CABEZA, GNOMO_H_ULTIMA_CABEZA) <> UserList(UserIndex).Char.Head Then
Call QuitarUserInvItem(UserIndex, Slot, 1)
Call UpdateUserInv(False, UserIndex, Slot)
Call WriteConsoleMsg(UserIndex, "¡Tu cara ha sido cambiada con éxito!", FontTypeNames.FONTTYPE_GUILDMSG)
UserList(UserIndex).Char.Head = RandomNumber(GNOMO_H_PRIMER_CABEZA, GNOMO_H_ULTIMA_CABEZA)
UserList(UserIndex).OrigChar.Head = UserList(UserIndex).Char.Head
Call WriteVar(CharPath & UCase(UserList(UserIndex).Name) & ".chr", "INIT", "Head", str(UserList(UserIndex).OrigChar.Head))
Call ChangeUserChar(UserIndex, .Char.body, .Char.Head, .Char.heading, .Char.WeaponAnim, _
.Char.ShieldAnim, .Char.CascoAnim)
Exit Sub
Else
Call WriteConsoleMsg(UserIndex, "¡Uuuffff! Casi te toca la misma cara, vuelve a tirar.", FontTypeNames.FONTTYPE_CENTINELA)
Exit Sub
End If
End If
End If
If .raza = eRaza.Gnomo Then 'Raza = GNOMO MUJER
If .Genero = eGenero.Mujer Then
If RandomNumber(GNOMO_M_PRIMER_CABEZA, GNOMO_M_ULTIMA_CABEZA) <> UserList(UserIndex).Char.Head Then
Call QuitarUserInvItem(UserIndex, Slot, 1)
Call UpdateUserInv(False, UserIndex, Slot)
Call WriteConsoleMsg(UserIndex, "¡Tu cara ha sido cambiada con éxito!", FontTypeNames.FONTTYPE_GUILDMSG)
UserList(UserIndex).Char.Head = RandomNumber(GNOMO_M_PRIMER_CABEZA, GNOMO_M_ULTIMA_CABEZA)
UserList(UserIndex).OrigChar.Head = UserList(UserIndex).Char.Head
Call WriteVar(CharPath & UCase(UserList(UserIndex).Name) & ".chr", "INIT", "Head", str(UserList(UserIndex).OrigChar.Head))
Call ChangeUserChar(UserIndex, .Char.body, .Char.Head, .Char.heading, .Char.WeaponAnim, _
.Char.ShieldAnim, .Char.CascoAnim)
Exit Sub
Else
Call WriteConsoleMsg(UserIndex, "¡Uuuffff! Casi te toca la misma cara, vuelve a tirar.", FontTypeNames.FONTTYPE_CENTINELA)
Exit Sub
End If
End If
End If
If .flags.invisible Or .flags.Oculto Or .flags.Escondido = True Then 'funciona
Call WriteConsoleMsg(UserIndex, "¡¡Estas invisible! Solo podes usar este items cuando estas visible. ", FontTypeNames.FONTTYPE_INFO)
Exit Sub
End If
If .flags.Comerciando = True Then 'funciona
Call WriteConsoleMsg(UserIndex, "No puedes usarlo estando comerciando.", FontTypeNames.FONTTYPE_INFO)
Exit Sub
End If
If .flags.Meditando = True Then 'funciona
Call WriteConsoleMsg(UserIndex, "¡Estas meditando!", FontTypeNames.FONTTYPE_INFO)
Exit Sub
End If
If .flags.Mimetizado = 1 Then 'funciona
Call WriteConsoleMsg(UserIndex, "No puedes usarlo mientras estes mimetizado", FontTypeNames.FONTTYPE_INFO)
Exit Sub
End If
If .flags.Navegando = 1 Then 'funciona
Call WriteConsoleMsg(UserIndex, "¡Estas navegando! no puedes usar esta poción mientras navegas.", FontTypeNames.FONTTYPE_INFO)
Exit Sub
End If
If .flags.Muerto = 1 Then 'funciona
Call WriteConsoleMsg(UserIndex, "¡¡Estas muerto!! Solo podes usar items cuando estas vivo. ", FontTypeNames.FONTTYPE_INFO)
Exit Sub
End If
If .raza = eRaza.Humano Then 'Raza = HUMANO HOMBRE
If .Genero = eGenero.Hombre Then
If RandomNumber(HUMANO_H_PRIMER_CABEZA, HUMANO_H_ULTIMA_CABEZA) <> UserList(UserIndex).Char.Head Then
Call QuitarUserInvItem(UserIndex, Slot, 1)
Call UpdateUserInv(False, UserIndex, Slot)
Call WriteConsoleMsg(UserIndex, "¡Tu cara ha sido cambiada con éxito!", FontTypeNames.FONTTYPE_GUILDMSG)
UserList(UserIndex).Char.Head = RandomNumber(HUMANO_H_PRIMER_CABEZA, HUMANO_H_ULTIMA_CABEZA)
UserList(UserIndex).OrigChar.Head = UserList(UserIndex).Char.Head
Call WriteVar(CharPath & UCase(UserList(UserIndex).Name) & ".chr", "INIT", "Head", str(UserList(UserIndex).OrigChar.Head))
Call ChangeUserChar(UserIndex, .Char.body, .Char.Head, .Char.heading, .Char.WeaponAnim, _
.Char.ShieldAnim, .Char.CascoAnim)
Exit Sub
Else
Call WriteConsoleMsg(UserIndex, "¡Uuuffff! Casi te toca la misma cara, vuelve a tirar.", FontTypeNames.FONTTYPE_CENTINELA)
Exit Sub
End If
End If
End If
If .raza = eRaza.Humano Then 'Raza = HUMANO MUJER
If .Genero = eGenero.Mujer Then
If RandomNumber(HUMANO_M_PRIMER_CABEZA, HUMANO_M_ULTIMA_CABEZA) <> UserList(UserIndex).Char.Head Then
Call QuitarUserInvItem(UserIndex, Slot, 1)
Call UpdateUserInv(False, UserIndex, Slot)
Call WriteConsoleMsg(UserIndex, "¡Tu cara ha sido cambiada con éxito!", FontTypeNames.FONTTYPE_GUILDMSG)
UserList(UserIndex).Char.Head = RandomNumber(HUMANO_M_PRIMER_CABEZA, HUMANO_M_ULTIMA_CABEZA)
UserList(UserIndex).OrigChar.Head = UserList(UserIndex).Char.Head
Call WriteVar(CharPath & UCase(UserList(UserIndex).Name) & ".chr", "INIT", "Head", str(UserList(UserIndex).OrigChar.Head))
Call ChangeUserChar(UserIndex, .Char.body, .Char.Head, .Char.heading, .Char.WeaponAnim, _
.Char.ShieldAnim, .Char.CascoAnim)
Exit Sub
Else
Call WriteConsoleMsg(UserIndex, "¡Uuuffff! Casi te toca la misma cara, vuelve a tirar.", FontTypeNames.FONTTYPE_CENTINELA)
Exit Sub
End If
End If
End If
If .raza = eRaza.Elfo Then 'Raza = ELFO HOMBRE
If .Genero = eGenero.Hombre Then
If RandomNumber(ELFO_H_PRIMER_CABEZA, ELFO_H_ULTIMA_CABEZA) <> UserList(UserIndex).Char.Head Then
Call QuitarUserInvItem(UserIndex, Slot, 1)
Call UpdateUserInv(False, UserIndex, Slot)
Call WriteConsoleMsg(UserIndex, "¡Tu cara ha sido cambiada con éxito!", FontTypeNames.FONTTYPE_GUILDMSG)
UserList(UserIndex).Char.Head = RandomNumber(ELFO_H_PRIMER_CABEZA, ELFO_H_ULTIMA_CABEZA)
UserList(UserIndex).OrigChar.Head = UserList(UserIndex).Char.Head
Call WriteVar(CharPath & UCase(UserList(UserIndex).Name) & ".chr", "INIT", "Head", str(UserList(UserIndex).OrigChar.Head))
Call ChangeUserChar(UserIndex, .Char.body, .Char.Head, .Char.heading, .Char.WeaponAnim, _
.Char.ShieldAnim, .Char.CascoAnim)
Exit Sub
Else
Call WriteConsoleMsg(UserIndex, "¡Uuuffff! Casi te toca la misma cara, vuelve a tirar.", FontTypeNames.FONTTYPE_CENTINELA)
Exit Sub
End If
End If
End If
If .raza = eRaza.Elfo Then 'Raza = ELFO MUJER
If .Genero = eGenero.Mujer Then
If RandomNumber(ELFO_M_PRIMER_CABEZA, ELFO_M_ULTIMA_CABEZA) <> UserList(UserIndex).Char.Head Then
Call QuitarUserInvItem(UserIndex, Slot, 1)
Call UpdateUserInv(False, UserIndex, Slot)
Call WriteConsoleMsg(UserIndex, "¡Tu cara ha sido cambiada con éxito!", FontTypeNames.FONTTYPE_GUILDMSG)
UserList(UserIndex).Char.Head = RandomNumber(ELFO_M_PRIMER_CABEZA, ELFO_M_ULTIMA_CABEZA)
UserList(UserIndex).OrigChar.Head = UserList(UserIndex).Char.Head
Call WriteVar(CharPath & UCase(UserList(UserIndex).Name) & ".chr", "INIT", "Head", str(UserList(UserIndex).OrigChar.Head))
Call ChangeUserChar(UserIndex, .Char.body, .Char.Head, .Char.heading, .Char.WeaponAnim, _
.Char.ShieldAnim, .Char.CascoAnim)
Exit Sub
Else
Call WriteConsoleMsg(UserIndex, "¡Uuuffff! Casi te toca la misma cara, vuelve a tirar.", FontTypeNames.FONTTYPE_CENTINELA)
Exit Sub
End If
End If
End If
If .raza = eRaza.Drow Then 'Raza = ELFO OSCURO HOMBRE
If .Genero = eGenero.Hombre Then
If RandomNumber(DROW_H_PRIMER_CABEZA, DROW_H_ULTIMA_CABEZA) <> UserList(UserIndex).Char.Head Then
Call QuitarUserInvItem(UserIndex, Slot, 1)
Call UpdateUserInv(False, UserIndex, Slot)
Call WriteConsoleMsg(UserIndex, "¡Tu cara ha sido cambiada con éxito!", FontTypeNames.FONTTYPE_GUILDMSG)
UserList(UserIndex).Char.Head = RandomNumber(DROW_H_PRIMER_CABEZA, DROW_H_ULTIMA_CABEZA)
UserList(UserIndex).OrigChar.Head = UserList(UserIndex).Char.Head
Call WriteVar(CharPath & UCase(UserList(UserIndex).Name) & ".chr", "INIT", "Head", str(UserList(UserIndex).OrigChar.Head))
Call ChangeUserChar(UserIndex, .Char.body, .Char.Head, .Char.heading, .Char.WeaponAnim, _
.Char.ShieldAnim, .Char.CascoAnim)
Exit Sub
Else
Call WriteConsoleMsg(UserIndex, "¡Uuuffff! Casi te toca la misma cara, vuelve a tirar.", FontTypeNames.FONTTYPE_CENTINELA)
Exit Sub
End If
End If
End If
If .raza = eRaza.Drow Then 'Raza = ELFO OSCURO MUJER
If .Genero = eGenero.Mujer Then
If RandomNumber(DROW_M_PRIMER_CABEZA, DROW_M_ULTIMA_CABEZA) <> UserList(UserIndex).Char.Head Then
Call QuitarUserInvItem(UserIndex, Slot, 1)
Call UpdateUserInv(False, UserIndex, Slot)
Call WriteConsoleMsg(UserIndex, "¡Tu cara ha sido cambiada con éxito!", FontTypeNames.FONTTYPE_GUILDMSG)
UserList(UserIndex).Char.Head = RandomNumber(DROW_M_PRIMER_CABEZA, DROW_M_ULTIMA_CABEZA)
UserList(UserIndex).OrigChar.Head = UserList(UserIndex).Char.Head
Call WriteVar(CharPath & UCase(UserList(UserIndex).Name) & ".chr", "INIT", "Head", str(UserList(UserIndex).OrigChar.Head))
Call ChangeUserChar(UserIndex, .Char.body, .Char.Head, .Char.heading, .Char.WeaponAnim, _
.Char.ShieldAnim, .Char.CascoAnim)
Exit Sub
Else
Call WriteConsoleMsg(UserIndex, "¡Uuuffff! Casi te toca la misma cara, vuelve a tirar.", FontTypeNames.FONTTYPE_CENTINELA)
Exit Sub
End If
End If
End If
If .raza = eRaza.Enano Then 'Raza = ENANO HOMBRE
If .Genero = eGenero.Hombre Then
If RandomNumber(ENANO_H_PRIMER_CABEZA, ENANO_H_ULTIMA_CABEZA) <> UserList(UserIndex).Char.Head Then
Call QuitarUserInvItem(UserIndex, Slot, 1)
Call UpdateUserInv(False, UserIndex, Slot)
Call WriteConsoleMsg(UserIndex, "¡Tu cara ha sido cambiada con éxito!", FontTypeNames.FONTTYPE_GUILDMSG)
UserList(UserIndex).Char.Head = RandomNumber(ENANO_H_PRIMER_CABEZA, ENANO_H_ULTIMA_CABEZA)
UserList(UserIndex).OrigChar.Head = UserList(UserIndex).Char.Head
Call WriteVar(CharPath & UCase(UserList(UserIndex).Name) & ".chr", "INIT", "Head", str(UserList(UserIndex).OrigChar.Head))
Call ChangeUserChar(UserIndex, .Char.body, .Char.Head, .Char.heading, .Char.WeaponAnim, _
.Char.ShieldAnim, .Char.CascoAnim)
Exit Sub
Else
Call WriteConsoleMsg(UserIndex, "¡Uuuffff! Casi te toca la misma cara, vuelve a tirar.", FontTypeNames.FONTTYPE_CENTINELA)
Exit Sub
End If
End If
End If
If .raza = eRaza.Enano Then 'Raza = ENANO MUJER
If .Genero = eGenero.Mujer Then
If RandomNumber(ENANO_M_PRIMER_CABEZA, ENANO_M_ULTIMA_CABEZA) <> UserList(UserIndex).Char.Head Then
Call QuitarUserInvItem(UserIndex, Slot, 1)
Call UpdateUserInv(False, UserIndex, Slot)
Call WriteConsoleMsg(UserIndex, "¡Tu cara ha sido cambiada con éxito!", FontTypeNames.FONTTYPE_GUILDMSG)
UserList(UserIndex).Char.Head = RandomNumber(ENANO_M_PRIMER_CABEZA, ENANO_M_ULTIMA_CABEZA)
UserList(UserIndex).OrigChar.Head = UserList(UserIndex).Char.Head
Call WriteVar(CharPath & UCase(UserList(UserIndex).Name) & ".chr", "INIT", "Head", str(UserList(UserIndex).OrigChar.Head))
Call ChangeUserChar(UserIndex, .Char.body, .Char.Head, .Char.heading, .Char.WeaponAnim, _
.Char.ShieldAnim, .Char.CascoAnim)
Exit Sub
Else
Call WriteConsoleMsg(UserIndex, "¡Uuuffff! Casi te toca la misma cara, vuelve a tirar.", FontTypeNames.FONTTYPE_CENTINELA)
Exit Sub
End If
End If
End If
If .raza = eRaza.Gnomo Then 'Raza = GNOMO HOMBRE
If .Genero = eGenero.Hombre Then
If RandomNumber(GNOMO_H_PRIMER_CABEZA, GNOMO_H_ULTIMA_CABEZA) <> UserList(UserIndex).Char.Head Then
Call QuitarUserInvItem(UserIndex, Slot, 1)
Call UpdateUserInv(False, UserIndex, Slot)
Call WriteConsoleMsg(UserIndex, "¡Tu cara ha sido cambiada con éxito!", FontTypeNames.FONTTYPE_GUILDMSG)
UserList(UserIndex).Char.Head = RandomNumber(GNOMO_H_PRIMER_CABEZA, GNOMO_H_ULTIMA_CABEZA)
UserList(UserIndex).OrigChar.Head = UserList(UserIndex).Char.Head
Call WriteVar(CharPath & UCase(UserList(UserIndex).Name) & ".chr", "INIT", "Head", str(UserList(UserIndex).OrigChar.Head))
Call ChangeUserChar(UserIndex, .Char.body, .Char.Head, .Char.heading, .Char.WeaponAnim, _
.Char.ShieldAnim, .Char.CascoAnim)
Exit Sub
Else
Call WriteConsoleMsg(UserIndex, "¡Uuuffff! Casi te toca la misma cara, vuelve a tirar.", FontTypeNames.FONTTYPE_CENTINELA)
Exit Sub
End If
End If
End If
If .raza = eRaza.Gnomo Then 'Raza = GNOMO MUJER
If .Genero = eGenero.Mujer Then
If RandomNumber(GNOMO_M_PRIMER_CABEZA, GNOMO_M_ULTIMA_CABEZA) <> UserList(UserIndex).Char.Head Then
Call QuitarUserInvItem(UserIndex, Slot, 1)
Call UpdateUserInv(False, UserIndex, Slot)
Call WriteConsoleMsg(UserIndex, "¡Tu cara ha sido cambiada con éxito!", FontTypeNames.FONTTYPE_GUILDMSG)
UserList(UserIndex).Char.Head = RandomNumber(GNOMO_M_PRIMER_CABEZA, GNOMO_M_ULTIMA_CABEZA)
UserList(UserIndex).OrigChar.Head = UserList(UserIndex).Char.Head
Call WriteVar(CharPath & UCase(UserList(UserIndex).Name) & ".chr", "INIT", "Head", str(UserList(UserIndex).OrigChar.Head))
Call ChangeUserChar(UserIndex, .Char.body, .Char.Head, .Char.heading, .Char.WeaponAnim, _
.Char.ShieldAnim, .Char.CascoAnim)
Exit Sub
Else
Call WriteConsoleMsg(UserIndex, "¡Uuuffff! Casi te toca la misma cara, vuelve a tirar.", FontTypeNames.FONTTYPE_CENTINELA)
Exit Sub
End If
End If
End If

[CLIENTE]
Buscamos:
Código:
otMochilas = 37
Abajo:
Código:
otCarita = 39
Creamos el objeto, debemos usar (Objtype=39)
[OBJXXX]
Name=XXX
GrhIndex=XXX
ObjType=39
Agarrable=0
Crucial=0
Les dejo la foto por si no la tienen o no la encuentran en otro lugar. (Recuerden que como esta en imgur, esta en png).

Imagen de muestra:

El código se puede mejorar mucho, yo se los dejo funcional y sencillo para que lo entiendan más fácil. Abrazo-
Última edición: