Bueno les cuento, en los codigs del server, en el modulo UsUaRiOs, tengo el sub : Sub CheckUserLevel(ByVal UserIndex As Integer). Por favor antes de mirar el sub, miren mas abajo.
Pongo el sub en 4 partes, para q este ordenado:
PRIMERA PARTE:
- Sub CheckUserLevel(ByVal UserIndex As Integer)
- '*************************************************
- 'Author: Unknown
- 'Last modified: 01/10/2007
- 'Chequea que el usuario no halla alcanzado el siguiente nivel,
- 'de lo contrario le da la vida, mana, etc, correspodiente.
- '07/08/2006 Integer - Modificacion de los valores
- '01/10/2007 Tavo - Corregido el BUG de STAT_MAXELV
- '24/01/2007 Pablo (ToxicWaste) - Agrego modificaciones en ELU al subir de nivel.
- '24/01/2007 Pablo (ToxicWaste) - Agrego modificaciones de la subida de mana de los magos por lvl.
- '13/03/2007 Pablo (ToxicWaste) - Agrego diferencias entre el 18 y el 19 en Constitución.
- '*************************************************
- On Error GoTo errhandler
- Dim Pts As Integer
- Dim Constitucion As Integer
- Dim AumentoHIT As Integer
- Dim AumentoMANA As Integer
- Dim AumentoSTA As Integer
- Dim AumentoHP As Integer
- Dim WasNewbie As Boolean
- Do While UserList(UserIndex).Stats.Exp >= UserList(UserIndex).Stats.ELU
- '¿Alcanzo el maximo nivel?
- If UserList(UserIndex).Stats.ELV >= STAT_MAXELV Then
- UserList(UserIndex).Stats.Exp = 0
- UserList(UserIndex).Stats.ELU = 0
- Call SendData(SendTarget.toall, 0, PrepareMessageConsoleMsg(UserList(UserIndex).Name & " alcanzo el nivel maximo!", FontTypeNames.FONTTYPE_GUILD))
- Exit Sub
- End If
- WasNewbie = EsNewbie(UserIndex)
- 'Checkea otra vez, esto sucede si tiene mas EXP y puede saltarse el maximo
- 'nivel
- If UserList(UserIndex).Stats.ELV >= STAT_MAXELV Then
- UserList(UserIndex).Stats.Exp = 0
- UserList(UserIndex).Stats.ELU = 0
- Exit Sub
- End If
- 'Store it!
- Call Statistics.UserLevelUp(UserIndex)
- Call SendData(SendTarget.ToPCArea, UserIndex, PrepareMessagePlayWave(SND_NIVEL))
- Call WriteConsoleMsg(UserIndex, "¡Has subido de nivel!", FontTypeNames.FONTTYPE_INFO)
- If UserList(UserIndex).Stats.ELV = 1 Then
- Pts = 10
- Else
- 'For multiple levels being rised at once
- Pts = Pts + 5
- End If
- UserList(UserIndex).Stats.ELV = UserList(UserIndex).Stats.ELV + 1
- UserList(UserIndex).Stats.Exp = UserList(UserIndex).Stats.Exp - UserList(UserIndex).Stats.ELU
- 'Call GiveClanRep(UserIndex, UserList(UserIndex).Stats.ELV)
- 'Nueva subida de exp x lvl. Pablo (ToxicWaste)
- If UserList(UserIndex).Stats.ELV < 15 Then
- UserList(UserIndex).Stats.ELU = UserList(UserIndex).Stats.ELU * 1.4
- ElseIf UserList(UserIndex).Stats.ELV < 21 Then
- UserList(UserIndex).Stats.ELU = UserList(UserIndex).Stats.ELU * 1.35
- ElseIf UserList(UserIndex).Stats.ELV < 33 Then
- UserList(UserIndex).Stats.ELU = UserList(UserIndex).Stats.ELU * 1.3
- ElseIf UserList(UserIndex).Stats.ELV < 45 Then
- UserList(UserIndex).Stats.ELU = UserList(UserIndex).Stats.ELU * 1.225
- 'Else
- ' UserList(UserIndex).Stats.ELU = UserList(UserIndex).Stats.ELU * 1.8
- End If
PARTE 2:
- Constitucion = UserList(UserIndex).Stats.UserAtributos(eAtributos.Constitucion)
- Select Case UserList(UserIndex).clase
- Case eClass.Warrior 'Aumentado en 1 Min respecto de alkon.
- Select Case Constitucion
- Case 21
- AumentoHP = RandomNumber(9, 12)
- Case 20
- AumentoHP = RandomNumber(9, 11)
- Case 19
- AumentoHP = RandomNumber(8, 11)
- Case 18
- AumentoHP = RandomNumber(8, 10)
- Case 17
- AumentoHP = RandomNumber(7, 10)
- Case 16
- AumentoHP = RandomNumber(7, 9)
- Case 15
- AumentoHP = RandomNumber(6, 9)
- Case 14
- AumentoHP = RandomNumber(6, 8)
- Case 13
- AumentoHP = RandomNumber(5, 8)
- Case 12
- AumentoHP = RandomNumber(5, 7)
- End Select
- AumentoHIT = IIf(UserList(UserIndex).Stats.ELV > 35, 2, 3)
- AumentoSTA = AumentoSTDef
- Case eClass.Hunter 'Aumentado en 1 Min respecto de alkon.
- Select Case Constitucion
- Case 21
- AumentoHP = RandomNumber(9, 11)
- Case 20
- AumentoHP = RandomNumber(8, 11)
- Case 19
- AumentoHP = RandomNumber(8, 10)
- Case 18
- AumentoHP = RandomNumber(7, 10)
- Case 17
- AumentoHP = RandomNumber(7, 9)
- Case 16
- AumentoHP = RandomNumber(6, 9)
- Case 15
- AumentoHP = RandomNumber(6, 8)
- Case 14
- AumentoHP = RandomNumber(5, 8)
- Case 13
- AumentoHP = RandomNumber(5, 7)
- Case 12
- AumentoHP = RandomNumber(4, 7)
- End Select
- AumentoHIT = IIf(UserList(UserIndex).Stats.ELV > 35, 2, 3)
- AumentoSTA = AumentoSTDef
- Case eClass.Pirat
- Select Case Constitucion
- Case 21
- AumentoHP = RandomNumber(8, 12)
- Case 20
- AumentoHP = RandomNumber(8, 11)
- Case 19
- AumentoHP = RandomNumber(7, 11)
- Case 18
- AumentoHP = RandomNumber(7, 10)
- Case 17
- AumentoHP = RandomNumber(6, 10)
- Case 16
- AumentoHP = RandomNumber(6, 9)
- Case 15
- AumentoHP = RandomNumber(5, 9)
- Case 14
- AumentoHP = RandomNumber(5, 8)
- Case 13
- AumentoHP = RandomNumber(4, 8)
- Case 12
- AumentoHP = RandomNumber(4, 7)
- End Select
- AumentoHIT = 3
- AumentoSTA = AumentoSTDef
- Case eClass.Paladin
- Select Case Constitucion
- Case 21
- AumentoHP = RandomNumber(8, 11)
- Case 20
- AumentoHP = RandomNumber(7, 11)
- Case 19
- AumentoHP = RandomNumber(7, 10)
- Case 18
- AumentoHP = RandomNumber(6, 10)
- Case 17
- AumentoHP = RandomNumber(6, 9)
- Case 16
- AumentoHP = RandomNumber(5, 9)
- Case 15
- AumentoHP = RandomNumber(5, 8)
- Case 14
- AumentoHP = RandomNumber(4, 8)
- Case 13
- AumentoHP = RandomNumber(4, 7)
- Case 12
- AumentoHP = RandomNumber(3, 7)
- End Select
- AumentoHIT = IIf(UserList(UserIndex).Stats.ELV > 35, 1, 3)
- AumentoMANA = UserList(UserIndex).Stats.UserAtributos(eAtributos.Inteligencia)
- AumentoSTA = AumentoSTDef
- Case eClass.Thief
- Select Case Constitucion
- Case 21
- AumentoHP = RandomNumber(8, 12)
- Case 20
- AumentoHP = RandomNumber(8, 11)
- Case 19
- AumentoHP = RandomNumber(7, 11)
- Case 18
- AumentoHP = RandomNumber(7, 10)
- Case 17
- AumentoHP = RandomNumber(6, 10)
- Case 16
- AumentoHP = RandomNumber(6, 9)
- Case 15
- AumentoHP = RandomNumber(5, 9)
- Case 14
- AumentoHP = RandomNumber(5, 8)
- Case 13
- AumentoHP = RandomNumber(4, 8)
- Case 12
- AumentoHP = RandomNumber(4, 7)
- End Select
- AumentoHIT = 1
- AumentoSTA = AumentoSTLadron
- Case eClass.Mage
- Select Case Constitucion
- Case 21
- AumentoHP = RandomNumber(6, 8)
- Case 20
- AumentoHP = RandomNumber(5, 8)
- Case 19
- AumentoHP = RandomNumber(5, 7)
- Case 18
- AumentoHP = RandomNumber(4, 7)
- Case 17
- AumentoHP = RandomNumber(4, 6)
- Case 16
- AumentoHP = RandomNumber(3, 6)
- Case 15
- AumentoHP = RandomNumber(3, 5)
- Case 14
- AumentoHP = RandomNumber(2, 5)
- Case 13
- AumentoHP = RandomNumber(2, 4)
- Case 12
- AumentoHP = RandomNumber(1, 4)
- End Select
- If AumentoHP < 1 Then AumentoHP = 4
- AumentoHIT = 1 'Nueva dist de mana para mago (ToxicWaste)
- AumentoMANA = 2.8 * UserList(UserIndex).Stats.UserAtributos(eAtributos.Inteligencia)
- AumentoSTA = AumentoSTMago
PARTE 3:
- Case eClass.Lumberjack
- Select Case Constitucion
- Case 21
- AumentoHP = RandomNumber(8, 11)
- Case 20
- AumentoHP = RandomNumber(7, 11)
- Case 19
- AumentoHP = RandomNumber(7, 10)
- Case 18
- AumentoHP = RandomNumber(6, 10)
- Case 17
- AumentoHP = RandomNumber(6, 9)
- Case 16
- AumentoHP = RandomNumber(5, 9)
- Case 15
- AumentoHP = RandomNumber(5, 8)
- Case 14
- AumentoHP = RandomNumber(4, 8)
- Case 13
- AumentoHP = RandomNumber(4, 7)
- Case 12
- AumentoHP = RandomNumber(3, 7)
- End Select
- AumentoHIT = 2
- AumentoSTA = AumentoSTLeñador
- Case eClass.Miner
- Select Case Constitucion
- Case 21
- AumentoHP = RandomNumber(8, 11)
- Case 20
- AumentoHP = RandomNumber(7, 11)
- Case 19
- AumentoHP = RandomNumber(7, 10)
- Case 18
- AumentoHP = RandomNumber(6, 10)
- Case 17
- AumentoHP = RandomNumber(6, 9)
- Case 16
- AumentoHP = RandomNumber(5, 9)
- Case 15
- AumentoHP = RandomNumber(5, 8)
- Case 14
- AumentoHP = RandomNumber(4, 8)
- Case 13
- AumentoHP = RandomNumber(4, 7)
- Case 12
- AumentoHP = RandomNumber(3, 7)
- End Select
- AumentoHIT = 2
- AumentoSTA = AumentoSTMinero
- Case eClass.Fisher
- Select Case Constitucion
- Case 21
- AumentoHP = RandomNumber(8, 11)
- Case 20
- AumentoHP = RandomNumber(7, 11)
- Case 19
- AumentoHP = RandomNumber(7, 10)
- Case 18
- AumentoHP = RandomNumber(6, 10)
- Case 17
- AumentoHP = RandomNumber(6, 9)
- Case 16
- AumentoHP = RandomNumber(5, 9)
- Case 15
- AumentoHP = RandomNumber(5, 8)
- Case 14
- AumentoHP = RandomNumber(4, 8)
- Case 13
- AumentoHP = RandomNumber(4, 7)
- Case 12
- AumentoHP = RandomNumber(3, 7)
- End Select
- AumentoHIT = 1
- AumentoSTA = AumentoSTPescador
- Case eClass.Cleric
- Select Case Constitucion
- Case 21
- AumentoHP = RandomNumber(7, 10)
- Case 20
- AumentoHP = RandomNumber(6, 10)
- Case 19
- AumentoHP = RandomNumber(6, 9)
- Case 18
- AumentoHP = RandomNumber(5, 9)
- Case 17
- AumentoHP = RandomNumber(5, 8)
- Case 16
- AumentoHP = RandomNumber(4, 8)
- Case 15
- AumentoHP = RandomNumber(4, 7)
- Case 14
- AumentoHP = RandomNumber(3, 7)
- Case 13
- AumentoHP = RandomNumber(3, 6)
- Case 12
- AumentoHP = RandomNumber(2, 6)
- End Select
- AumentoHIT = 2
- AumentoMANA = 2 * UserList(UserIndex).Stats.UserAtributos(eAtributos.Inteligencia)
- AumentoSTA = AumentoSTDef
- Case eClass.Druid
- Select Case Constitucion
- Case 21
- AumentoHP = RandomNumber(7, 10)
- Case 20
- AumentoHP = RandomNumber(6, 10)
- Case 19
- AumentoHP = RandomNumber(6, 9)
- Case 18
- AumentoHP = RandomNumber(5, 9)
- Case 17
- AumentoHP = RandomNumber(5, 8)
- Case 16
- AumentoHP = RandomNumber(4, 8)
- Case 15
- AumentoHP = RandomNumber(4, 7)
- Case 14
- AumentoHP = RandomNumber(3, 7)
- Case 13
- AumentoHP = RandomNumber(3, 6)
- Case 12
- AumentoHP = RandomNumber(2, 6)
- End Select
- AumentoHIT = 2
- AumentoMANA = 2 * UserList(UserIndex).Stats.UserAtributos(eAtributos.Inteligencia)
- AumentoSTA = AumentoSTDef
PARTE 4:
- Case eClass.Assasin
- Select Case Constitucion
- Case 21
- AumentoHP = RandomNumber(7, 11)
- Case 20
- AumentoHP = RandomNumber(6, 11)
- Case 19
- AumentoHP = RandomNumber(6, 10)
- Case 18
- AumentoHP = RandomNumber(6, 10)
- Case 17
- AumentoHP = RandomNumber(5, 8)
- Case 16
- AumentoHP = RandomNumber(4, 8)
- Case 15
- AumentoHP = RandomNumber(4, 7)
- Case 14
- AumentoHP = RandomNumber(3, 7)
- Case 13
- AumentoHP = RandomNumber(3, 6)
- Case 12
- AumentoHP = RandomNumber(2, 6)
- End Select
- AumentoHIT = IIf(UserList(UserIndex).Stats.ELV > 35, 1, 3)
- AumentoMANA = UserList(UserIndex).Stats.UserAtributos(eAtributos.Inteligencia)
- AumentoSTA = AumentoSTDef
- Case eClass.Bard
- Select Case Constitucion
- Case 21
- AumentoHP = RandomNumber(7, 10)
- Case 20
- AumentoHP = RandomNumber(6, 10)
- Case 19
- AumentoHP = RandomNumber(6, 9)
- Case 18
- AumentoHP = RandomNumber(5, 9)
- Case 17
- AumentoHP = RandomNumber(5, 8)
- Case 16
- AumentoHP = RandomNumber(4, 8)
- Case 15
- AumentoHP = RandomNumber(4, 7)
- Case 14
- AumentoHP = RandomNumber(3, 7)
- Case 13
- AumentoHP = RandomNumber(3, 6)
- Case 12
- AumentoHP = RandomNumber(2, 6)
- End Select
- AumentoHIT = 2
- AumentoMANA = 2 * UserList(UserIndex).Stats.UserAtributos(eAtributos.Inteligencia)
- AumentoSTA = AumentoSTDef
- Case eClass.Blacksmith, eClass.Carpenter
- Select Case Constitucion
- Case 21
- AumentoHP = RandomNumber(7, 10)
- Case 20
- AumentoHP = RandomNumber(6, 10)
- Case 19
- AumentoHP = RandomNumber(6, 9)
- Case 18
- AumentoHP = RandomNumber(5, 9)
- Case 17
- AumentoHP = RandomNumber(5, 8)
- Case 16
- AumentoHP = RandomNumber(4, 8)
- Case 15
- AumentoHP = RandomNumber(4, 7)
- Case 14
- AumentoHP = RandomNumber(3, 7)
- Case 13
- AumentoHP = RandomNumber(3, 6)
- Case 12
- AumentoHP = RandomNumber(2, 6)
- End Select
- AumentoHIT = 2
- AumentoSTA = AumentoSTDef
- Case eClass.Bandit ' +1 / +1 respecto a Alkon
- Select Case Constitucion
- Case 21
- AumentoHP = RandomNumber(9, 11)
- Case 20
- AumentoHP = RandomNumber(7, 11)
- Case 19
- AumentoHP = RandomNumber(7, 10)
- Case 18
- AumentoHP = RandomNumber(6, 10)
- Case 17
- AumentoHP = RandomNumber(9, 9)
- Case 16
- AumentoHP = RandomNumber(5, 9)
- Case 15
- AumentoHP = RandomNumber(5, 8)
- Case 14
- AumentoHP = RandomNumber(4, 8)
- Case 13
- AumentoHP = RandomNumber(4, 7)
- Case 12
- AumentoHP = RandomNumber(3, 7)
- End Select
- AumentoHIT = IIf(UserList(UserIndex).Stats.ELV > 35, 1, 3)
- AumentoMANA = IIf(UserList(UserIndex).Stats.MaxMAN = 300, 0, UserList(UserIndex).Stats.UserAtributos(eAtributos.Inteligencia) - 10)
- If AumentoMANA < 4 Then AumentoMANA = 4
- AumentoSTA = AumentoSTLeñador
- Case Else
- Select Case Constitucion
- Case 21
- AumentoHP = RandomNumber(6, 9)
- Case 20
- AumentoHP = RandomNumber(5, 9)
- Case 19, 18
- AumentoHP = RandomNumber(4, 8)
- Case Else
- AumentoHP = RandomNumber(5, Constitucion \ 2) - AdicionalHPCazador
- End Select
- AumentoHIT = 2
- AumentoSTA = AumentoSTDef
- End Select
- 'Actualizamos HitPoints
- UserList(UserIndex).Stats.MaxHP = UserList(UserIndex).Stats.MaxHP + AumentoHP
- If UserList(UserIndex).Stats.MaxHP > STAT_MAXHP Then _
- UserList(UserIndex).Stats.MaxHP = STAT_MAXHP
- 'Actualizamos Stamina
- UserList(UserIndex).Stats.MaxSta = UserList(UserIndex).Stats.MaxSta + AumentoSTA
- If UserList(UserIndex).Stats.MaxSta > STAT_MAXSTA Then _
- UserList(UserIndex).Stats.MaxSta = STAT_MAXSTA
- 'Actualizamos Mana
- UserList(UserIndex).Stats.MaxMAN = UserList(UserIndex).Stats.MaxMAN + AumentoMANA
- If UserList(UserIndex).Stats.ELV < 36 Then
- If UserList(UserIndex).Stats.MaxMAN > STAT_MAXMAN Then _
- UserList(UserIndex).Stats.MaxMAN = STAT_MAXMAN
- Else
- If UserList(UserIndex).Stats.MaxMAN > 9999 Then _
- UserList(UserIndex).Stats.MaxMAN = 9999
- End If
- If UserList(UserIndex).clase = eClass.Bandit Then 'mana del bandido restringido hasta 300
- If UserList(UserIndex).Stats.MaxMAN > 300 Then
- UserList(UserIndex).Stats.MaxMAN = 300
- End If
- End If
- 'Actualizamos Golpe Máximo
- UserList(UserIndex).Stats.MaxHIT = UserList(UserIndex).Stats.MaxHIT + AumentoHIT
- If UserList(UserIndex).Stats.ELV < 36 Then
- If UserList(UserIndex).Stats.MaxHIT > STAT_MAXHIT_UNDER36 Then _
- UserList(UserIndex).Stats.MaxHIT = STAT_MAXHIT_UNDER36
- Else
- If UserList(UserIndex).Stats.MaxHIT > STAT_MAXHIT_OVER36 Then _
- UserList(UserIndex).Stats.MaxHIT = STAT_MAXHIT_OVER36
- End If
- 'Actualizamos Golpe Mínimo
- UserList(UserIndex).Stats.MinHIT = UserList(UserIndex).Stats.MinHIT + AumentoHIT
- If UserList(UserIndex).Stats.ELV < 36 Then
- If UserList(UserIndex).Stats.MinHIT > STAT_MAXHIT_UNDER36 Then _
- UserList(UserIndex).Stats.MinHIT = STAT_MAXHIT_UNDER36
- Else
- If UserList(UserIndex).Stats.MinHIT > STAT_MAXHIT_OVER36 Then _
- UserList(UserIndex).Stats.MinHIT = STAT_MAXHIT_OVER36
- End If
- 'Notificamos al user
- If AumentoHP > 0 Then
- Call WriteConsoleMsg(UserIndex, "Has ganado " & AumentoHP & " puntos de vida.", FontTypeNames.FONTTYPE_INFO)
- End If
- If AumentoSTA > 0 Then
- Call WriteConsoleMsg(UserIndex, "Has ganado " & AumentoSTA & " puntos de vitalidad.", FontTypeNames.FONTTYPE_INFO)
- End If
- If AumentoMANA > 0 Then
- Call WriteConsoleMsg(UserIndex, "Has ganado " & AumentoMANA & " puntos de magia.", FontTypeNames.FONTTYPE_INFO)
- End If
- If AumentoHIT > 0 Then
- Call WriteConsoleMsg(UserIndex, "Tu golpe maximo aumento en " & AumentoHIT & " puntos.", FontTypeNames.FONTTYPE_INFO)
- Call WriteConsoleMsg(UserIndex, "Tu golpe minimo aumento en " & AumentoHIT & " puntos.", FontTypeNames.FONTTYPE_INFO)
- End If
- Call LogDesarrollo(UserList(UserIndex).Name & " paso a nivel " & UserList(UserIndex).Stats.ELV & " gano HP: " & AumentoHP)
- UserList(UserIndex).Stats.MinHP = UserList(UserIndex).Stats.MaxHP
- Loop
- 'If it ceased to be a newbie, remove newbie items and get char away from newbie dungeon
- If Not EsNewbie(UserIndex) And WasNewbie Then
- Call QuitarNewbieObj(UserIndex)
- If UCase$(MapInfo(UserList(UserIndex).Pos.map).Restringir) = "NEWBIE" Then
- Call WarpUserChar(UserIndex, 26, 50, 50, True)
- Call WriteConsoleMsg(UserIndex, "Debes abandonar el Dungeon Newbie.", FontTypeNames.FONTTYPE_INFO)
- End If
- End If
- 'Send all gained skill points at once (if any)
- If Pts > 0 Then
- Call WriteLevelUp(UserIndex, Pts)
- UserList(UserIndex).Stats.SkillPts = UserList(UserIndex).Stats.SkillPts + Pts
- Call WriteConsoleMsg(UserIndex, "Has ganado un total de " & Pts & " skillpoints.", FontTypeNames.FONTTYPE_INFO)
- End If
- Call WriteUpdateUserStats(UserIndex)
- Exit Sub
- errhandler:
- Call LogError("Error en la subrutina CheckUserLevel - Error : " & Err.Number & " - Description : " & Err.description)
- End Sub
LISTO, ya estan las 4 partes, ahora les muestro q modifiqe, y nose xq no anda.
En este sub, tengo un if:
- '¿Alcanzo el maximo nivel?
- If UserList(UserIndex).Stats.ELV >= STAT_MAXELV Then
- UserList(UserIndex).Stats.Exp = 0
- UserList(UserIndex).Stats.ELU = 0
- Call SendData(SendTarget.toall, 0, PrepareMessageConsoleMsg(UserList(UserIndex).Name & " alcanzo el nivel maximo!", FontTypeNames.FONTTYPE_GUILD))
- Exit Sub
- End If
Antes este if lo tenia sin el call senddata, sin embargo qiero q cuando un user llegue a lvl max salga en consoola "global", o para todo el mundo, y avise "xusuario" llego a nivel maximo, probe, y si, cuando sos nivel maximo, salta el cartel, sin embargo, lo q yo qiero es q aparezca este mensaje en consola solamente cunado te convertis en nivel maximo. Lo q a mi me pasa es q una vez soy maximo, y vuelvo a ganar experiencia vuelve a aprecer. Creo yo q es xq cuando gano experiencia, se vuelve a chekear si soy maximo, pero nose q hacer. Si alguien me da una mano, muchisimas gracias.
Si no se entiende algo diganme.
Saludo Milenium BT.






![Aprendiz [3] Aprendiz [3]](./images/ranks/Rango8.gif)



665
![Oraculo [5] Oraculo [5]](./images/ranks/Rango29.gif)
