• TibiaFace

    Tibiaface | Una comunidad Open Tibia donde encontras : mapas, scripts, Otserver, npc y amigos etc ...

    .
    demo menumenu

    Afiliados



    Votar:

    [Mods] Class System

    Compartir:

    Ver el tema anterior Ver el tema siguiente Ir abajo  Mensaje (Página 1 de 1.)

    1[Mods] Class System Empty [Mods] Class System Dom Abr 26, 2020 8:52 pm

    alvaro007

    alvaro007
    Miembro
    Miembro
    Descripcion escribió:Buenas, estoy intentando crear un class system, a través de un mod, de mometno tengo esto:

    Código:
    <?xml version="1.0" encoding="UTF-8"?>
    <mod name="Class System" revision="6.1.2 (OTX 7.72)" author="FrostGoD" enabled="yes"
    released="April2020"

      <config name="classSystem"><![CDATA[
        class = {
            --[[ CONFIG ]]--
          
          getArticle = function(cid, uppercase)
                return (getPlayerSex(cid) ==  0 and (uppercase and 'Clan') or (uppercase and 'Clan')) ..':'
            end,
      
            getPoints = function(cid)
                local result = db.getResult('SELECT `class` FROM `players` WHERE `id` = '.. getPlayerGUID(cid))
             local data = result:getDataInt('class')
             result:free()
             return data
            end,
      
            getRank = function(points)
                local ranks = {
                      {-3, 'Demonio'},
                      {-2, 'No-Muerto'},
                      {-1, 'Orco'},
                      {0, 'Humano'},
                      {1, 'Elfo'},
                      {2,  'Naturaleza'}
                  }
                if points > -1 then
                    table.sort(ranks, function(a, b) return a[1] > b[1] end)
                    for _, t in ipairs(ranks) do if points >= t[1] then return t[2] end end
                else
                    table.sort(ranks, function(a, b) return a[1] < b[1] end)
                    for _, t in ipairs(ranks) do if points <= t[1] then return t[2] end end
                end        
                return ranks[1][2]
            end,
          
          format = function(str)
             str = tostring(str):reverse()
             str = str:gsub("(%d)(%d)(%d)", '%1%2%3' .. (',' or ' '), math.ceil(str:len() / 3)-1)
             return str:reverse()
          end,
        }
    ]]></config>

    <event type="login" name="classRegister" event="script"><![CDATA[
        domodlib('classSystem')
        function onLogin(cid)

            registerCreatureEvent(cid, "classLook")
       registerCreatureEvent(cid, "attackspeed")
            return true
        end
    ]]></event>
          
    <event type="look" name="classLook" event="script"><![CDATA[
        domodlib('classSystem')
        function onLook(cid, thing, position, lookDistance)
            if isPlayer(thing.uid) and thing.uid ~= cid then
                doPlayerSetSpecialDescription(thing.uid,'\n'.. class.getArticle(thing.uid, true).. '' .. class.getRank(class.getPoints(thing.uid)) ..'')
             return true
          elseif thing.uid == cid then    
             local string = 'Te ves a ti mismo.'
             if getPlayerFlagValue(cid, PLAYERFLAG_SHOWGROUPINSTEADOFVOCATION) then
                string = string..' Tu eres '.. getPlayerGroupName(cid) ..'.'
             elseif getPlayerVocation(cid) ~= 0 then
                string = string..' Tu eres '.. getPlayerVocationName(cid) ..'.'
             else
                string = string..' No tienes vocacion.'
             end
             string = string..' Clan: '.. class.getRank(class.getPoints(cid)) ..'.'
       
             if getPlayerGuildId(cid) > 0 then
                string = string..' Tu eres ' .. (getPlayerGuildRank(cid) == '' and 'a member' or getPlayerGuildRank(cid)) ..' of the '.. getPlayerGuildName(cid)
                string = getPlayerGuildNick(cid) ~= '' and string..' ('.. getPlayerGuildNick(cid) ..').' or string..'.'
             end
       
             if getPlayerFlagValue(cid, PLAYERCUSTOMFLAG_CANSEECREATUREDETAILS) then
                string = string..'\nHealth: ['.. getCreatureHealth(cid) ..' / '.. getCreatureMaxHealth(cid) ..'], Mana: ['.. getCreatureMana(cid) ..' / '.. getCreatureMaxMana(cid) ..'].'
                string = string..'\nIP: '.. doConvertIntegerToIp(getPlayerIp(cid)) ..'.'
             end
       
             if getPlayerFlagValue(cid, PLAYERCUSTOMFLAG_CANSEEPOSITION) then
                string = string..'\nPosition: [X:'.. position.x..'] [Y:'.. position.y..'] [Z:'.. position.z..'].'
             end
             doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, string)  
             return false
          end
          return true
        end]]>
    </event>

    <creaturescript type="statschange" name="attackspeed" event="script"><![CDATA[
        domodlib('classSystem')

    function onStatsChange(cid, attacker, type, combat, value)

       if class.getRank(class.getPoints(cid)) ~= 0 then
             doPlayerSetExtraAttackSpeed(cid, 1900)
       end
     return true
    end
    ]]></creaturescript>
    </mod>

    Basicamente lo que quiero pedir, es una revision del codigo, ya que si no es por tabla, no se me ocurria como meter esas clases mediante un id y si hay posibilidad de mejora.
    Imagen Explicativa escribió:Imagen Explicativa: [Mods] Class System Tibiaf10
    Version del Scripts: OTx Old Version(0.3.7)

    2 participantes

    2[Mods] Class System Empty Re: [Mods] Class System Lun Abr 27, 2020 3:52 pm

    [Admin] God Maya

    [Admin] God Maya
    Administrador
    Administrador
    te complicas la vida ve y crea en groups.xml

    1player
    2 no- muerto
    3 laalala

    tan seccillo de hacer eso



    [Mods] Class System YNU5B25
    2 participantes
    http://www.tibiaface.com

    3[Mods] Class System Empty Re: [Mods] Class System Lun Abr 27, 2020 4:09 pm

    alvaro007

    alvaro007
    Miembro
    Miembro
    La cuestion es que si lo creo como un group en group.xml, lo que es el group del player no existiria por tanto todo lo que tengas programado con la variable isPlayer se anularia y se te joderia todo no?

    2 participantes

    4[Mods] Class System Empty Re: [Mods] Class System Lun Abr 27, 2020 4:13 pm

    [Admin] God Maya

    [Admin] God Maya
    Administrador
    Administrador
    alvaro007 escribió:La cuestion es que si lo creo como un group en group.xml, lo que es el group del player no existiria por tanto todo lo que tengas programado con la variable isPlayer se anularia y se te joderia todo no?

    a ver no entiendes.....

    lo que estas creando es group´no estas creando una nueva raza de igual amnera seria player



    [Mods] Class System YNU5B25
    2 participantes
    http://www.tibiaface.com

    5[Mods] Class System Empty Re: [Mods] Class System Lun Abr 27, 2020 4:20 pm

    alvaro007

    alvaro007
    Miembro
    Miembro
    A ver mi idea es que a través de un npc que ya crearé, obtengas una clase de las citadas en mi script anteriormente, esas clases cada una tendra una pasiva diferente, como por ejemplo, el attackspeed potenciado como has podido ver en mi script tambien, entonces si creo un group con esas clases, hay alguna subfuncion para llamar a esos group y poder darle al player una clase mediante el npc y luego mediante el creaturescript crear dichas pasivas?

    2 participantes

    6[Mods] Class System Empty Re: [Mods] Class System Lun Abr 27, 2020 4:33 pm

    [Admin] God Maya

    [Admin] God Maya
    Administrador
    Administrador
    doPlayerSetGroup(cid, groupid) agrega group

    getPlayerGroup(cid) == 1 verifica un groups



    [Mods] Class System YNU5B25
    2 participantes
    http://www.tibiaface.com

    7[Mods] Class System Empty Re: [Mods] Class System Lun Abr 27, 2020 8:27 pm

    alvaro007

    alvaro007
    Miembro
    Miembro
    Vale, totalmente razón, muchas gracias god Maya, ya lo tengo todo listo, me ayudas muchisimo Smile.

    Una última cuestión, se que no existe una subfuncion para toquetear la regeneracion de vida, es decir, lo que seria el health tick, pero si se puede crear una condicion con eso a un objeto, podria hacerse de alguna manera pero con una clase en cuestion, es decir como verificar la clase que eres y añadirle por ejemplo un porcentaje de regeneracion de vida, es decir, los hpticks, el tema es que no se como hacerlo ya que no existe una subfuncion como tal para eso, se te ocurre algo?

    2 participantes

    8[Mods] Class System Empty Re: [Mods] Class System Lun Abr 27, 2020 8:59 pm

    [Admin] God Maya

    [Admin] God Maya
    Administrador
    Administrador
    Tema solucionado



    [Mods] Class System YNU5B25
    2 participantes
    http://www.tibiaface.com

    Contenido patrocinado


    2 participantes

    Ver el tema anterior Ver el tema siguiente Volver arriba  Mensaje (Página 1 de 1.)

    Permisos de este foro:
    No puedes responder a temas en este foro.

     

    BienvenidosTibiaFace es una comunidad de Open Tibia. Para participar debes estar registrado (click para Regístrate).