Ir para conteúdo

luangop

Membro
  • Registro em

  • Última visita

Tudo que luangop postou

  1. Provavelmente vc ja tem algum outro script de look então, procura no seu creaturescripts algo relacionado a look e manda o script
  2. function onLook(cid, thing, position, lookDistance) if isPlayer(thing.uid) and not (thing.uid == cid) then local player = thing.uid doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Informações de '".. getCreatureName(player) .."':") doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, "-- HP: ".. getCreatureHealth(player) .."/".. getCreatureMaxHealth(player) .."") doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "-- MP: ".. getCreatureMana(player) .."/".. getCreatureMaxMana(player) .."") return true end return false end Acho que isso resolve a questão de si mesmo, quanto a hora não da pra remover, ao menos não sem mexer na source (eu acho).
  3. rsrs e só clicar no coração ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~>>>>
  4. Não testei, vê ai se funciona: data/creaturescripts creaturescripts.xml <event type="look" name="PlayerLookInfo" event="script" value="pli.lua"/> Em data/creaturescripts/scripts abra login.lua Abaixo de qualquer linha que possua 'registerCreatureEvent' adicione essa linha: registerCreatureEvent(cid, "PlayerLookInfo") Em data/creaturescripts/scripts crie um arquivo pli.lua com o seguinte: function onLook(cid, thing, position, lookDistance) if isPlayer(thing.uid) and not (thing.uid == cid) then local player = thing.uid doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Informações de '".. getCreatureName(player) .."':") doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, "-- HP: ".. getCreatureHealth(player) .."/".. getCreatureMaxHealth(player) .."") doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "-- MP: ".. getCreatureMana(player) .."/".. getCreatureMaxMana(player) .."") return true end end
  5. Perdão erro meu... Modifique a parte: local pip = getPlayerIp(cid) para: local pip = doConvertIntegerToIp(getPlayerIp(cid))
  6. O correto seria você ter criado um novo tópico fazendo seu pedido, mas vamos lá. Tente assim: function onSay(cid, words, param, channel) local pname = getPlayerNameByGUID(getPlayerGUID(cid)) local pip = getPlayerIp(cid) local file = io.open('data/logs/'.. pname ..'.txt','a') file:write("Dia: "..os.date("%d").."/"..os.date("%m").."/"..os.date("%Y").." Hora: "..os.date("%X").." Ip: ".. pip .." usou o comando >> ".. words .." ".. param .."\n") file:close() if(param == '') then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Command param required.") return true end local t = string.explode(param, ",") local ret = RETURNVALUE_NOERROR local pos = getCreaturePosition(cid) local id = tonumber(t[1]) if(not id) then id = getItemIdByName(t[1], false) if(not id) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Item wich such name does not exists.") return true end end local amount = 100 if(t[2]) then amount = t[2] end local item = doCreateItemEx(id, amount) if(t[3] and getBooleanFromString(t[3])) then if(t[4] and getBooleanFromString(t[4])) then pos = getCreatureLookPosition(cid) end ret = doTileAddItemEx(pos, item) else ret = doPlayerAddItemEx(cid, item, true) end if(ret ~= RETURNVALUE_NOERROR) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Couldn't add item: " .. t[1]) return true end doDecayItem(item) if(not isPlayerGhost(cid)) then doSendMagicEffect(pos, 87) end return true end Obs: Neste código fiz com que na pasta logs seja criado um .txt com o nome de quem digitou o comando, para separar os comandos de cada staff em arquivo diferente.
  7. Vc não falou qual seu TFS, não falou se fez isso pelo items.xml ou por script, não postou script... fica difícil ajudar.
  8. Caramba rsrs Desculpe a falta de suporte, eu raramente entro no fórum...
  9. data/talkactions talkactions.xml <talkaction words="/entregar" log="yes" access="6" script="entregar.lua"/> data/talkactions/scripts entregar.lua data/actions actions.xml <action actionid="65470" event="script" value="BauDonate.lua"/> *actionid="65470" <~~ Action do bau no map-editor. data/actions/scripts BauDonate.lua Observações: O comando que criei pra vc armazena um log em data/logs com nome de entregar-log.txt com todos os detalhes dos pontos entregues. A action do bau armazena um log em data/logs com nome de entregue-log.txt com todos os detalhes de quando alguem recebe os pontos no bau. Qualquer dúvida e só avisar, mas como já deve ter percebido eu demoro um pouco a responder rsrs.
  10. Simples, basta criar uma talk de force storage para setar o valor donate que o player tem a receber, e no bau uma action que checa se o player tem a storage, se tiver entrega os pontos. Qual o tfs usado?
  11. Não testei, qualquer coisa avisa. Obs: Posso demorar a responder, pois acesso pouco o fórum atualmente.
  12. Não, na verdade ele foi bem específico, ele quer uma magia que heale 30% a mais de uma já existente no jogo dele, porém ele não teve o senso lógico pra saber que pra isso, preciso saber o valor que o script dele está healando, para assim criar outro que heale 30% a mais...
  13. Poste o script deste Big Regeneration....
  14. luangop postou uma resposta no tópico em Suporte Tibia OTServer
    Editei tudo na minha primeira resposta lá, desculpe a demora. E como já falei acima, não manjo nada de NPC, fiz na sorte então se saiu algo que presta já estou no lucro kkk Seria bem mais fácil fazer por talkaction, porém por NPC adiciona mais RPG ao jogo.
  15. Não fui eu que fiz, quem fez essa parte foi o amigo la em cima
  16. luangop postou uma resposta no tópico em Suporte Tibia OTServer
    Não manjo de tibia superior a 8.6, Mas se quiser postar o script q faz isso ai, tenho boa noção de inglês e lua, se tiver como aumentar deve ser fácil identificar no script.
  17. Erro meu, mude essa parte: local config = { cooldown = 0, -- tempo entre uma magia e outra tempo = 10, -- tempo em segundos que ficará healando percent = 0.5, --- porcentagem da vida que cura storage = 45382, effect = 12 --- efeito que vai sair mana_cost_percent = 20 -- % da mana que vai custar } para: local config = { cooldown = 0, -- tempo entre uma magia e outra tempo = 10, -- tempo em segundos que ficará healando percent = 0.5, --- porcentagem da vida que cura storage = 45382, effect = 12, --- efeito que vai sair mana_cost_percent = 20, -- % da mana que vai custar }
  18. Estranho, nem eu nem o amigo acima mechemos na função de healar, a menos que o script já não era funcional, deveria funcionar. Refiz os cálculos da minha forma, tente assim: *Edit: Realmente o script estava sem a função de add o health no player kk local config = { cooldown = 0, -- tempo entre uma magia e outra tempo = 10, -- tempo em segundos que ficará healando percent = 0.5, --- porcentagem da vida que cura storage = 45382, effect = 12 --- efeito que vai sair mana_cost_percent = 20 -- % da mana que vai custar } local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE) setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false) local condition = createConditionObject(CONDITION_HASTE) setConditionParam(condition, CONDITION_PARAM_TICKS, 10000) setConditionFormula(condition, 0.8, -72, 0.8, -72) setCombatCondition(combat, condition) function onCastSpell(cid, var) local manacost = math.ceil((getCreatureMaxMana(cid) / 100) * (config.mana_cost_percent)) if getCreatureMana(cid) >= manacost then if os.time() - getPlayerStorageValue(cid, config.storage) >= config.cooldown then for i = 1, config.tempo do addEvent(function() if isCreature(cid) then local lifedraw = math.ceil(getCreatureMaxHealth(cid) * (config.percent)/100) local pos = getPlayerPosition(cid) doSendAnimatedText(pos, "+"..lifedraw , TEXTCOLOR_GREEN) doCreatureAddHealth(cid, lifedraw) doSendMagicEffect(pos, config.effect) end end, 1000*i) end doPlayerSetStorageValue(cid, config.storage, os.time()) doCombat(cid, combat, var) doCreatureAddMana(cid, -(manacost)) else doPlayerSendCancel(cid, "Your Mass Healing is at cooldown, you must wait "..(config.cooldown - (os.time() - getPlayerStorageValue(cid, config.storage))).." seconds.") end else doPlayerSendCancel(cid, "You do not have enough mana.") end return true end
  19. Faltou uma verificação de mana, segue o script do amigo acima com a verificação: local config = { cooldown = 0, -- tempo entre uma magia e outra tempo = 10, -- tempo em segundos que ficará healando percent = 0.5, --- porcentagem da vida que cura storage = 45382, effect = 12, --- efeito que vai sair mana_cost_percent = 10 -- % da mana que vai custar } local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE) setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false) local condition = createConditionObject(CONDITION_HASTE) setConditionParam(condition, CONDITION_PARAM_TICKS, 10000) setConditionFormula(condition, 0.8, -72, 0.8, -72) setCombatCondition(combat, condition) function onCastSpell(cid, var) if getCreatureMana(cid) >= (config.mana_cost_percent*getCreatureMaxMana(cid)*0.01) then if os.time() - getPlayerStorageValue(cid, config.storage) >= config.cooldown then for i = 1, config.tempo do addEvent(function() if isCreature(cid) then local lifedraw = math.ceil(getCreatureMaxHealth(cid) * (config.percent)/100) local pos = getPlayerPosition(cid) doSendAnimatedText(pos, "+"..lifedraw , TEXTCOLOR_GREEN) doSendMagicEffect(pos, config.effect) end end, 1000*i) end doPlayerSetStorageValue(cid, config.storage, os.time()) doCombat(cid, combat, var) doPlayerAddMana(cid, -(config.mana_cost_percent*getCreatureMaxMana(cid)*0.01)) else doPlayerSendCancel(cid, "Your Mass Healing is at cooldown, you must wait "..(config.cooldown - (os.time() - getPlayerStorageValue(cid, config.storage))).." seconds.") end else doPlayerSendCancel(cid, "You do not have enough mana.") end return true end
  20. luangop postou uma resposta no tópico em Suporte Tibia OTServer
    E não aparece nenhum erro na distro? Tente assim: local config = { itemprice = 2160, -- id do dinheiro necessário para recarregar price = 50, -- quantos 'itemprice' será necessário para recarregar itemID = 9999, -- id do item usos = 100, -- quantos usos do comando o player vai comprar storage = 84454, -- storage que salva quantos usos do item o player vai ganhar ( mesmo do storage2 da talkaction) } local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local talkState = {} function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end function onThink() npcHandler:onThink() doCreatureSetLookDirection(getNpcId(), (2)) end function creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid if(msgcontains(msg, 'recarregar') or msgcontains(msg, 'yes')) then selfSay('Voce deseja recarregar seu '.. getItemNameById(config.itemID) ..' por '.. price ..' '.. itemprice ..'?', cid) talkState[talkUser] = 1 elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 1) then if getPlayerStorageValue(cid, config.storage) <= 0 then if(getPlayerItemCount(cid, config.itemID) >= 1) then if(doPlayerRemoveItem(cid, config.itemprice, config.price) == TRUE) then setPlayerStorageValue(cid, config.storage, config.usos) selfSay('Pronto, agora você pode usar por mais '.. config.usos ..' vezes!', cid) else selfSay('Desculpe, mas voce nao tem dinheiro.', cid) end else selfSay('Desculpe, mas voce nao possui '.. getItemNameById(config.itemID) ..'', cid) end else elfSay('Desculpe, mas voce ainda pode usar o comando '.. getPlayerStorageValue(cid, config.storage) ..' vezes.', cid) end talkState[talkUser] = 0 elseif(msgcontains(msg, 'no') and isInArray({1}, talkState[talkUser]) == TRUE) then talkState[talkUser] = 0 selfSay('Ok, obrigado.', cid) end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Não incomoda não, eu não manjo nada de npc, estou fazendo na sorte então isso é um aprendizado para mim rsrs
  21. luangop postou uma resposta no tópico em Suporte Tibia OTServer
    <?xml version="1.0" encoding="UTF-8"?> <npc name="Recharger" script="Rechargerbroad.lua" walkinterval="350000" floorchange="0" speed="0" lookdir="2"> <health now="150" max="150"/> <look type="510" head="115" body="148" legs="39" feet="41"/> <parameters> <parameter key="message_greet" value="Ola jogador, deseja {recarregar}?"/> </parameters> </npc>
  22. luangop postou uma resposta no tópico em Suporte Tibia OTServer
    Data/talkactions/scripts PlayerBroadcast.lua data/talkactions talkactions.xml <talkaction words="/player100" event="script" value="PlayerBroadcast.lua"/> data/npc Rechargebroad.xml data/npc/scripts Rechargerbroad.lua Criei sem testar, qualquer coisa só falar.
  23. Simples cara, remova a função de fazer a árvore voltar ao normal, e no items.xml, no item da árvore cortada, ponha a tag DecayTo Dessa forma: <attribute key="decayTo" value="ID_DA_ARVORE_NORMAL" /> <attribute key="duration" value="TEMPO_EM_SEGUNDOS_PARA_ARVORE_VOLTAR_AO_NORMAL" />
  24. Segundo baú: function onUse(cid, item, fromPos, item2, toPos) local sto = 8445682 if getPlayerStorageValue(cid, sto) < 1 then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você precisa fazer a quest da primeira aura antes de fazer a segunda.") elseif getPlayerStorageValue(cid, sto) > 1 then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você já possui aura level 2 ou superior.") elseif getPlayerStorageValue(cid, sto) == 1 then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Parabéns! Você adquiriu a aura level 2!") setPlayerStorageValue(cid, sto, 2) doSendMagicEffect(getThingPos(cid), 29) end end

Informação Importante

Confirmação de Termo