
Tudo que Kemmlly postou
-
(Resolvido)[SCRIPT] Item para Last Hit
Registrou em login.lua e adicionou a tag no script do monstro?
-
Arrumar scripts [Npc]
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?
- [TALKACTION] Caixa Postal
-
[TALKACTION] Caixa Postal
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.
-
Item que adiciona premium points na database
Como é o nome da tabela no banco de dados, e a versão do servidor?
-
(Resolvido)[ACTION] Item add description
Acredito que seja lever[item.actionid][2], que é como o script identifica o item.
-
Task Addon!
Versão do servidor?
-
[Spells] Paralyze rune [SPEED]
kkkkk, imaginei, aí foi um armengue que eu tentei kkk em casa vejo com calma se consigo te ajudar.
-
[TALKACTION] Caixa Postal
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.
-
[Spells] Paralyze rune [SPEED]
tenta assim, não sei se funciona de fato, é só uma ideia, testa e me fala: setConditionParam(condition, CONDITION_PARAM_SPEED, -getCreatureSpeed(target)+200)
-
Tp Falante
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?
-
[Creaturescript] Existe alguma forma de colocar limite de speed no character?
Manda seu paralayze pra eu ver.
-
Tp Falante
Os 3 sqms mudando as cores igualmente?
-
Tp Falante
Tem como sim, mas quanto maior a quantidade de cores envolvidas maior o armengue, até 3 cores acredito que seja o ideal.
-
[IMPORTANT], I need Karamy-War.
I never see that system, you can show me a video or print? I will search about this, maybe i can help you.
-
Tp Falante
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".
-
Task System
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
-
Tp Falante
Não entendi, restrição como assim?
-
Task System
Versão do seu servidor?
-
corrigir script
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ê.
-
[CORREÇÃO] - Evento Snow Ball
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
-
[Creaturescript] Existe alguma forma de colocar limite de speed no character?
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á.
-
[Creaturescript] Existe alguma forma de colocar limite de speed no character?
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.
-
[Creaturescript] Existe alguma forma de colocar limite de speed no character?
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ê.
-
outfit que almente a speed
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ê.