Ir para conteúdo

Kemmlly

Membro
  • Registro em

  • Última visita

Tudo que Kemmlly postou

  1. Registrou em login.lua e adicionou a tag no script do monstro?
  2. 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 function creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid local tab = { item = {2157, 10}, -- ID do item, quantidade item2 = {2157, 10}, -- ID do item, quantidade item3 = {2157, 10}, -- ID do item, quantidade item4 = {2157, 10}, -- ID do item, quantidade item5 = {2157, 10} -- ID do item, quantidade } if(msgcontains(msg, 'quest')) then selfSay('To start this quest tell {mission}', cid) --This is just an example, In this script added 4 mission for you end if(msgcontains(msg, 'mission')) then if(getPlayerStorageValue(cid,700) < 1) then selfSay('Sua primeira missão será a de obter 100 Penas ,120 Sushi ,150 Largatixa ,100 Coraçao ,115 Marijuana Para Ganhar um {Demonhunter Doll}.', cid) talkState[talkUser] = 1 elseif (getPlayerStorageValue(cid,701) < 1) then selfSay('Your next mission will be to get 150 {strands of medusa hair}.', cid) talkState[talkUser] = 1 elseif (getPlayerStorageValue(cid,702) < 0) then selfSay('Your next mission will be to get 300 {red dragon scales}.', cid) talkState[talkUser] = 1 elseif (getPlayerStorageValue(cid,703) < 0) then selfSay('Your next mission will be to get 300 {red dragon scales}.', cid) talkState[talkUser] = 1 elseif (getPlayerStorageValue(cid,704) < 0) then selfSay('Your next mission will be to get 400 {green dragon scales}.', cid) talkState[talkUser] = 1 elseif (getPlayerStorageValue(cid,703) == 1) then --zmieniac w zaleznosci od ostatniego storage!! selfSay('You have done all missions.', cid) talkState[talkUser] = 1 end --------------------------------------- elseif(msgcontains(msg, 'Demonhunter Doll') and talkState[talkUser] == 1 and (getPlayerStorageValue(cid,700) < 1)) then if (getPlayerItemCount(cid, tab.item[1]) >= tab.item[2] and getPlayerItemCount(cid, tab.item2[1]) >= tab.item2[2] and getPlayerItemCount(cid, tab.item3[1]) >= tab.item3[2] and getPlayerItemCount(cid, tab.item4[1]) >= tab.item4[2] and getPlayerItemCount(cid, tab.item5[1]) >= tab.item5[2]) then doPlayerRemoveItem(cid, tab.item[1], tab.item[2]) doPlayerRemoveItem(cid, tab.item2[1], tab.item2[2]) doPlayerRemoveItem(cid, tab.item3[1], tab.item3[2]) doPlayerRemoveItem(cid, tab.item4[1], tab.item4[2]) doPlayerRemoveItem(cid, tab.item5[1], tab.item5[2]) setPlayerStorageValue(cid,700,1) doPlayerAddItem(cid,8821, 1) -- Recompensa selfSay('Thank you.', cid) talkState[talkUser] = 0 else selfSay('Voçe nao tem todos os itens para ganhar um {Demonhunter Doll}.', cid) end --------------------------------------- elseif(msgcontains(msg, 'strands of medusa hair') and talkState[talkUser] == 1 and (getPlayerStorageValue(cid,701) < 1) and (getPlayerStorageValue(cid,700) == 1)) then if(doPlayerRemoveItem(cid, 12597, 150) == TRUE) then setPlayerStorageValue(cid,701,1) doPlayerAddItem(cid,8821, 1) -- Recompensa selfSay('Thank you.', cid) talkState[talkUser] = 0 else selfSay('To end mission you need have 150 {strands of medusa hair}.', cid) end --------------------------------------- elseif(msgcontains(msg, 'red dragon scales') and talkState[talkUser] == 1 and (getPlayerStorageValue(cid,702) < 1) and (getPlayerStorageValue(cid,701) == 1)) then if(doPlayerRemoveItem(cid, 5882, 300) == TRUE) then setPlayerStorageValue(cid,702,1) doPlayerAddPercentLevel(cid, 6) selfSay('Thank you.', cid) talkState[talkUser] = 0 else selfSay('To end mission you need have 300 {red dragon scales}.', cid) end --------------------------------------- elseif(msgcontains(msg, 'green dragon scales') and talkState[talkUser] == 1 and (getPlayerStorageValue(cid,703) < 1) and (getPlayerStorageValue(cid,702) == 1)) then if(doPlayerRemoveItem(cid, 5920, 400) == TRUE) then setPlayerStorageValue(cid,703,1) doPlayerAddPercentLevel(cid, 5) selfSay('Thank you.', cid) talkState[talkUser] = 0 else selfSay('To end mission you need have 400 {green dragon scales}.', cid) end ------------------------------------------ end end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) @churupetinha Assim?
  3. Pensei nisso mesmo, em colocar em arquivos de log, mas não sabia que tinha limite de caracteres no global storage, aí fiz pelo global mesmo, mas agora que sei vou mudar. Realmente é a forma correta, obrigado pela dica. @Vodkart
  4. Na verdade, eu já modifiquei isso no database porque ele quando não acha determinado valor dentro da tabela retorna ERROR, eu não mudei os parâmetros do getDatInt, mudei apenas a forma com que ele representa que não achou resultado nenhum, de ERRO para NIL, porque assim fica bem mais fácil de usa-lo nas condições de script, não só pra esse mas para qualquer um, eu só resumi o ERROR para NIL para facilitar a programação, não interfere no resultado positivo do getDatInt. Obrigado por comentar, abraços.
  5. Como é o nome da tabela no banco de dados, e a versão do servidor?
  6. Acredito que seja lever[item.actionid][2], que é como o script identifica o item.
  7. Kemmlly respondeu ao post em um tópico de luuuck em Suporte Tibia OTServer
    Versão do servidor?
  8. kkkkk, imaginei, aí foi um armengue que eu tentei kkk em casa vejo com calma se consigo te ajudar.
  9. Bem, procurei aqui no Tibia King e não achei nada relacionado, então, criei um script de Caixa Postal, ou, Mensagem Offline, como preferirem. Versão: TFS 0.4 Autor: Kemmlly Como funciona: Enviar: O jogador usa o comando: !caixa "nome do jogador" - "Mensagem", sem as aspas. Se o jogador estiver Off, a mensagem ficará guardada na Caixa Postal dele, se não, o jogo te indicará a falar pelo PV. Receber: O jogador que recebeu a mensagem usa o comando: !recados ler, para ler as mensagens que tem disponíveis na caixa, ou, !recados apagar, para limpar a caixa postal se estiver muito cheia, pois acumula mensagens, segue exemplo: !recados ler !recados apagar Instalação: data/talkactions/scripts/caixapostal.lua function onSay(cid, words, param, channel) local t = string.explode(param, "-") if t[1] == '' or t[1] == nil then doPlayerSendTextMessage(cid, 19, "Comando invalido, use !caixa 'NOME DO JOGADOR' - 'MENSAGEM' sem as aspas.") return true else local player = db.getResult("SELECT `id` FROM `players` WHERE `name` = '"..t[1].."';"):getDataInt("id") if player == nil then doPlayerSendTextMessage(cid, 19, "Esse jogador nao existe!") return true elseif player ~= nil and t[2] == '' then doPlayerSendTextMessage(cid, 19, "A mensagem nao pode ser vazia!") return true elseif player ~= nil and t[2] ~= '' then if getPlayerByNameWildcard(t[1]) ~= nil then doPlayerSendTextMessage(cid, 19, "Esse jogador esta online, fale pelo PV!") return true else local origem = getCreatureName(cid) local caixa = getGlobalStorageValue(player) local data = os.date("%d/%b as %X") if caixa == -1 or caixa == "Voce nao tem nenhum recado!" then caixa = "\n" end doPlayerSendTextMessage(cid, 19, "A mensagem foi enviada com sucesso!") setGlobalStorageValue(player, "["..data.."] - "..origem..": "..t[2].." \n\n"..caixa.."") return true end end end end data/talkactions/scripts/recados.lua function onSay(cid, words, param, channel) local t = string.explode(param, ",") local player = db.getResult("SELECT `id` FROM `players` WHERE `name` = '"..getCreatureName(cid).."';"):getDataInt("id") local mensagens = getGlobalStorageValue(player) if t[1] == '' or t[1] == nil then doPlayerSendTextMessage(cid, 19, 'Comando invalido.') elseif t[1] == 'ler' then if mensagens == -1 then mensagens = "Voce nao tem nenhum recado!" doShowTextDialog(cid, words, '-- Recados --\n\n'..mensagens..'') else doShowTextDialog(cid, words, '-- Recados --\n\n'..mensagens..'') end elseif t[1] == 'apagar' then doPlayerSendTextMessage(cid, 19, 'Mensagens apagadas com sucesso!') setGlobalStorageValue(player, "Voce nao tem nenhum recado!") end return true end data/talkactions/talkactions.xml <talkaction words="!caixa" event="script" value="caixapostal.lua"/> <talkaction words="!recados" event="script" value="recados.lua"/> Ultimo passo, porém, importante; em data/lib/004-database.lua vá até a linha 60 e mude: error("[Result:getDataInt] Result not set!") para: return nil Se no seu não for exatamente na linha 60, procure a função: function Result:getDataInt(s) if(self:getID() == -1) then error("[Result:getDataInt] Result not set!") end E faça a alteração. Isso é para não dar erro na hora de procurar um player pelo nome quando o jogador escrever um nome de player inválido. Espero que gostem, abraços.
  10. tenta assim, não sei se funciona de fato, é só uma ideia, testa e me fala: setConditionParam(condition, CONDITION_PARAM_SPEED, -getCreatureSpeed(target)+200)
  11. Kemmlly respondeu ao post em um tópico de theeusata55 em Suporte Tibia OTServer
    Até consigo, mas quantas cores vc quer? Da maneira q tô pensando n consigo 1-255 não , quanto mais cores mais extenso e complicado pra fazer, posso fazer com 3 cores?
  12. Kemmlly respondeu ao post em um tópico de theeusata55 em Suporte Tibia OTServer
    Os 3 sqms mudando as cores igualmente?
  13. Kemmlly respondeu ao post em um tópico de theeusata55 em Suporte Tibia OTServer
    Tem como sim, mas quanto maior a quantidade de cores envolvidas maior o armengue, até 3 cores acredito que seja o ideal.
  14. I never see that system, you can show me a video or print? I will search about this, maybe i can help you.
  15. Kemmlly respondeu ao post em um tópico de theeusata55 em Suporte Tibia OTServer
    Entendi, a questão é que só cabem 9 letras por sqm, não dá para escrever mais, não é nem o script, é a limitação do próprio jogo. O q você pode fazer é usar os sqms dos lados esquerdo e direito para complementar o nome como eu faço, se for duplo tipo Arena PVP o Arena vem em um e o PVP em outro, pra ficar centralizado só dar um espaço antes do início do primeiro nome, tipo " Arena".
  16. Kemmlly respondeu ao post em um tópico de Kowalski em Suporte Tibia OTServer
    Tenho um TaskSystem bem simples, você configura os monstros, xp e itens que ele da, se quiser posso até mudar algumas coisas pra você, mas foi feito para o TFS 0.4
  17. Kemmlly respondeu ao post em um tópico de theeusata55 em Suporte Tibia OTServer
    Não entendi, restrição como assim?
  18. Kemmlly respondeu ao post em um tópico de Kowalski em Suporte Tibia OTServer
    Versão do seu servidor?
  19. Kemmlly respondeu ao post em um tópico de brendoonh em Suporte Tibia OTServer
    Pelo que vi esse script não é do cara que postou, ele apesar de não ter feito não sabe explicar nada, vou dar uma olhada nele aqui e vê se resolvo pra você.
  20. E aí galera. Alguns membros do TK vieram me pedir ajuda para corrigir um erro no evento Snow Ball, que os jogadores ficam presos na sala de espera e não inicia o evento, em alguns da um erro relacionado ao "Position". Bem, em todos os casos até agora resolvi dessa forma: No script SBW.lua tanto em globalevents quanto em talkactions, troque essa parte: posti = Position(math.random(t_l.x,b_r.x), math.random(t_l.y, b_r.y), 7) Por essa: posti = ({x=math.random(t_l.x,b_r.x), y=math.random(t_l.y, b_r.y), z=math.random(t_l.z, b_r.z)}) Em todos os casos o problema foi resolvido, acredito que esteja relacionado a versão do servidor para que foi criado o evento e a versão diferente de alguns jogadores que o usa. Se tiver com o mesmo problema e isso não resolver, me falem que vejo o que posso fazer. @helix758 @BobStyle10 @matheuzinowned
  21. Não funcionou porque esse script aí só muda a speed de um chá que ja tenha speed 800+, se voce quiser mudar a de todos muda 800 pra 1, aí todo mundo vai ficar com a mesma speed, eu coloquei essa 800 aí pra quando um player alcançar certa speed ele parar nela, se não os player level 8 do seu ot ja teriam a velocidade alta igual aos que os alcançaram a 800, entendeu? Mas se você quiser que todos tenha coloca 1 lá.
  22. Esse script faz a mesma coisa do ex que eu dei, faz o seguinte, cria um arquivo lua chamado speedfix.lua em cteaturescripts/scripts e cola isso: local speed = 1500 function onLogin(cid) If getCreatureSpeed(cid) > 800 then doChangeSpeed(cid, speed - getCreatureBaseSpeed(cid)) end return true end Agora va em login.lua e coloque a tag registerCreatureEvent(cid, "speedfix") Depois, creaturescripts.xml e adicione a tag <event type="login" name="speedfix" event="script" value="speedfix.lua"/> E testa.
  23. Isso aí não é um script completo, é só um exemplo , dessa forma aí n vai funcionar mesmo, tem que fazer o script certinho, com a function e tudo, se você não souber faço pra você.
  24. Seja mais específico, diga como quer o script, o que ele tem que fazer, qual a versão do seu servidor, e o principal, abra um tópico na área certa com tudo isso que eu crio pra você.

Informação Importante

Confirmação de Termo