Originalmente publicado por AyudandOh.-

Vi a mucha gente que hacen un post de como poner dados 18, o skills faciles, bueno son codigos faciles que no necesitan ser un experto para hacerlo.


Para enpezar vamos hacer unos codigos principales para tu ao.


1.- Dados 18/18


en SERVER, vamos a (Protocol.bas)


Buscamos el sub:


Código:
Private Sub HandleThrowDices(ByVal UserIndex As Integer)

y reemplazamos todo ese sub por este:


Código:
Private Sub HandleThrowDices(ByVal UserIndex As Integer)
'***************************************************
'Author: Juan Martín Sotuyo Dodero (Maraxus)
'Last Modification: 05/17/06
'
'***************************************************
    'Remove packet ID
    Call UserList(UserIndex).incomingData.ReadByte
    
    With UserList(UserIndex).Stats
        .UserAtributos(eAtributos.Fuerza) = 18
        .UserAtributos(eAtributos.Agilidad) = 18
        .UserAtributos(eAtributos.Inteligencia) = 18
        .UserAtributos(eAtributos.Carisma) = 18
        .UserAtributos(eAtributos.Constitucion) = 18
    End With
    
    Call WriteDiceRoll(UserIndex)
End Sub

2.- Para aumentar la exp, en server, en (MODULO_NPCs.bas)


Para la exp, buscamos:


Código:
Npclist(NpcIndex).GiveEXP = val(Leer.GetValue("NPC" & NpcNumber, "GiveEXP"))

Y si queres que la exp este por 100 lo reemplazas por:


Código:
Npclist(NpcIndex).GiveEXP = val(Leer.GetValue("NPC" & NpcNumber, "GiveEXP")) *100

3.- Para aumentar el oro, en server, (MODULO_NPCs.bas)


Para el oro, Buscamos:


Código:
Npclist(NpcIndex).GiveGLD = val(Leer.GetValue("NPC" & NpcNumber, "GiveGLD"))

Y si queres que el oro este por 50 reemplazas por:


Código:
Npclist(NpcIndex).GiveGLD = val(Leer.GetValue("NPC" & NpcNumber, "GiveGLD")) *50

4.- Para que los skills suban rapido. en server, (Modulo_usuarios.bas)


Buscamos el sub:


Código:
Sub SubirSkill(ByVal UserIndex As Integer, ByVal Skill As Integer)

y a todo ese sub lo reemplazas por este:


Código:
Sub SubirSkill(ByVal UserIndex As Integer, ByVal Skill As Integer)
 
    If UserList(UserIndex).flags.Hambre = 0 And UserList(UserIndex).flags.Sed = 0 Then
       
        If UserList(UserIndex).Stats.UserSkills(Skill) = MAXSKILLPOINTS Then Exit Sub
       
        Dim Lvl As Integer
        Lvl = UserList(UserIndex).Stats.ELV
       
        If Lvl > UBound(LevelSkill) Then Lvl = UBound(LevelSkill)
       
        If UserList(UserIndex).Stats.UserSkills(Skill) >= LevelSkill(Lvl).LevelValue Then Exit Sub
   
        Dim Aumenta As Integer
        Dim Prob As Integer
       
        If Lvl <= 1 Then
            Prob = 100
        ElseIf Lvl > 1 And Lvl < 1 Then
            Prob = 100
        ElseIf Lvl >= 1 And Lvl < 1 Then
            Prob = 100
        ElseIf Lvl >= 1 And Lvl < 1 Then
            Prob = 100
        Else
            Prob = 100
        End If
       
        Aumenta = RandomNumber(100, Prob)
       
        If Aumenta = 100 Then
            UserList(UserIndex).Stats.UserSkills(Skill) = UserList(UserIndex).Stats.UserSkills(Skill) + 1
            Call WriteConsoleMsg(UserIndex, "¡Has mejorado tu skill " & SkillsNames(Skill) & " en un punto!. Ahora tienes " & UserList(UserIndex).Stats.UserSkills(Skill) & " pts.", FontTypeNames.FONTTYPE_INFO)
           
            UserList(UserIndex).Stats.Exp = UserList(UserIndex).Stats.Exp + 50
            If UserList(UserIndex).Stats.Exp > MAXEXP Then _
                UserList(UserIndex).Stats.Exp = MAXEXP
           
            Call WriteConsoleMsg(UserIndex, "¡Has ganado 50 puntos de experiencia!", FontTypeNames.FONTTYPE_FIGHT)
           
            Call WriteUpdateExp(UserIndex)
            Call CheckUserLevel(UserIndex)
        End If
    End If
 
End Sub

5.- Para que mine de a mas.


En server, en (trabajo.bas)


Buscamos:


Código:
    If UserList(UserIndex).clase = eClass.Miner Then
        MiObj.amount = RandomNumber(1, 4) '(NicoNZ) 04/25/2008
    Else
        MiObj.amount = 1
    End If

y lo reemplazas por:
Código:
    If UserList(UserIndex).clase = eClass.Miner Then
        MiObj.amount = RandomNumber(80, 140) '(NicoNZ) 04/25/2008
    Else
        MiObj.amount = 80
    End If

Ahi vendria a minar de a 80/140 pueden modificarlo a su gusto.


6.- Para que se tale de a mas.


en (trabajo.bas) Buscamos:


Código:
    If UserList(UserIndex).clase = eClass.Lumberjack Then
        MiObj.amount = RandomNumber(1, 4)
    Else
        MiObj.amount = 1
    End If

Y lo reemplazas por:


Código:
    If UserList(UserIndex).clase = eClass.Lumberjack Then
        MiObj.amount = RandomNumber(80, 140)
    Else
        MiObj.amount = 80
    End If

Ahi vendriamos a que se tale de a 80/140 Pueden modificarlo a su gusto.


7.- Para que se pesce de a mas.


En (trabajo.bas) Buscamos:


Código:
    If UserList(UserIndex).clase = eClass.Fisher Then
        MiObj.amount = RandomNumber(1, 4)
    Else
        MiObj.amount = 1
    End If

y lo reemplazas por:


Código:
    If UserList(UserIndex).clase = eClass.Fisher Then
        MiObj.amount = RandomNumber(80, 140)
    Else
        MiObj.amount = 80
    End If

Ahi vendria a pescar de a 80/140 pueden modificarlo a su gusto.


8.- Para poner nivel maximo.


en declaraciones.


Buscamos:


Código:
Código:
Public Const STAT_MAXELV As Byte = 255

Y si queres que el nivel maximo sea 50 cambiamos por esto:


Código:
Public Const STAT_MAXELV As Byte = 50

9.- Para que medite mas rapido


en declaraciones buscamos:
Código:
Public Const TIEMPO_INICIOMEDITAR As Integer = 2000

Ahi medita de a 2 segundo.. "2000" son 2 segundo. si queremos que medite cada 1 segundo lo reemplazamos por:


Código:
Public Const TIEMPO_INICIOMEDITAR As Integer = 1000

10.- Para que lingotee de a 50. En (Trabajo.bas)


Buscamos el sub:


Código:
Private Function MineralesParaLingote(ByVal Lingote As iMinerales) As Integer

Y a todo ese sub lo reemplazamos por:


Código:
   1. Private Function MineralesParaLingote(ByVal Lingote As iMinerales) As Integer
   2.     Select Case Lingote
   3.         Case iMinerales.HierroCrudo
   4.             MineralesParaLingote = 700
   5.         Case iMinerales.PlataCruda
   6.             MineralesParaLingote = 1000
   7.         Case iMinerales.OroCrudo
   8.             MineralesParaLingote = 1750
   9.         Case Else
  10.             MineralesParaLingote = 10000
  11.     End Select
  12. End Function

Ahi vendria a lingotear de a 50.


11.- Para algunos que desean tener un servidor de mucho oro, a ver si me explico. el server que tenga: oro: 150, bueno, es muy facil conseguir el oro ya que es facil la oro. y aveces siempre ahi alguien que tira mucho oro y lagea. para eso vamos hacer que tire de a 2k de oro, y no de a 10k. claro que si quieren que tire de a 100k de oro tambien se podria hacer. bueno enpezamos:


en cliente, (frmCantidad.frm)


Buscamos:


Código:
Private Sub Command2_Click()
    If Inventario.SelectedItem = 0 Then Exit Sub
    
    If Inventario.SelectedItem <> FLAGORO Then
        Call WriteDrop(Inventario.SelectedItem, Inventario.Amount(Inventario.SelectedItem))
        Unload Me
    Else
        If UserGLD > 10000 Then
            Call WriteDrop(Inventario.SelectedItem, 10000)
            Unload Me
        Else
            Call WriteDrop(Inventario.SelectedItem, UserGLD)
            Unload Me
        End If
    End If


    frmCantidad.Text1.Text = ""
End Sub

Y lo reemplazamos por este:


Código:
Private Sub Command2_Click()
    If Inventario.SelectedItem = 0 Then Exit Sub
    
    If Inventario.SelectedItem <> FLAGORO Then
        Call WriteDrop(Inventario.SelectedItem, Inventario.Amount(Inventario.SelectedItem))
        Unload Me
    Else
        If UserGLD > 2000 Then
            Call WriteDrop(Inventario.SelectedItem, 2000)
            Unload Me
        Else
            Call WriteDrop(Inventario.SelectedItem, UserGLD)
            Unload Me
        End If
    End If


    frmCantidad.Text1.Text = ""
End Sub

Ahi vendria a tirar de a 2k el oro. y no de a 10k.


12.- Para que el oro valla directo a la bille


en server, (MODULO_NPCs.bas)


Buscamos el sub:


Código:
Sub NPCTirarOro(MiNPC As npc, UserIndex As Integer)

y reemplazamos todo ese sub por este:


Código:
    Sub NPCTirarOro(MiNPC As npc, UserIndex As Integer)


    
   
    'SI EL NPC TIENE ORO LO TIRAMOS
    If MiNPC.GiveGLD = 0 Then
         Call WriteConsoleMsg(UserIndex, "No te dio oro el npc.", FontTypeNames.FONTTYPE_INFO)
    End If
    If MiNPC.GiveGLD > 0 Then
       UserList(UserIndex).Stats.GLD = UserList(UserIndex).Stats.GLD + MiNPC.GiveGLD
       Call WriteConsoleMsg(UserIndex, "El npc te ha dado " & MiNPC.GiveGLD & " monedas de oro", FontTypeNames.FONTTYPE_INFO)
       Call WriteUpdateUserStats(UserIndex)
   End If
  
   End Sub

Ahora lo ultimo, buscamos:


Código:
Call NPCTirarOro(MiNPC)

y lo reemplazamos por:


Código:
Call NPCTirarOro(MiNPC, UserIndex)

Listo, ahi vendria a ir el oro directo a la bille cuando matas a un npc.


13.- Por ultimo, Nombres siempre visibles.


en cliente, (TileEngine.bas)


Buscamos:


Código:
# If Nombres And Abs(nX - X) < 2 And (Abs(nY - Y)) < 2 Then

y a eso lo reemplazas por:


Código:
if nombres then

Creo que era asi, Bueno sin mas nada que se me ocurra. SALUDOS.-