/CARA PARA LA 12.1 , ESTO NO ES UN CIRUJANO COMO LA 11.5 SINO ALGO MAS SIMPLE Y COMPLEJO...Y MAS FACIL.[b]Bien en el servidor:
en protocol.bas buscamos
- Private Enum ClientPacketID:
ahí en esa parte al final está
debajo ponemos
Cara
ahora buscamos :
- Case ClientPacketID.CheckSlot '/SLOT
- Call HandleCheckSlot(UserIndex)
debajo ponemos
- Case ClientPacketID.Cara
- Call HandleCara(UserIndex)
al terminar donde dice sub end agregamos
- Private Function CaraValida(ByVal UserIndex, Cara As Integer) As Boolean
- Dim UserRaza As Byte
- Dim UserGenero As Byte
- UserGenero = UserList(UserIndex).genero
- UserRaza = UserList(UserIndex).raza
- CaraValida = False
- Select Case UserGenero
- Case eGenero.Hombre
- Select Case UserRaza
- Case eRaza.Humano
- CaraValida = CBool(Cara >= 1 And Cara <= 40)
- Exit Function
- Case eRaza.Elfo
- CaraValida = CBool(Cara >= 101 And Cara <= 112)
- Exit Function
- Case eRaza.Drow
- CaraValida = CBool(Cara >= 200 And Cara <= 210)
- Exit Function
- Case eRaza.Enano
- CaraValida = CBool(Cara >= 300 And Cara <= 306)
- Exit Function
- Case eRaza.Gnomo
- CaraValida = CBool(Cara >= 403 And Cara <= 406)
- Exit Function
- End Select
- Case eGenero.Mujer
- Select Case UserRaza
- Case eRaza.Humano
- CaraValida = CBool(Cara >= 70 And Cara <= 79)
- Exit Function
- Case eRaza.Elfo
- CaraValida = CBool(Cara >= 170 And Cara <= 178)
- Exit Function
- Case eRaza.Drow
- CaraValida = CBool(Cara >= 270 And Cara <= 278)
- Exit Function
- Case eRaza.Enano
- CaraValida = CBool(Cara >= 370 And Cara <= 372)
- Exit Function
- Case eRaza.Gnomo
- CaraValida = CBool(Cara >= 470 And Cara <= 476)
- Exit Function
- End Select
- End Select
- CaraValida = False
- End Function
bien terminada esta función debajo ponemos :
- Private Sub HandleCara(ByVal UserIndex As Integer)
- Dim nHead As Integer
- Call UserList(UserIndex).incomingData.ReadByte
- nHead = UserList(UserIndex).incomingData.ReadInteger
- If CaraValida(UserIndex, nHead) Then
- UserList(UserIndex).Char.Head = nHead
- UserList(UserIndex).OrigChar.Head = nHead
- 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)
- Else
- Call WriteConsoleMsg(UserIndex, "El número de cabeza no corresponde a tu género o raza.", FontTypeNames.FONTTYPE_CENTINELA)
- End If
- End Sub
AHORA BIEN YA TENEMOS TODO EN EL SERVIDOR AHORA LO MAS FACIL:
EN EL CLIENTE: En el protocolcmdparse debajo de
- Case "/PING"
- Call WritePing
ponemos
- Case "/CARA"
- If notNullArguments Then
- If ValidNumber(ArgumentosRaw, ent_Integer) Then
- Call WriteHead(ArgumentosRaw)
- Else
- Call ShowConsoleMsg("El número de cabeza es incorrecto.")
- End If
- Else
- Call ShowConsoleMsg("Faltan parámetros. Utilice /cara NUMERO.")
- End If
ahora lo último en protocol.bas
- Private Enum ClientPacketID:
ahí en esa parte al final está
debajo ponemos
Cara
al terminar ponemos en el mismo modulo debajo
- Public Sub WriteHead(ByVal Head As Integer)
- Call outgoingData.WriteByte(ClientPacketID.Cara)
- Call outgoingData.WriteInteger(Head)
- End Sub
y listo por ejemplo quiero la cara azul , y el pj que me creé tiró buena vida al empezar o me gustó el nombre y pongo /cara 4 y listo
^']Te agregue los cuadros de código para que se vea mas ordenado 
saludos.