Ir para conteúdo

Frenesy

Membro
  • Registro em

  • Última visita

Tudo que Frenesy postou

  1. Fiz uma pequena modificação no Script. Removi repetições desnecessárias e adicionei uma tabela de configuração no início do Script para facilitar a instalação.
  2. Frenesy postou uma resposta no tópico em Suporte Tibia OTServer
    Deixa eu ver se entendi: De x em x horas, você quer que um portal apareça. Ao aparecer, o jogador que entrar por ele, será teleportado para uma das quatro salas de acordo com o nível dele. Ao entrar, espera o evento começar - ou seja, ajuntar um número maior de players dentro da arena. Quando o portal tiver sido fechado, a batalha começa e o último que sobreviver, ganhará X Item. Os que morrerem, irão direto para o templo. O ganhador sairá por um portal dentro da arena que o levará para fora. Esqueci de alguma coisa? Uma outra pergunta: Qual a versão do seu servidor?
  3. Frenesy postou uma resposta no tópico em Suporte Tibia OTServer
    O script que postou está muito desorganizado. Isso desanima em tentar ajudar. Por favor, conserte. Também seria bom falar sobre o que seu script exatamente faz.
  4. Em onStatsChange, o cid vale pela própria criatura professor?
  5. local lvlcrit = 48913 local multiplier = 1.5 local efeito = 1 --- efeito que vai sair do player/criatura que tomar o crítico function onStatsChange(cid, attacker, target, type, combat, value) if type == STATSCHANGE_HEALTHLOSS or type == STATSCHANGE_MANALOSS and isCreature(attacker) then if (getPlayerStorageValue(attacker, lvlcrit)*3) >= math.random (0,1000) then dano = math.ceil(value*(multiplier)) doTargetCombatHealth(attacker, cid, combat, -dano, -dano, 255) doSendAnimatedText(getCreaturePos(target), "Critical!!", 144) doSendMagicEffect(getCreaturePos(target), efeito) return false end end return true end Estou no serviço, não tenho como testar. Espero que funcione.
  6. Frenesy postou uma resposta no tópico em Scripts tfs 0.4 (OLD)
    Que bom que gostaram. Obrigado!
  7. Frenesy postou uma resposta no tópico em Scripts tfs 0.4 (OLD)
    Falaa pessoal do TK! Trouxe um script que fiz aqui para o meu servidor e gostaria de compartilhar com vocês: A idéia é bem simples: É apenas um NPC que só vende items para você se você tiver tal storage. Testado em: 8.60 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() end local choose = {} local cancel = {} local available = {} --== Configurar storage e Items a venda aqui. local stor = 1500 -- configurar storage aqui local Trade = { {id=15646, buy=200, sell=0, name='buggy backpack'}, {id=10522, buy=200, sell=0, name='crown backpack'}, {id=10518, buy=200, sell=0, name='demon backpack'}, {id=11243, buy=200, sell=0, name='dragon backpack'}, } --== Fim das Configurações. local function setNewTradeTable(table) local items = {} for _, v in ipairs(table) do items[v.id] = {itemId = v.id, buyPrice = v.buy, sellPrice = v.sell, subType = 0, realName = v.name} end return items end local function setNewLineTable(oldTable, newTable) for k, v in pairs(oldTable) do table.insert(newTable, k, v) end return true 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, 'Trade') or msgcontains(msg, 'trade')) and getPlayerStorageValue(cid, stor) == 1 then selfSay('Essas são minhas ofertas!', cid) tradeRank = Trade local items = setNewTradeTable(tradeRank) local function onBuy(cid, item, subType, amount, ignoreCap, inBackpacks) if items[item].buyPrice then doPlayerAddItem(cid, items[item].itemId, amount) doPlayerRemoveMoney(cid, items[item].buyPrice * amount) return true end return true end local function onSell(cid, item, subType, amount, ignoreCap, inBackpacks) if items[item].sellPrice then doPlayerAddMoney(cid, items[item].sellPrice * amount) doPlayerRemoveItem(cid, items[item].itemId, amount) return true end return true end openShopWindow(cid, tradeRank, onBuy, onSell) else selfSay('Desculpe, mas você não tem o que é necessário para negociar comigo.', cid) end return TRUE end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Esse é meu primeiro script para a galera do TK. Espero que gostem! Abraços!
  8. No caso do NPC Chat, o probema é simples: Pegue por exemplo essa fala de seu NPC: selfSay("Sorry, you don\'t have enough money.") Agora pegue como exemplo essa outra mensagem: selfSay('Sorry, you don\'t have enough money.', cid) Percebeu alguma diferença? O cid no final faz com que o NPC fale as falas dele no NPC Chat, se não tiver o cid, ele fala no default.
  9. Nesse caso, é óbvio que o problema não era a janela de Outfit. Poste o erro para termos uma noção do que está acontecendo.
  10. Cassino.lua function onUse(cid, item, frompos, item2, topos) --== Configurações local config = { items = {0000, 0000, 0000, 0000, 0000}, -- Itens que ele pode ganhar vp = 0000, -- ID do Vip Coin } --== Fim das Configurações local rand = math.random(1, #config.items) if (item.actionid == 1140) and item.itemid == 1945 then if getPlayerItemCount(cid, config.vp) >= 6 then doPlayerRemoveItem(cid, config.vp, 6) doPlayerAddItem(cid, config.items[rand], 1) doBroadcastMessage("O Jogador "..getCreatureName(cid).." Ganhou um "..getItemNameById(config.items[rand])..".") else doPlayerSendCancel(cid,"Você precisa de 6 ou mais vip coins") doSendMagicEffect(getPlayerPosition(cid), 2) end elseif item.itemid == 1946 then doTransformItem(item.uid,item.itemid-1) end return TRUE end Action.xml <action actionid="1140" event="script" value="Cassino.lua" /> Na alavanca, coloque ActionID: 1140.
  11. Isso fica tudo no login meu chapa. Abra seu Login.lua que fica em creaturescript/script e procure por isso: doPlayerSendOutfitWindow(cid) basta deletar ele.
  12. Eu entendi o que quis dizer. Ficou estranho agora, a tabela que ficaria fora apenas servia pra pega as posições das estátuas. Não entendo porque travava. Acho que deve ser o OTServ que usei. Sei lá. #White, meu querido, obrigado pelas dicas. Minha criatividade se torna limitada devido ao meu conhecimento em lua. Afinal de contas, eu poderia até pensar em uma quest incrível, mas se eu não conseguir recriar ela em lua, de nada adiantaria. Mostrarei o que aprendi no próximo concurso - se houver.
  13. Só pra constar, eu tentei adicionar a tabela com as posições das estátuas fora da function, no entanto, sempre que eu ligava o OT, travava e desligava tudo. Por isso deixei dentro da function e me senti obrigado a repetir dentro das outras function que ia fazendo Gostei desse conselho. Aplicarei nos meus próximos scripts.
  14. É uma boa sugestão! Essa é uma pequena puzzle que adicionei em uma espécie de Quest chamadas "Dangerous" que estou criando para meu futuro OTServ, onde envolve um tempo limite para ser realizada. A ideia é apenas prender o jogador por um tempo razoável, mas sem fazer ele parar totalmente - pois tem tempo. Por este motivo, fiz com que a utilização da Element Puzzle fosse liberada para qualquer um que esta dentro da DG sem a necessidade de pagar coisa alguma ou se preocupar com HP ou com potions. Apenas parar e analisar! - Se tiver em grupo, um amigo ativa as dicas dos elementos enquanto outro gira as estátuas. Ficando assim: Resolva a puzzle e passa pelo portal que te levará para a continuação da Quest. Se morrer lá na frente, retorna ao início e tem que passar pelo puzzle novamente. Mas em todo caso, gostei da sua ideia. Eu realmente estou estudando .lua para poder reformular esse Script - porque é óbvio que ele precisa de modificações. Quando eu souber o que fazer, adicionarei as devidas correções junto com sua sugestão. OBS: Sabe do que eu senti falta na sua avaliação #White? Dicas de estudo! Assim, logo após perceber algo que não devia no script, você poderia dizer: "Você errou aqui e minha sugestão é que estude isso e isso pra melhorar". Talvez postando link para algum tutorial ou algo do tipo. Eu não ficaria constrangido com você me mandando estudar, sério . Você entende melhor disso do que nós, meros mortais, e qualquer dica que vim de sua parte é uma grande contribuição. No mais... Obrigado!
  15. Frenesy postou uma resposta no tópico em Eventos de Scripting
    Isso certamente não só me motiva a participar dos outros eventos, como também aqueles que não tem muito conhecimento em lua, mas tem criatividade.
  16. Poxa, muito chateado pela falta de participantes. Achei que aqui daria mais participantes do que o concurso do Scripting. - Sei lá, por ser tecnicamente falando, mais "fácil". Se houver novos concursos, faço questão de participar dos dois - Mapping & Scripting. Não desanima não Daniel, é só o primeiro.
  17. Frenesy postou uma resposta no tópico em Eventos de Scripting
    Fico feliz por ter ganhado - embora meu script tenha ficado muito tosco. Ainda sou novo nessa área. Meu ramo mesmo é RPG Maker. Eu crio histórias, diálogos e talz. Mas gostei muito em me aventurar por esse área de Scripting. A do Super Nintendo foi muito nostálgico! Eu gostei. Até a próxima!
  18. Bom, como eu já havia dito: Ainda bem que no concurso, vale mais a criatividade do que o Script em si. Ainda estou estudando tables e algumas coisinhas amais em LUA. Certamente no próximo concurso estarei melhor. Obrigado!
  19. Frenesy postou uma resposta no tópico em Suporte Tibia OTServer
    Movements.
  20. Os erros 2 e 3 podem ser provenientes do erro 1. Se o monstro não aparece, eventos relacionados com esse monstro no script começam a dar erro.
  21. Abra seu Monster.xml e crie um monstro com o nome "pinsir"
  22. Enquanto o professor não aparece, pode ir usando essas Vídeo Aula.
  23. No Script que ele postou, o end tava no local errado. Acho que ele nem notou
  24. Ops! Devo ter entendido errado seu pedido Tenta assim: function onStepIn(cid, item, position, lastPosition, fromPosition, toPosition) local toPosition = { x = 1584, y = 85, z = 7 } if getGlobalStorageValue(982) == -1 then doTeleportThing(cid, toPosition) doSendMagicEffect(getCreaturePosition(cid), 10) else doTeleportThing(cid, fromPosition) doSendMagicEffect(getCreaturePosition(cid), 2) end return TRUE end Se não tiver Global, ele teleporta. Se tiver, ele não teleporta. É isso néh?
  25. function onStepIn(cid, item, position, lastPosition, fromPosition, toPosition) local toPosition = { x = 1584, y = 85, z = 7 } if getGlobalStorageValue(982) == 1 then doTeleportThing(cid, toPosition) doSendMagicEffect(getCreaturePosition(cid), 10) else doTeleportThing(cid, fromPosition) doSendMagicEffect(getCreaturePosition(cid), 2) end return TRUE end Meio que improvisei.

Informação Importante

Confirmação de Termo