Ir para conteúdo

DboHere

Membro
  • Registro em

  • Última visita

Histórico de Curtidas

  1. Gostei
    DboHere recebeu reputação de CainOTServer em Apelido já existe. Erro Modern Acc   
    Para Resolver esse problema e simples abre a database, vai nas ACCOUNTS, abre a ESTRUTURA e vai em NICKNAME, lá vc troca o INT por CHAR 
     
    Feito isso aperta em guardar e pronto Funcionando normal
     
    Vlw+++ Rep
  2. Gostei
    DboHere recebeu reputação de Samuel Cstr em Need Dragon Ball Heritage Sprites   
  3. Gostei
    DboHere recebeu reputação de Ottpr em Need Dragon Ball Heritage Sprites   
  4. Gostei
    DboHere recebeu reputação de Alves12 em [AJUDEM] Script para outifit   
    Roupinha.lua
     
     
    .Xml
        <action itemid="Id Do item" event="script" value="roupinha.lua"/>
  5. Gostei
    DboHere deu reputação a tataboy67 em [TFS 1.1+] Tile Party   
    Opa galera beleza? Como prometido eu tentei fazer 1 script e vim posta-lo no TibiaKing...

    O script é simples e com uma boa configuração:
    Numero de membros da Party Nível necessário Se precisa de PZ para entrarem Se precisa que todos estejam perto Se só o Leader poderá entrar Teleporte que os jogadores irão Items necessários
    Como o script funciona?
                  O script ele serve como uma forma de o jogador poder entrar em 1 Sala com a necessidade de uma Party, nível necessário e alguns Items.

    Meu intuito em fazer esses tipos de scripts: 
                   Estou cada vez mais tentando aprender um pouco mais em relação a scripts Lua... Sou um pouco leigo nessa parte, mas vou continuar treinando e estudando para alimentar meu conhecimento na linguagem e o conteúdo no Fórum. Espero que vocês me apoiem no que estou tentando fazer, e agradeço a todos que estão me ajudando a entender um pouco do assunto.

    Sem mais delongas, vamos ao Script:

    Adicione a linha em:
    (data/movements/movements.xml)
    <movevent event="StepIn" actionid="5900" script="Tile_Party.lua"/>
    Crie um arquivo em:
    (data/movements/scripts/Tile_Party.lua)
    local config = { members = 2, -- membros ou +. level = 300, -- nivel que todos os membros devem ter para entrar. leader = false, -- somente o leader pode entrar no teleport. pz = true, -- só irá funcionar se todos os membros tiverem em PZ area. pos_to = {x = 1143, y = 1064, z = 7}, -- posição que os jogadores serão teleportados. other = { pert = true, -- só poderá entrar se os membros tiverem na quant_sqm de distancia. quant_sqm = 7 -- jogadores tem que estar a 7 sqm de distancia do jogador que entrou no TP. }, items = { -- itens necessários para que os players entrem. [1] = {item = 2160, count = 1}, [2] = {item = 2159, count = 1} -- [3] = {item = ItemID, count = Quantidade} }, } function onStepIn(player, item, position, fromPosition) local party = player:getParty() if not party then player:teleportTo(fromPosition) player:getPosition():sendMagicEffect(CONST_ME_TELEPORT) position:sendMagicEffect(CONST_ME_MAGIC_RED) return player:sendCancelMessage("You don't have a party.") end local leader = party:getLeader() local member = party:getMembers() if config.leader and player ~= leader then player:teleportTo(fromPosition) player:getPosition():sendMagicEffect(CONST_ME_TELEPORT) position:sendMagicEffect(CONST_ME_MAGIC_RED) player:sendCancelMessage("Somente o leader pode entrar por aqui.") return false end table.insert(member, leader) local ready = {} if #member >= config.members-1 then for _, var in pairs(member) do if var:getLevel() > config.level then if config.other.pert then if player:getPosition():getDistance(var:getPosition()) >= config.other.quant_sqm then player:teleportTo(fromPosition) player:getPosition():sendMagicEffect(CONST_ME_TELEPORT) player:sendCancelMessage("Seu time tem que esta proximo de voce.") return end end if config.pz then if not getTileInfo(getThingPos(var)).protection then player:teleportTo(fromPosition) player:getPosition():sendMagicEffect(CONST_ME_TELEPORT) return player:sendCancelMessage("Seu time tem que estar em protection zone.") end end for k, v in pairs(config.items) do if var:getItemCount(v.item) < v.count then player:teleportTo(fromPosition) player:getPosition():sendMagicEffect(CONST_ME_TELEPORT) player:sendTextMessage(22,string.format("O membro (corno) %s não possui %sx %s.", var:getName(), v.count, ItemType(v.item):getName())) return false end end table.insert(ready, var) else player:sendTextMessage(22,"Um dos membros da party não possui nivel superior a "..config.level..".") player:teleportTo(fromPosition) player:getPosition():sendMagicEffect(CONST_ME_TELEPORT) return false end end if rawequal(#ready, #member) then for _, var in pairs(member) do for k, v in pairs(config.items) do var:removeItem(v.item, v.count) end var:sendTextMessage(22,"Your team join the room.") var:teleportTo(config.pos_to) var:getPosition():sendMagicEffect(CONST_ME_TELEPORT) end end else player:teleportTo(fromPosition) player:getPosition():sendMagicEffect(CONST_ME_TELEPORT) position:sendMagicEffect(CONST_ME_MAGIC_RED) player:sendTextMessage(20,"Somente party's com " .. config.members-1 .. " ou mais jogadores, poderão passar.") end return true end Deixe seu REP+ Para me motivar ainda mais a postar novos scripts para vocês.

    Créditos:
    @Snowsz
    @KotZletY
    @Vodkart
    @Lyu

    Está atualizado o script...
    Algumas configurações foram adicionadas !
    local config = { members = 2, -- membros ou +. level = 300, -- nivel que todos os membros devem ter para entrar. leader = false, -- somente o leader pode entrar no teleport. pz = true, -- só irá funcionar se todos os membros tiverem em PZ area. pos_to = {x = 1143, y = 1064, z = 7}, -- posição que os jogadores serão teleportados. other = { pert = true, -- só poderá entrar se os membros tiverem na quant_sqm de distancia. quant_sqm = 7 -- jogadores tem que estar a 7 sqm de distancia do jogador que entrou no TP. }, items = { -- itens necessários para que os players entrem. [1] = {item = 2160, count = 1}, [2] = {item = 2159, count = 1} -- [3] = {item = ItemID, count = Quantidade} }, }  
  6. Gostei
    DboHere deu reputação a J.L em (Resolvido)Pet System Bugado   
    tente 
    Desse modo quando a pessoa tirar o pet terá q esperar 60 segundos para usar novamente
     
    Desse modo quando a pessoa usar o pet terá q esperar 60 segundos para usar novamente
     
     
    Espero ter ajudado :D
     
  7. Gostei
    DboHere deu reputação a J.L em (Resolvido)Pet System Bugado   
    Troca seu petsystem.lua por esse
     
    Crie uma TAG no ACTION.XML
    e coloque, Mude onde esta ID par o id do item
     
    Para Adc + pet so copiar as partes
     
     
     
    Para o PET  teleportar para você quando subir escadas, ou ficar muito longe, vá em config.lua e procure por:
    teleportPlayerSummons Se estiver false coloque true, se estiver "no", coloque "yes"
     
     




    Creditos:
    @Luquinha
     
     
     
     
    Não sei se vc esqueceu de adc no post ou no sistema + caso seu script esteja funcionando
    Vc tem q adc a TAG no actions.xml tbm... 
    Pode adc uma igual essa...
     
    <action itemid="ID;ID;ID;ID" event="script" value="petsystem.lua"/>  
  8. Gostei
    DboHere recebeu reputação de KotZletY em [AJUDA] COLOCANDO SERVIDOR EM MYSQL   
    Troca Versão do xampp para 5.6.8
    E pronto.... 
     
     
  9. Gostei
    DboHere deu reputação a xWhiteWolf em [PEDIDO] Item dar efeito de gelo!   
    como prometido:


    creaturescripts/scripts/glacierrobe.lua
    --[[Script made 100% by Night Wolf and Nogard do not remove the fucking credits or I may kill you and practice necrofily with your filthy body]] --condição que irá adicionar local gelocondition = createConditionObject(CONDITION_PARALYZE) setConditionParam(gelocondition, CONDITION_PARAM_TICKS, 10000)    setConditionFormula(gelocondition, -0.9, 0, -0.9, 0)   ------- local config = { itemid = 7897, --id do item que deverá ser equipado para ativar o gelo place = 4, --posição que o item deve estar para funcionar, cheque na tabela abaixo percent = 5,  --se vc quiser 20%, coloque 5 pois 1/5 = 0,2 (20%) valorvida = 300 --quanto deve ser o valor minimo de vida a perder para executar o script  } --[[ Tabela de places possíveis  CONST_SLOT_HEAD (1) = helmet CONST_SLOT_NECKLACE (2) = necklace slot (amulet of loss etc.) CONST_SLOT_BACKPACK (3) = backpack, bag CONST_SLOT_ARMOR (4) = armor CONST_SLOT_LEFT (5) = left hand (its really hand placed >> (right page on screen)) CONST_SLOT_RIGHT (6) = right hand (its really hand placed << (left page on screen)) CONST_SLOT_LEGS (7) = legs CONST_SLOT_FEET (8) = boots CONST_SLOT_RING (9) = ring slot CONST_SLOT_AMMO (10) = ammo slot (arrows etc.)]] ----------------------------------------------- function canEffect(pos, pz, proj) -- Night Wolf based on Nord if getTileThingByPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0}).itemid == 0 then return false end if getTilePzInfo(pos) and not pz then return false end local n = not proj and 3 or 2 for i = 0, 255 do pos.stackpos = i local tile = getTileThingByPos(pos) if tile.itemid ~= 0 and not isCreature(tile.uid) then if hasProperty(tile.uid, n) or hasProperty(tile.uid, 7) then return false end end end return true end function onStatsChange(cid, attacker, type, combat, value) if type == STATSCHANGE_HEALTHLOSS and value >= config.valorvida then if (getPlayerSlotItem(cid, config.place).itemid == config.itemid) then if math.random (1,config.percent) == 1 then local pos = getPlayerPosition (cid) local effectPositions = { {x = pos.x, y = pos.y - 2, z = pos.z}, {x = pos.x, y = pos.y + 2, z = pos.z}, {x = pos.x - 2, y = pos.y, z = pos.z}, {x = pos.x + 2, y = pos.y, z = pos.z}, {x = pos.x - 2, y = pos.y - 1, z = pos.z}, {x = pos.x + 2, y = pos.y - 1, z = pos.z}, {x = pos.x + 2, y = pos.y + 1, z = pos.z}, {x = pos.x - 2, y = pos.y + 1, z = pos.z}, {x = pos.x - 1, y = pos.y - 2, z = pos.z}, {x = pos.x + 1, y = pos.y - 2, z = pos.z}, {x = pos.x + 1, y = pos.y + 2, z = pos.z}, {x = pos.x - 1, y = pos.y + 2, z = pos.z} }  local conditionPositions = { {x = pos.x, y = pos.y - 2, z = pos.z}, {x = pos.x, y = pos.y + 2, z = pos.z}, {x = pos.x - 2, y = pos.y, z = pos.z}, {x = pos.x + 2, y = pos.y, z = pos.z}, {x = pos.x - 2, y = pos.y - 1, z = pos.z}, {x = pos.x + 2, y = pos.y - 1, z = pos.z}, {x = pos.x + 2, y = pos.y + 1, z = pos.z}, {x = pos.x - 2, y = pos.y + 1, z = pos.z}, {x = pos.x - 1, y = pos.y - 2, z = pos.z}, {x = pos.x + 1, y = pos.y - 2, z = pos.z}, {x = pos.x + 1, y = pos.y + 2, z = pos.z}, ---- {x = pos.x, y = pos.y - 1, z = pos.z}, {x = pos.x, y = pos.y + 1, z = pos.z}, {x = pos.x - 1, y = pos.y, z = pos.z}, {x = pos.x + 1, y = pos.y, z = pos.z}, {x = pos.x - 1, y = pos.y + 1, z = pos.z}, {x = pos.x - 1, y = pos.y - 1, z = pos.z}, {x = pos.x + 1, y = pos.y - 1, z = pos.z}, {x = pos.x + 1, y = pos.y + 1, z = pos.z}, ------ {x = pos.x - 1, y = pos.y + 2, z = pos.z} }  if isCreature(cid) == TRUE then         for _, cPos in ipairs(conditionPositions) do local mob = getTopCreature(cPos).uid     if canEffect (cPos) and mob ~= 0 and isMonster(mob) then doAddCondition(mob, gelocondition) end  end         for _, ePos in ipairs(effectPositions) do if canEffect(ePos) then                 doSendMagicEffect(ePos, 41) end end else end else end return true else end return true end return true end creaturescripts.xml:
    <event type="statschange" name="glacierrobe" event="script" value="glacierrobe.lua"/> creaturescripts/scripts/login.lua
    obs: coloca embaixo dos outros registerCreatureEvent
    registerCreatureEvent(cid, "glacierrobe") Faça bom proveito do script!
    obs2: não remova os créditos
    obs3: sinta-se a vontade pra me REPar
  10. Curtir
    DboHere recebeu reputação de Fabio Leandro em Erro Login.lua   
    http://pastebin.com/2V57NkeF
  11. Gostei
    DboHere deu reputação a Vodkart em [8.6] Task System 4.0! (Task system + Daily Task System)   
    Removido:
     
    *Boss Room
    *Rank Task
    *Prêmios para os 10 primeiros a terminar todas as tasks
     
    Adicionado:
     
    *Daily Task System (Sistema exclusivo de Task diario, podendo pegar 1x a cada 24 hrs, irei explicar mais depois.)
    *Task agora é por progresso, você não pode sair e voltar, terá que terminar a task 1 para avançar para a task  2, assim sucessivamente.
    *Task Points
    *Level para realizar a task
    *Nova talkaction que mostra uma janela de informações sobre o level da task, premios que irá receber, progresso, etc...
    *Items para entrega(Se o jogador deverá levar algum item junto com a quantidade de monstro morta) para finalizar a task
    *Sistema de look Task (Varia de acordo com a sua quantidade de Task Points, podendo ficar por exemplo como "Huntsman", "Ranger", etc...(alterável)
    *Mods e npc mais "clean", várias linhas removidas e o sistema está mais rápido
    *Vou Adicionar "scripts extras" Como:
    --> Tile que só passa quem tiver permissão depois de finalizar determinada quest
     --> Npc de Boss Room para entrar e enfrentar o monstro quem fez determinada quest
     
     
    [+] Resumo do Task system + Daily Task System [+]
     
    Task System: É o sistema de task "original", onde consiste em matar determinada quantidade de monstros(E entregar certo itens <- é configurável), para receber recompensas como Exp, Money e Items.
     
    Algumas mudanças do simple task 3.0 para o 4.0 foram:
     
    [+] O sistema agora é por progresso, isso quer dizer que você terá que ir terminando a quest para avançar para a seguinte.
    [+] O sistema Também recebeu uma alteração, fazendo com que as Tasks precisem que o jogador tenha um level determinado
    [+] A tabela para edição está mais fácil, fazendo com que você adicione ou remova monstros com mais tranquilidade, inclusive alterações das Rewards da Task.
     
    Daily Task System: É um sistema que desenvolvi para que os jogadores sempre estejam se comunicando com o npc de Task, no caso da Task Diaria, vária de acordo com o level do jogador, por exemplo:
     
    Jogadores entre level 6 ao 49 poderá cair em uma dessas 3 Task Diarias: Orcs, Tarantulas ou Wyverns
    Jogadores entre level 50 ao 79 poderá cair em uma dessas 3 Task Diarias: Dragons, Wailing Widows ou Ancient Scarabs
     
    E por ai vai, claro que você poderá aumentar as Task Diarias dependendo do level, eu fiz 3 para cada level que é pra postar, mas tudo isso você pode aumentar! Dependendo do seu servidor.
     
    E sim, você pode fazer a TASK "ORIGINAL" e a TASK "DIARIA" ao mesmo tempo! Ambas são distintas e possuem Rewards diferenciadas!
     
    No caso da Task diaria, levando em conta que você começou a fazer ela no dia 08/01 ás 20:00 Hrs, você tem até o dia 09/01 ás 20:00Hrs para termina-la e receber a recompensa, caso termine antes, a Task diaria só irá ficar disponível para repetição a partir desta mesma data 09/01 20:00 Hrs;
     
    [+] Caso você não termine a tempo, não tem problema, basta esperar este horário e começar uma nova Task.
    [+] Caso você começou a Daily Task e terminou antes desta data. mas por algum motivo esqueceu de entregar e a mesma passou do prazo, não tem importância, caso você tenha matado todos os monstros até 09/01 20:00 Hrs, você poderá entregar está Task em qualquer horário para receber suas Rewards e começar uma task a partir do momento em que você entregou! (INJUSTIÇA AQUI NÃO CARALHO).
     
    [+] Comandos Adicionais [+]
     
    /task -- Mostra as informações da sua Task Atual, como Nome da Task, Level, Rewards, Monstros que você poderá matar, Se tem que entregar algum Item junto, etc...
    /task daily -- É basicamente mostra a mesma informação da Task Principal, porém mostra também qual o prazo limite para entrega da task.
    /task counter -- É um comando que ATIVA ou DESATIVA o contador de monstros mortos na task no seu Channel.
     
    [+] Imagens [+]
     
    Cline neste link para ver algumas imagens da Task : http://imgur.com/a/eLIY3
     
     
     
    ------------------------------------------------ // --------------------------------------------------------------
     
    [+] Instalação do Sistema [+]
     
    Requisitos: Nível Médio de conhecimento em scripting LUA
     
    Pasta Mods
     
    Simple Task.xml
     
    https://pastebin.com/raw/P5hqMC3j
     
    NPC:
     
     
    Ludger.xml
     
    https://pastebin.com/raw/R56yLWHw
     
    simple_task.lua
     
    https://pastebin.com/raw/1mRzJ6aJ
     
    ---------------------------------------------- // ----------------------------------
     
    [+] configuração [+ ]
     
    Task System Principal
     
    task_sys = { [1] = {name = "Trolls", start = 176201, monsters_list = {"Troll","Troll champion"}, level = 8, count = 40, points = 0, items = {}, reward = {}, exp = 2000, money = 2000} }  
    [1]  --> O número entre os colchetes [] significa a ordem da Task, como a Task é por progresso sempre começará no 1 e irá pro [2], assim sucessivamente.
    name --> É o nome da task que o jogador irá fazer.
    start --> é a storage que indicará se o jogador começou a Task
    monster_list ={} --> É o nome dos monstros em que o jogador deverá caçar para completar a Task
    level --> É o level necessário para dar inicio á Task
    count --> É o número de monstros que o jogador tem que matar para completar a Task
    points --> Aqui determinada quantos Task points o jogador irá receber ao completar a Task
    items = {} --> Aqui determinada se além de matar os monstros, o jogador terá que entregar item também! Caso tenha só colocar o {ITEM_ID, QUANTIDADE} EX:
    items = {{2173,1},{2160,10},{2493,2}} rewad --> Aqui determinada se o jogador irá receber itens ao terminar a Task, mesma formula do items /\
    reward = {{2520,1},{2173,1}} exp --> Se o jogador irá receber Exp ao terminar a task. 0 ou quantidade de exp
    Money --> Se o jogador irá receber dinheiro ao terminar a task. 0 ou quantidade de dinheiro
     
     
    Daily Task System
     
    daily_task = { [1] = {name = "Orcs" ,monsters_list = {"Orc Berserker","Orc Rider","Orc Leader","Orc Warlord"}, count = 100, points = 0, reward = {}, exp = 5000, money = 10000} }  
    Segue o padrão da Task original, exceto que não precisa entregar items para o npc!
     
    Como funciona A randomização de level de acordo com a Daily task?
     
    Procure por está tabela em MODS
     
    local t = { [{6,49}] = {1,3}, [{50,79}] = {4,6}, [{80,129}] = {7,9}, [{130,math.huge}] = {10,12} }  
    entre as chaves e colchetes é o level do jogador para as Daily Task, Você pode adicionar quantas você quiser!
     
    Digamos que:
     
    [{6,49}] = {1,3}  --> Quer dizer que entre o level 6 ao 49 o jogador poderá cair na Daily Task número 1(Orcs), 2(Tarantulas) ou 3(Wyvern)!
    [{50,79}] = {4,6} --> Quer dizer que entre o level 50 ao 79 o jogador poderá cair na Daily Task número 4(Dragons), 5(Wailing Widows) ou 6(Ancient Scarabs)!
    ...
    [{130,math.huge}] = {10,12} --> Quer dizer que o jogador level 130 ou MAIS poderá cair na Daily Task número 10(Undead Dragons), 11(HydraS) ou 12(Ghastly Dragons)!
     
     
    Look Rank System
    Procure por está tabela em MODS
     
    local ranks = { [{1, 20}] = "Huntsman", [{21, 50}] = "Ranger", [{51, 100}] = "Big Game Hunter", [{101, 200}] = "Trophy Hunter", [{201, math.huge}] = "Elite Hunter" }  
    Entre 1-20 Task points o Rank será Huntsman
    Entre 21-50 Task posints o Rank será Ranger
    Entre 51-100 Task Points o rank será Big Game Hunter
    etc...
    Altere como quiser!
     
     
  12. Curtir
    DboHere deu reputação a leozincorsair em Npc que da Aura   
    Olá pessoal venho aqui pedir uma alma que pudesse me ajudar, queria um script de um (npc ou talkactions) que possa comprar aura ( igual ao de poketibia) porem para player.
     
    Como funcionará? ( Se possível ^^)
    > Storage para nao usar 2 ao mesmo tempo. ( No min 5 auras disponíveis )
    > Escolher efeitos, no caso o da aura.
    > O efeito fica todo momento ate mesmo quando o player deslogar.
     
    E so por estética mesmo , deixar o personagem bonitinho rsrsrs ..
    obg deste já
    +REP 
     
  13. Gostei
    DboHere deu reputação a Ackerzin em Bug Upgrad System Ajuda!!   
    @mullino
     
    Essa é a linha 177, se você colocou pelo blocos de notas, ta vendo que o começo da frase ta menor ? 
    se você salvar desse jeito, e depois abrir o arquivo vai ter um "?" ponto de interrogação é só apagar ele !
     

     
    presta atenção que agora quando você abre o arquivo, deposi da letra a tem um pronto de interrogação, só apagar ele
     

  14. Gostei
    DboHere deu reputação a Biinhow em GESIOR - OUTFIT QUE O CHARACTER POSSUI - CHARACTER.PHP   
    @hrubesch
     Cara, você precisa colocar essa storage no script de addon doll ou no npc addoner do seu ot, aí quando você obter a storage dentro do jogo irá aparecer em seu inventário do site.
  15. Curtir
    DboHere recebeu reputação de DiigooMix em (Resolvido)Sprite Hitto Dragon Ball   
    se precisar de outra so pedir
  16. Curtir
    DboHere recebeu reputação de DiigooMix em (Resolvido)Sprite Hitto Dragon Ball   
  17. Obrigado
    DboHere recebeu reputação de DiigooMix em (Resolvido)Sprite Hitto Dragon Ball   
    Tenho essas n sei se te ajuda
    Ps n fui eu que fiz só to disponibilizando
  18. Curtir
    DboHere recebeu reputação de DiigooMix em (Resolvido)Sprite Hitto Dragon Ball   
    Quando vc for cortar n coloca majin boo coloca a de cima dele 2 x
  19. Curtir
    DboHere recebeu reputação de henkas em Need Dragon Ball Heritage Sprites   
  20. Curtir
    DboHere recebeu reputação de henkas em Need Dragon Ball Heritage Sprites   
  21. Curtir
    DboHere deu reputação a Everson Miranda em [Profissão] System (NPC + Look)   
    @lucasprimolemos Entendi... Eu estou do trabalho agora, mas em casa eu tenho algo que possa te ajudar. Vou elaborar pelo metodo que vi de um vipsystem. que fica [VIP] antes do nome do player ex [VIP] Aerismith, entende? 
    Vou elaborar para profissões Tipo [Marceneiro] Aerosmith
    Teria algum problema ou tem que ser exatamente no look?
  22. Obrigado
    DboHere deu reputação a psychonaut em (Resolvido)Como reduzir o Script?   
    Não tem como fazer menos se você precisa fazer algo, a menor distancia entre dois pontos é uma linha reta, então a melhor organização é usar a função mais adequada o possível, pra por exemplo, em vez de fazer duas ou três funções para um resultado, fazer uma só com a função certa(falando em funções do TFS). Nessa parte do código você já poderia ter usado elseif:
    Elseif pois lua não tem switch tipo o do C, algumas pessoas criam ela com caseof ou vararg, se tivessem varios elseif no código, seria melhor um
     
    function onUse(cid, item, frompos, item2, topos) if getPlayerSkillLevel(cid,3) <= 1 then doCreatureAddMana(cid, mana/2) elseif getPlayerSkillLevel(cid,3) == 1 or getPlayerSkillLevel(cid,3) == 2 then doCreatureAddMana(cid, mana/1.75) elseif getPlayerSkillLevel(cid,3) == 2 or getPlayerSkillLevel(cid,3) == 3 then doCreatureAddMana(cid, mana/1.50) elseif getPlayerSkillLevel(cid,3) == 3 or getPlayerSkillLevel(cid,3) == 4 then doCreatureAddMana(cid, mana/1.25) end end  
     
    Caso tenha mais coisas no script. uma coisa que ajuda a limpar o código é criar funções, quando você vai repetir algo muitas vezes, é só usar a função em vez de escrever tudo de novo.
    Lua tem uma performance incrível, por isso que é bastante usada. Como não tem uma estrutura de repetição aí, não vejo notável diferença pra colocar a função getPlayerSkillLevel em uma variável local(local playerskilllevel = getPlayerSkillLevel(cid,3)), o que pode ser feito mas são poucos valores ali, mas se tivesse uma estrutura de repetição, você colocaria a função antes em uma variável.
     
    Os 3 R da reciclagem se aplicam em lua, reduza, reuse e recicle.
     
    Porém no seu caso, acho que a criação de uma formula seria melhor, mas você não poderia escolher um valor especifico para cada level. A sua formula teria que usar o getPlayerSkillLevel junto com outros valores para adicionar a mana.
    doCreatureAddMana(cid, (getPlayerMaxMana(cid) / 10) + (mana * ((getPlayerSkillLevel(cid,3) / alguma coisa)))) Esse é só um exemplo, não sei direito se você está usando um padrão, se quiser reduzir mesmo o script, vale a pena usar um, dá pra criar qualquer padrão, até usar alguns ifs pra isso.
    Essa aí do exemplo adiciona 10% da mana máxima do jogador + a mana que você colocou lá(100) * uma porcentagem do skill level ou alguma outra coisa, esse é só um exemplo.

    A solução pra mim então é, ou usar uma formula(aí não vai controlar os valores) ou reduzir usando uma alternativa pro switch pois a cadeia de comparação não é eficiente.
     
    Essa daí permite passar parâmetros no mudarmana[ ](parâmetro) por causa da função(é exemplo, tem que editar), você poderia remover pois não vai usar, mas pode usar se precisar colocar mais coisas.
    local valor local mudarmana = { [1] = 2, [2] = 1.75, [3] = 1.50, [4] = 1.25 } mudarmana[getPlayerSkillLevel(cid,3)] doCreatureAddMana(cid, mana/valor)  
    Você pode repetir o mesmo valor pra 2 aí, ou então
    local mudarmana = { [0] = 2, [2] = 1.75, [4] = 1.50, [6] = x, } local i if (getPlayerSkillLevel(cid,3) % 2 == 0) then i = getPlayerSkillLevel(cid,3) else i = getPlayerSkillLevel(cid,3) + 1 end doCreatureAddMana(cid, mana/mudarmana[i]) Isso é pra somar um caso seja ímpar, pois não entendi muito bem, sua verificação tá meio bugada, maior ou igual a 0 ou menor ou igual a 1, seria 0 ou 1, o mesmo em seguida, 1 ou 2, então pra não repetir poderia verificar se é ímpar e somar 1, aí você só teria números pares, entãa só coloca números pares na tabela mudarmana com o valor, bom não sei se tá funcionando o script, foi só um exemplo.
     
    Tem varias outras maneiras só dar uma pesquisada, ah e a tabela ali fica fora da função onUse.
  23. Curtir
    DboHere deu reputação a L3K0T em Halloween Quest show off   
    não sou melhor mapper do mundo mais tá ai um pouco do meu trabalho

     

     

     

     
     


  24. Curtir
    DboHere deu reputação a Dwarfer em (Resolvido)spell criar items   
    local items = {{2160,1},{2158,2},{2148,4}} --{id, quantidade} function onCastSpell(cid, var) local r = math.random(1, #items) local i, c = items[r][1], items[r][2] if not isItemStackable(i) then for k = 1, c do doPlayerAddItem(cid, i, 1) end else doPlayerAddItem(cid, i, c) end doSendMagicEffect(getPlayerPosition(cid), CONST_ME_MAGIC_BLUE) return true end  
  25. Curtir
    DboHere deu reputação a Dwarfer em Item Key System   
    Fala, galerinha! Há um tempo atrás tinha feito esse sisteminha simples, como achei que não seria muito útil, acabou sumindo nas profundezas das pastas do meu computador. No entanto, como vi o pedido do membro @DboHere, acho que outras pessoas podem precisar.
     
    Como funciona:
    Uma key única que pode ser usada somente uma vez adicionará um item ao player quando for utilizada.
     
    - Criando uma key contendo 10 crystal coins: 
    !createkey 2160,10 ou !createkey crystal coin,10 
     
    O player receberá a mensagem: "You have created the key: rXo-980376. You can add other items using !addkey."
     
    - Adicionando novos itens à mesma key:
    !addkey rXo-980376,2463,1
     
    O player receberá a mensagem: "You have added other items to the key rXo-980376."
     
    - Checando os itens que uma key possui:
    !checkkey rXo-980376
     

     
    - Utilizando a key o player receberá todos os itens associados a essa key. Depois disso, a key ficará inválida.
    !key rXo-980376
     
    - Deletando a key da database (apenas se necessário):
    !deletekey rXo-980376
     
    Configuração:
     
    Execute o seguinte comando no mysql do seu servidor:
     
    CREATE TABLE `code_key` ( `id` INT NOT NULL AUTO_INCREMENT, `key` VARCHAR(255) NOT NULL, `item_id` INT NOT NULL, `count` INT NOT NULL, `invalid` INT NOT NULL DEFAULT 0, PRIMARY KEY (`id`) );  
    Em talkactions/scripts, crie um arquivo:
     
    keysystem.lua
     
     
    Em "access" edite o grupo que pode utilizar cada comando. No exemplo abaixo, apenas players com acesso maior que 3 podem utilizar o comando !createkey.
     
    ["!createkey"] = {access = 3}, 
     
    Em talkactions.xml, adicione a tag: <talkaction words="!key;!createkey;!deletekey;!checkkey;!addkey" event="script" value="keysystem.lua"/>
     
    E é isso, espero que seja útil  

Informação Importante

Confirmação de Termo