Ir para conteúdo

penisagudo

Membro
  • Registro em

  • Última visita

Tudo que penisagudo postou

  1. Ah sim tinha entendido de outra forma, manda a parte da source onde vc quem fazer essa verificação para eu te ajudar
  2. @luangop cara eu acredito que não seja possível, usando oldclient, lembrando que posso estar errado pelo motivo que precisaria editar o mesmo
  3. @Guilherme HP cara normalmente tem algumas sources as quais já vem com crítico, dá uma procurada no seu config.lua por “critical” lá provavelmente deve ter a linha da chance de dar crítico e também a quantia que irá aumentar com o dano crítico.
  4. @vitaoms releia o tópico onde o dwarfer apresentou a solução.
  5. @MatCollier mano tem a opção já pronta, se eu não me engano a própria carta que vc utiliza para dar rerroll você tem essa opção gastando 10 unidades. acredito que na versão que vc utilize já tenha isso
  6. @xNightWalker Tem certeza que o cara nao esta com nenhum tipo de group? Seu talk.xml esta configurado corretamente? Não tem nenhum outro comando com as mesmas funções do /i?
  7. Vou chamar la!
  8. @Enforc só peço por favor para marcar como melhor resposta para o tópico aparecer como resolvido, obrigado!
  9. @Enforc Teste esse e veja se resolve. local skills = { [32384] = {id=SKILL_SWORD,voc=4}, -- KNIGHT [32385] = {id=SKILL_AXE,voc=4}, -- KNIGHT [32386] = {id=SKILL_CLUB,voc=4}, -- KNIGHT [32387] = {id=SKILL_DISTANCE,voc=3,range=CONST_ANI_SIMPLEARROW}, -- PALADIN [32388] = {id=SKILL_MAGLEVEL,voc=2,range=CONST_ANI_SMALLICE}, -- DRUID [32389] = {id=SKILL_MAGLEVEL,voc=1,range=CONST_ANI_FIRE}, -- SORCERER [32124] = {id=SKILL_SWORD,voc=4}, -- KNIGHT [32125] = {id=SKILL_AXE,voc=4}, -- KNIGHT [32126] = {id=SKILL_CLUB,voc=4}, -- KNIGHT [32127] = {id=SKILL_DISTANCE,voc=3,range=CONST_ANI_SIMPLEARROW}, -- PALADIN [32128] = {id=SKILL_MAGLEVEL,voc=2,range=CONST_ANI_SMALLICE}, -- DRUID [32129] = {id=SKILL_MAGLEVEL,voc=1,range=CONST_ANI_FIRE} -- SORCERER } local houseDummies = {32143, 32144, 32145, 32146, 32147, 32148} local freeDummies = {32142, 32149} local skillRate = configManager.getNumber(configKeys.RATE_SKILL) local magicRate = configManager.getNumber(configKeys.RATE_MAGIC) local function start_train(pid,start_pos,itemid,fpos, bonusDummy) local player = Player(pid) if player ~= nil then local pos_n = player:getPosition() if start_pos:getDistance(pos_n) == 0 and getTilePzInfo(pos_n) then if player:getItemCount(itemid) >= 1 then local exercise = player:getItemById(itemid,true) if exercise:isItem() then if exercise:hasAttribute(ITEM_ATTRIBUTE_CHARGES) then local charges_n = exercise:getAttribute(ITEM_ATTRIBUTE_CHARGES) if charges_n >= 1 then exercise:setAttribute(ITEM_ATTRIBUTE_CHARGES,(charges_n-1)) local voc = player:getVocation() if skills[itemid].id == SKILL_MAGLEVEL then if not bonusDummy then player:addManaSpent(math.ceil(500*magicRate)) else player:addManaSpent(math.ceil(500*magicRate)*1.1) -- 10% end else if not bonusDummy then player:addSkillTries(skills[itemid].id, 1*skillRate) else player:addSkillTries(skills[itemid].id, (1*skillRate)*1.1) -- 10% end end fpos:sendMagicEffect(CONST_ME_HITAREA) if skills[itemid].range then pos_n:sendDistanceEffect(fpos, skills[itemid].range) end local training = addEvent(start_train, voc:getAttackSpeed(), pid,start_pos,itemid,fpos) player:setStorageValue(Storage.isTraining,1) else exercise:remove(1) player:sendTextMessage(MESSAGE_INFO_DESCR, "Your training weapon vanished.") stopEvent(training) player:setStorageValue(Storage.isTraining,0) end end end end else player:sendTextMessage(MESSAGE_INFO_DESCR, "Your training has stopped.") stopEvent(training) player:setStorageValue(Storage.isTraining,0) end else stopEvent(training) if player then -- verificar se o player ainda existe (logado), caso esteja, enviar mensagem de erro e parar treino. isso evita erros no console player:sendTextMessage(MESSAGE_INFO_DESCR, "Your training has stopped.") player:setStorageValue(Storage.isTraining,0) end end return true end function onUse(player, item, fromPosition, target, toPosition, isHotkey) local start_pos = player:getPosition() if player:getStorageValue(Storage.isTraining) == 1 then player:sendTextMessage(MESSAGE_INFO_DESCR, "You are already training.") return false end if target:isItem() then if isInArray(houseDummies,target:getId()) then if not skills[item.itemid].range and (start_pos:getDistance(target:getPosition()) > 1) then player:sendTextMessage(MESSAGE_INFO_DESCR, "Get closer to the dummy.") stopEvent(training) return true end player:sendTextMessage(MESSAGE_INFO_DESCR, "You started training.") start_train(player:getId(),start_pos,item.itemid,target:getPosition(), true) elseif isInArray(freeDummies, target:getId()) then if not skills[item.itemid].range and (start_pos:getDistance(target:getPosition()) > 1) then player:sendTextMessage(MESSAGE_INFO_DESCR, "Get closer to the dummy.") stopEvent(training) return true end player:sendTextMessage(MESSAGE_INFO_DESCR, "You started training.") start_train(player:getId(),start_pos,item.itemid,target:getPosition(), false) end end return true end
  10. @tcheco1994 Normalmente na vps da google você tem que dar acesso a algumas pastas para que o site tenha acesso aos xmls. Teste executar no seu cmd(putty): cd /home/otserv/data Para você entrar na pasta do seu ot, logo após: chmod 777 -R items Após atualiza seu site e verifica se conseguiu.
  11. @aicilopmes123 Cria um tópico sobre isso e me marca que te ajudo.
  12. Ótimo, qualquer coisa to ai, marca como melhor resposta também pf para saberem que ja foi resolvido
  13. @Usuaruio Vamos la entao faz assim. Em actions.xml você coloca: Sendo que no X você coloca o valor do Unique que desejar e não esqueça de colocar o nome do seu script desejado. <action uniqueid="6063-6065" event="script" value="nomedoarquivo.lua"/> Após isso crie um arquivo com mesmo nome e coloque isso dentro: local chests = { [6063] = {itemNecessario = x, amountNecessario = 1 , itemRecebido = 2184, amount = 1}, [6064] = {itemNecessario = x, amountNecessario = 1 , itemRecebido = 6528, amount = 1}, [6065] = {itemNecessario = x, amountNecessario = 1 , itemRecebido = 5803, amount = 1} } -- Como editar: --Entre []: significa o unique ID do báu que voce colocara no mapa --itemNecessario: É o item necessario para voce trocar (sua Moeda de troca) --itemRecebido: É o ID do item que será dado ao jogador que abrir o báu --amount: É a quantidade de items que o player vai receber } function onUse(cid,item,fromPosition,itemEx,toPosition) local v = chests[itemRecebido.uid] if getPlayerItemCount(cid, v.itemNecessario) ~= v.amountNecessario then return doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR, "Voce não tem a quantidade necessaria para troca.") elseif getPlayerFreeCap(cid) < (getItemWeightById(v.itemRecebido)*v.amount) then return doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR, "Voce nao tem " .. (getItemWeightById(v.itemRecebido)*v.amount) .. " cap para trocar o item") end if getPlayerItemCount(cid, v.itemNecessario) == v.amountNecessario then doPlayerAddItem(cid, v.itemRecebido, v.amount) else for i = 1, v.amount do doPlayerAddItem(cid, v.itemRecebido, v.amount) end end return doPlayerSendTextMessage(cid,22,"Voce recebeu: " .. getItemNameById(v.itemRecebido) .. ".") end Deixei tudo explicado no script caso ainda tenha duvidas você so precisara mexer nessa parte: [6065] = {itemNecessario = x, amountNecessario = 1 , itemRecebido = 5803, amount = 1} -- Como editar: --Entre []: significa o unique ID do báu que voce colocara no mapa --itemNecessario: É o item necessario para voce trocar (sua Moeda de troca) --itemRecebido: É o ID do item que será dado ao jogador que abrir o báu --amount: É a quantidade de items que o player vai receber Você pode colocar quantos baús quiser em apenas 1 script lembrando sempre de editar os numeros das uniquesIds no actions.xml conforme a seguir colocando sempre o menor - maior numero da Unique. <action uniqueid="6063-6065" event="script" value="nomedoarquivo.lua"/> Não se esqueça de colocar as uniques nos baús no Mapa editor. Qualquer duvida ou erro me reporte.
  14. Qual seu tfs? E me diz uma coisa vc quer somente por baú? Pq pelo o que entendi ficaria estranho isso aí em 1 baú só até tive uma ideia que pode ser uma solução mais me passa primeiro qual tfs usa
  15. Possivelmente cara quando você esta colocando os monstros no mapa você clica e arrasta gerando teoricamente mais de 1 monstro no mapa por segundo fazendo com que o RME não entenda o tempo para o respawn adequado. Tente da seguinte forma e faça o teste, abre um bicho dando duplo clique em cima e verifica o Spawn Interval nao esta como "0". Se mudar vai funcionar.
  16. Você deve criar o item ou duplicar pelo item.otb através de um editor, somente criar no itens.xml nao tem como
  17. Tenta fazer usando globalstorage que recebe o id da guild do player que passar pelo piso sendo assim mais fácil você dar essa bônus exp
  18. Mano normalmente a otpanel já te da tudo redondo e caso vc tenha alguma dificuldade eles disponibilizam um canal de ajuda próprio recomendo você utilizar lá para esse tipo de dúvidas que o suporte será mais preciso
  19. Então normalmente quando você loga sua conta do Admin no site você tem acesso a um painel onde você consegue adicionar point ou coins no seu caso para um jogador. Caso não queira dessa forma você pode criar uma talk que mande um update no banco setando a quantidade de coins que vc quer dar para o player. Ou no último caso acesse seu banco de dados e modifique a quantidade no player específico. 3 formas que você pode resolver seu problema!
  20. Cara explica um pouco melhor seu problema é tenta colocar uma foto para eu poder entender o que acontece
  21. Mano eu acredito que no oldclient não dê certo, somente se vc utilizar alguma base de OTC que seria a mesma utilizada pelo pokemon. Até deve ser possível porém acredito muito trabalhoso.
  22. Ok muito obrigado já estou adicionando agora mesmo!
  23. Perfeito foi a minha suspeita, eu ja tentei de diversas forma e lua não da esse suporte e teria que realmente fazer uma função na source, posso criar um tópico para vocês me darem uma ajudinha ou apenas uma luz por onde posso começar, sei o que fazer porem como fazer não esta vindo a ideia

Informação Importante

Confirmação de Termo