Enviar respuesta 
 
Calificación:
  • 1 votos - 5 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Ranking (100% Funcional)
18-01-2012, 08:42 PM (Este mensaje fue modificado por última vez en: 19-01-2012 01:51 PM por Totolin.)
Mensaje: #1
Ranking (100% Funcional)

·Script: Ranking de Jugadores por Niveles
·Dificultad: Baja
·GUI: Por chat solamente. Falta implementarla.

Bueno, mi querida comunidad, como os prometí, traigo un sistema de ranking. Este funciona de una manera muy simple, desde donde querais que se muestre el ranking teneis que poner:

Código:
Call ranking(Index, 10)

Ese 10 lo podeis sustituir por el nº de jugadores que querais mostrar en el ranking, ya que hay un filtro que impide que se muestren más jugadores de los que hay.

Ahora viene la inserción del código.

1º- En la carpeta Scripts cread un archivo llamado "Rank.ini" con el siguiente contenido:

Código:
[GENERAL]
MaxPlayers =0

[PLAYERS]

[LEVELS]

2º- Buscad en el main.txt la función "Sub OnNewChar(Index, charnum)" e insertad en ella:

Código:
mp = GetVar("Scripts\Rank.ini","GENERAL","MaxPlayers")

    if CInt(mp) <= charnum then
        Call PutVar("Scripts\Rank.ini","GENERAL","MaxPlayers", ""&CStr(charnum))
    else
        mp = mp + 1
    Call PutVar("Scripts\Rank.ini","GENERAL","MaxPlayers", ""&mp)
    end if
    Call PutVar("Scripts\Rank.ini","PLAYERS","player" & charnum ,GetPlayerName(Index))
    Call PutVar("Scripts\Rank.ini","LEVELS","player" & charnum ,GetPlayerLevel(Index))

3º- Buscad en el main.txt la función "Sub PlayerLevelUp(Index)" y sustituidla por esta:

Código:
Sub PlayerLevelUp(Index)
    Dim TotalExp

    Do While GetPlayerExp(Index) >= GetPlayerNextLevel(Index)
        TotalExp = GetPlayerExp(Index) - GetPlayerNextLevel(Index)
        Call SetPlayerLevel(Index, GetPlayerLevel(Index) + 1)
        mp = GetVar("Scripts\Rank.ini","GENERAL","MaxPlayers")
          mp = mp + 1
          Call PutVar("Scripts\Rank.ini","GENERAL","MaxPlayers", ""&mp)
        Call SetPlayerPOINTS(Index, GetPlayerPOINTS(Index) + 1)
        Call SetPlayerExp(Index, TotalExp)
    Loop

    Call BattleMsg(Index, "Tienes " & GetPlayerPOINTS(Index) & " puntos de estado.", BRIGHTBLUE, 0)
End Sub

4º- Ahora id al final del main.txt y pegad estas funciones:

Código:
'|======================================
function GetMaxPlayers()
    GetMaxPlayers = GetVar("Scripts\Rank.ini","GENERAL","MaxPlayers")
end function
'|======================================
Sub ordenarPlayers (p, v)
    mp =  GetMaxPlayers()                

    for i = 1 to mp                
        x = v(i)
        xp = p(i)
        j = i-1
        do while ((j>=1) AND (v(j)>x))
            v(j+1) = v(j)
            p(j+1) = p(j)
            j = j-1
        loop
        v(j+1) = x
        p(j+1) = xp
    next
            
end sub
'|======================================
sub ranking(Index, rango)
    mp = GetMaxPlayers()
            rank = 10      
            Dim l(30)
            Dim p(30)

    if rango > CInt(mp) then
        rank = CInt(mp)
    else
        rank = rango
    end if
            
    for i = 1 to mp
        p(i) = GetVar("Scripts\Rank.ini","PLAYERS","player" & i)
    next    
    
    for i = 1 to mp
        l(i) = CInt(GetVar("Scripts\Rank.ini","LEVELS","player" & i))
    next
            
    Call ordenarPlayers(p, l)

    i = CInt(mp)-rank + 1
    rank = CInt(mp)
    st = "["
    do while rank>i
        st = st & p(rank) & " - Lv: " & l(rank) & "|=|"
        rank = rank-1
    loop
    st = st & p(i) & " - Lv: " & l(i) & "]"
          
        call playerMsg(Index, st, BLUE)
end sub
'|======================================

Bueno, como vereis no es complicado de instalar.
Cualquier duda preguntadla, os dejo aquí una captura para que veais como funciona:

[Imagen: Ranking.png]

Saludos Wink
Encuentra todos sus mensajes
Cita este mensaje en tu respuesta
 Agradecimiento dado por Facundoellink
18-01-2012, 08:45 PM
Mensaje: #2
RE: Ranking (100% Funcional)

no seria mejor que se colocara un custom menu, y que se abrira cuando se colocar /ranking, o que los datos queden en un .ini, yo que se
Visita su sitio web Encuentra todos sus mensajes
Cita este mensaje en tu respuesta
18-01-2012, 08:50 PM
Mensaje: #3
RE: Ranking (100% Funcional)

FoSeBaD, ya puse en la imagen que falta implementarlo gráficamente, aparte, al principio del post puse:

Totolin escribió:·GUI: Por chat solamente. Falta implementarla.

Y lo de que se abra por comando o como querais ya puse también que es cosa vuestra:

Código:
Call ranking(Index, 10)

Los invitados no pueden ver los enlaces. Por favor registrate AQUI para ver los enlaces.
Encuentra todos sus mensajes
Cita este mensaje en tu respuesta
18-01-2012, 08:52 PM
Mensaje: #4
RE: Ranking (100% Funcional)

me lo puedes acomodar parqa que el ranking se guarde en un .ini?
Visita su sitio web Encuentra todos sus mensajes
Cita este mensaje en tu respuesta
18-01-2012, 09:19 PM
Mensaje: #5
RE: Ranking (100% Funcional)

En lugar del sub ranking(Index, rango) pon este:
Código:
sub ranking(Index, rango)
    mp = GetMaxPlayers()
            rank = 10      
            Dim l(30)
            Dim p(30)

    if rango > CInt(mp) then
        rank = CInt(mp)
    else
        rank = rango
    end if
            
    for i = 1 to mp
        p(i) = GetVar("Scripts\Rank.ini","PLAYERS","player" & i)
    next    
    
    for i = 1 to mp
        l(i) = CInt(GetVar("Scripts\Rank.ini","LEVELS","player" & i))
    next
            
    Call ordenarPlayers(p, l)

    i = CInt(mp)-rank + 1
    rank = CInt(mp)
    posicion = 0
    do while rank>i
        st ="Nombre: " & p(rank) & " - Lv: " & l(rank)                    
        posicion = posicion + 1
        rank = rank - 1  
        call playerMsg(Index, st, BLUE)
        Call PutVar("Scripts\RankingFoSeBaD.ini","PLAYERS", ""&posicion&"º" ,""&st)
    loop
          
end sub

Ahora en la carpeta Scripts hay un archivo que se llama RankingFoSeBaD.ini, ahí tienes el ranking.

Los invitados no pueden ver los enlaces. Por favor registrate AQUI para ver los enlaces.
Encuentra todos sus mensajes
Cita este mensaje en tu respuesta
18-01-2012, 09:31 PM
Mensaje: #6
RE: Ranking (100% Funcional)

Esta bueno, pero como mencionó fosebad creo que utilizando un custom quedaría mas organizado, en si me encanta el scripts pero esperaré el del custom Smile

¿Te gustaría ganar dolares gratis? yo ya lo estoy haciendo Big Grin regsitrate dándole click a la imagen!
Los invitados no pueden ver los enlaces. Por favor registrate AQUI para ver los enlaces.
Encuentra todos sus mensajes
Cita este mensaje en tu respuesta
18-01-2012, 10:23 PM
Mensaje: #7
RE: Ranking (100% Funcional)

Buenísimo, me ganaste de mano justo lo estaba haciendo pero bueno, lo voy a adaptar con algunas modificaciones posiblemente... estás a full Totolín, se te agradece...

[Imagen: f33c4b9af6b5c54732734a06bd2136b7o.png]

Los invitados no pueden ver los enlaces. Por favor registrate AQUI para ver los enlaces.
Visita su sitio web Encuentra todos sus mensajes
Cita este mensaje en tu respuesta
18-01-2012, 10:48 PM (Este mensaje fue modificado por última vez en: 18-01-2012 10:48 PM por judoka.)
Mensaje: #8
RE: Ranking (100% Funcional)

Se agradece. Y también la vuelta por tu parte por estos lares, con nuevas ideas sobre algoritmos y tal.. son realmente útiles (:

Con unos pocos bucles más se podría hacer incluso para mostrarlos en una especie de tabla en un custom.

Los invitados no pueden ver los enlaces. Por favor registrate AQUI para ver los enlaces.[Imagen: logonovcv.png]
Visita su sitio web Encuentra todos sus mensajes
Cita este mensaje en tu respuesta
18-01-2012, 10:58 PM
Mensaje: #9
RE: Ranking (100% Funcional)

Si realmente ya se puede montar, solo hace falta tiempo, del cual no dispondré hasta el día 31 que acabe los exámenes.

Los invitados no pueden ver los enlaces. Por favor registrate AQUI para ver los enlaces.
Encuentra todos sus mensajes
Cita este mensaje en tu respuesta
18-01-2012, 11:27 PM
Mensaje: #10
RE: Ranking (100% Funcional)

me encanta ya casi todo es posible en AE, solo falta que reparen bug y esas cosas pero ya casi todo esl posible!

[Imagen: logonohjh.png]
[Imagen: c93ca326a24eecd92b30d421587aa7f5o.png]
Encuentra todos sus mensajes
Cita este mensaje en tu respuesta
Enviar respuesta 


Posibles temas similares...
Tema: Autor Respuestas: Vistas: Último mensaje
  [ScriptingA]Ranking Manual Augusto 10 300 27-12-2011 02:02 PM
Último mensaje: Augusto
Wink Animacion al atacar 100%funcional!!! maximo 9 1,721 23-10-2011 04:17 PM
Último mensaje: Darckiller
  [ScriptSpell]Roba 100 MP a tu oponente para ganar vida. oty5198 5 711 06-11-2009 08:36 AM
Último mensaje: Totolin

Salto de foro:


Usuario(s) navegando en este tema: 4 invitado(s)
ContáctanosAlterEngineVolver arribaVolver al contenidoArchivo (Modo simple)Sindicación RSS