Ir para conteúdo
Entre para seguir isso  
vyctor17

advance-reward

Recommended Posts

vyctor17    35
vyctor17

  • advance-reward
  • slawkens
  • tfs 8.54 pl1/OBS: meu distro e editado
  • eu gostei e pode ajudar bastante outras pessoas
  • Como Instalar facil pegeu tudo do script e cole em um xml e e so colocar na pasta mod e configurar igual os exemplos que tem no mod e
  • pronto
  • para que serve o script ele da o player um reward(recompensa) por passar de level,skill. com amplas configurações

 

 

<?xml version="1.0" encoding="UTF-8"?>
<mod name="advance-reward" version="1.0" author="slawkens" contact="[email protected]" enabled="yes">
       <config name="advance-reward-config"><![CDATA[
               rewards = {
                       -- {skill = SKILL__LEVEL, level = 100, storage = 3100, item = 2160, count = 30},
                       -- {skill = SKILL_FISHING, level = 20, storage = 3101, item = 3976, count = 100},
                       -- more examples
                       --{skill = SKILL_SWORD, level = 110, storage = 3102, item = 2400, message = "Take this as a reward for advancing in 120 sword fighting level!", effect = 61}

                       --[[ items in a backpack
                       {skill = SKILL__LEVEL, level = 50, storage = 3103, item = 2000,
                               inside = {
                                       {id = 2160, count = 1},
                                       {id = 2152, count = 50},
                                       {id = 2195}
                               }
                       }
                       ]]--

                       --[[ only for specified vocations (in this case - sorcerers & druids)
                       {skill = SKILL_AXE, level = 50, storage = 3104, item = 7884,
                               callback = function(cid, reward)
                                       return isInArray({1, 2, 5, 6}, getPlayerVocation(cid))
                               end
                       }
                       ]]--

                       --[[ this one will only broadcast message (without giving any reward)
                       {skill = SKILL__LEVEL, level = 300, storage = 3105, message = false,
                               callback = function(cid, reward)
                                       doBroadcastMessage(getCreatureName(cid) .. " has advanced to Level 300. Congratulations!", MESSAGE_EVENT_ADVANCE)
                                       return true
                               end
                       },
                       ]]--
               }

               -- message player see when getting reward, can be personalized for each reward
               message = "Congratulations, you advanced in {SKILL} level {LEVEL} and received {ITEM} as a reward!"
               messageType = MESSAGE_INFO_DESCR

               -- uncomment if you want to see magic effect when reward is added
               --effect = 30 -- magic effect id
       ]]></config>

       <event type="advance" name="advance-reward-event" event="script"><![CDATA[

               local config = {
                       rewards = rewards,
                       message = message,
                       effect = effect
               }

               function onAdvance(cid, skill, oldLevel, newLevel)
                       for _, reward in pairs(config.rewards) do
                               if(reward.skill == skill and newLevel >= reward.level
                                       and (reward.storage <= 0 or getPlayerStorageValue(cid, reward.storage) ~= 1))
                               then
                                       if(not reward.callback or reward.callback(cid, reward)) then
                                               local continue = true

                                               if(reward.item) then
                                                       if(not reward.inside) then
                                                               if(doPlayerAddItem(cid, reward.item, reward.count or 1) == false) then
                                                                       continue = false
                                                               end
                                                       elseif(isItemContainer(reward.item)) then
                                                               local container = doCreateItemEx(reward.item, 1)
                                                               for _, item in ipairs(reward.inside) do
                                                                       doAddContainerItem(container, item.id, item.count or 1)
                                                               end

                                                               if(doPlayerAddItemEx(cid, container, false) ~= RETURNVALUE_NOERROR) then
                                                                       continue = false
                                                               end
                                                       end
                                               end

                                               if(continue) then
                                                       if(reward.storage > 0) then
                                                               setPlayerStorageValue(cid, reward.storage, 1)
                                                       end

                                                       local message = reward.message or config.message
                                                               if(type(reward.message) == 'boolean') then
                                                                       message = reward.message
                                                               end

                                                       if(message) then
                                                               local t = {
                                                                       ["NAME"] = getCreatureName(cid),
                                                                       ["SKILL"] = SKILL_NAMES[skill],
                                                                       ["OLDLEVEL"] = oldLevel,
                                                                       ["NEWLEVEL"] = newLevel,
                                                                       ["LEVEL"] = reward.level
                                                               }
                                                               if(reward.item) then
                                                                       t["ITEM"] = getItemNameById(reward.item)
                                                               end

                                                               local messageType = reward.messageType or config.messageType
                                                               doPlayerSendTextMessage(cid, messageType, tostring(message:gsub("{(.-)}", function(v) return t[v] end)))
                                                       end

                                                       local effect = reward.effect or config.effect
                                                       if(effect) then
                                                               doSendMagicEffect(getCreaturePosition(cid), effect)
                                                       end
                                               end
                                       end
                               end
                       end
                       return true
               end
       ]]></event>

       <event type="login" name="advance-reward-login" event="buffer"><![CDATA[
               registerCreatureEvent(cid, "advance-reward-event")
               _result = true
       ]]></event>
</mod>

Editado por vyctor17

Compartilhar este post


Link para o post
Oneshot    24
Oneshot

É um script realmente útil, creio que pode ser muito bem aplicado em servidores 4Fun onde um jogador pode alcançar marcas de nível superiores a 2000.

 

Aprovado!

Você será remunerado em V$ 10, obrigado pela contribuição.

Script não pode ser avaliado pela não-autoria do criador deste tópico.

Compartilhar este post


Link para o post
7663555    0
7663555

tem como fazer um que de dinheiro quando matar algum player?

Compartilhar este post


Link para o post
Gorgulf    0
Gorgulf

/\ :o?

Gostei, eu tava usando varios scripts pra ter mais ou menos a função desse, kk, vou dar 1 mechida pra ver se chega onde eu quero :)

Compartilhar este post


Link para o post
Visitante
Este tópico está impedido de receber novos posts.
Entre para seguir isso  
  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×