
Tudo que Frenesy postou
-
[PEDIDO] NPC Blessed
Manda como base um NPC do seu OT. Não tenho servidores 8.40 aqui =/
-
[PEDIDO] NPC Blessed
<?xml version="1.0"?> <npc name="NomeDoNPC" script="data/npc/scripts/NomeDoArquivo.lua" walkinterval="2000"> <health now="200" max="200" /> <look type="131" head="38" body="38" legs="38" feet="38" addons="3"/> <parameters> <parameter key="message_greet" value="Olá meu caro joven, você veio blessar seu helmet, certo né?" /> </parameters> </npc> NPC/Script: -- < Script by Frenesy > --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 doCreatureSayWithDelay(cid,text,type,delay,e) if delay<=0 then doCreatureSay(cid,text,type) else local func=function(pars) doCreatureSay(pars.cid,pars.text,pars.type) pars.e.done=TRUE end e.done=FALSE e.event=addEvent(func,delay,{cid=cid, text=text, type=type, e=e}) end end function cancelNPCTalk(events) local ret=1 for aux=1,table.getn(events) do if events[aux].done==FALSE then stopEvent(events[aux].event) else ret=ret+1 end end events=nil return(ret) end function doNPCTalkALot(msgs,interval) local e={} local ret={} if interval==nil then interval=3000 end --3 seconds is default time between messages for aux=1,table.getn(msgs) do e[aux]={} doCreatureSayWithDelay(getNpcCid(),msgs[aux],TALKTYPE_PRIVATE_NP,(aux-1)*interval,e[aux]) table.insert(ret,e[aux]) end return(ret) 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, 'Blessar') or msgcontains(msg, 'blessar')) and getPlayerItemCount(cid, 2342) == 1 then selfSay('Parabens! Você blessou seu helmet, ele tem duração de 4 horas!', cid) doPlayerAddItem(cid,2343, 1) doPlayerRemoveItem(cid, 2342, 1) doSendMagicEffect(getPlayerPosition(cid), 13) elseif(msgcontains(msg, 'Blessar') or msgcontains(msg, 'blessar')) and getPlayerItemCount(cid, 2342) < 1 then selfSay('Voce nao tem o item nescessario.', cid) end return TRUE end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new())
-
(Resolvido)Ao matar criatura aparece teleport (help)
Creaturescripts/Scripts: local tpId = 1387 local tps = { ["NomeDoMonstro"] = {pos = {x=221, y=82, z=15}, toPos = {x=200, y=73, z=15}, time = 30}, -- Onde o Teleport irá aparecer e onde ele levará o Player. Em 'Time', configurar tempo em segundos para o TP desapecer. } function removeTp(tp) local t = getTileItemById(tp.pos, tpId) if t then doRemoveItem(t.uid, 1) doSendMagicEffect(tp.pos, CONST_ME_POFF) end end function onDeath(cid) local tp = tps[getCreatureName(cid)] if tp then doCreateTeleport(tpId, tp.toPos, tp.pos) doCreatureSay(cid, "O teleport irá sumir em "..tp.time.." segundos.", TALKTYPE_ORANGE_1) addEvent(removeTp, tp.time*1000, tp) end return TRUE end Creaturescripts.xml <event type="death" name="tp" event="script" value="NomeDoArquivo.lua"/> Monster: No monstro que você quer que abra o portal ao morrer, adicione essa tag nele: <script> <event name="tp"/> </script>
- [Dúvida] Passar pelo player no mesmo SQM quando dentro da PZ
- Elementos da wand
-
(Resolvido)[PEDIDO] Script Quest
Que bom! Precisando, só avisar!
-
(Resolvido)[NPC] Pede item, e da prêmio
<?xml version="1.0"?> <npc name="NomeDoNPC" script="data/npc/scripts/NomeDoArquivo.lua" walkinterval="2000"> <health now="200" max="200" /> <look type="131" head="38" body="38" legs="38" feet="38" addons="3"/> <parameters> </parameters> </npc> NPC/Script: -- < Script by Frenesy > -- 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 doCreatureSayWithDelay(cid,text,type,delay,e) if delay<=0 then doCreatureSay(cid,text,type) else local func=function(pars) doCreatureSay(pars.cid,pars.text,pars.type) pars.e.done=TRUE end e.done=FALSE e.event=addEvent(func,delay,{cid=cid, text=text, type=type, e=e}) end end function cancelNPCTalk(events) local ret=1 for aux=1,table.getn(events) do if events[aux].done==FALSE then stopEvent(events[aux].event) else ret=ret+1 end end events=nil return(ret) end function doNPCTalkALot(msgs,interval) local e={} local ret={} if interval==nil then interval=3000 end --3 seconds is default time between messages for aux=1,table.getn(msgs) do e[aux]={} doCreatureSayWithDelay(getNpcCid(),msgs[aux],TALKTYPE_PRIVATE_NP,(aux-1)*interval,e[aux]) table.insert(ret,e[aux]) end return(ret) 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, 'Hi') or msgcontains(msg, 'oi')) and getPlayerStorageValue(cid,1001) == -1 then selfSay('Ola, poderia me ajudar recolhendo alguns itens pra minha lojinha?', cid) talkState[talkUser] = 1 elseif(msgcontains(msg, 'Hi') or msgcontains(msg, 'oi')) and getPlayerStorageValue(cid,1003) == 1 then selfSay('Ola, Em que posso ajudar?', cid) elseif((msgcontains(msg, 'No') or msgcontains(msg, 'nao')) and talkState[talkUser] == 1) then selfSay('Ok entao. Bye!', cid) talkState[talkUser] = 0 elseif((msgcontains(msg, 'Yes') or msgcontains(msg, 'sim')) and talkState[talkUser] == 1) then selfSay('Ok, recolha para mim {13 pair of leaves} que pode ser encontrada com {snivys} e {13 Sandbags} que pode ser encontradas com {Krokoroks}. Boa Sorte!', cid) talkState[talkUser] = 0 doSendMagicEffect(getPlayerPosition(cid), 13) setPlayerStorageValue(cid, 1001, 1) setPlayerStorageValue(cid, 1002, 1) elseif(msgcontains(msg, 'Hi') or msgcontains(msg, 'oi')) and getPlayerStorageValue(cid,1002) == 1 then selfSay('Conseguiu recolher os itens?', cid) talkState[talkUser] = 2 elseif(msgcontains(msg, 'Yes') or msgcontains(msg, 'sim')) and talkState[talkUser] == 2 and getPlayerItemCount(cid, 12155) < 13 and getPlayerItemCount(cid, 12177) < 13 then selfSay('Voce ainda nao tem todos os itens necessarios.', cid) talkState[talkUser] = 0 elseif((msgcontains(msg, 'No') or msgcontains(msg, 'nao')) and talkState[talkUser] == 2) then selfSay('Entao vai la buscar.', cid) talkState[talkUser] = 0 elseif(msgcontains(msg, 'Yes') or msgcontains(msg, 'sim')) and getPlayerStorageValue(cid,1002) == 1 and talkState[talkUser] == 2 and getPlayerItemCount(cid, 12155) == 13 and getPlayerItemCount(cid, 12177) == 13 then selfSay('Muito obrigado, aqui está seu premio!', cid) doSendMagicEffect(getPlayerPosition(cid), 49) doPlayerAddItem(cid,11441, 1) doPlayerAddItem(cid,11451, 1) doPlayerRemoveItem(cid, 12155, 13) doPlayerRemoveItem(cid, 12177, 13) setPlayerStorageValue(cid, 1002, -1) setPlayerStorageValue(cid, 1003, 1) end return TRUE end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new())
-
(Resolvido)[NPC] Pede item, e da prêmio
Me diga todo o diálogo que você quer que fique - na ordem - que eu arrumo pra você.
-
[DUVIDA] Tile Vip
Poste seu sistema vip.
-
(Resolvido)pedido spells de paralizar
Spells/script: local combat1 = createCombatObject() setCombatParam(combat1, COMBAT_PARAM_EFFECT, 31) setCombatParam(combat1, COMBAT_PARAM_DISTANCEEFFECT, 31) local function onCastSpell1(parameters) doCombat(parameters.cid, combat1, parameters.var) end function onCastSpell(cid, var) local parameters = { cid = cid, var = var, combat1 = combat1, combat2 = combat2 } local alvo = getCreatureTarget(cid) doPlayerSetNoMove(alvo, true) addEvent(onCastSpell1, 1, parameters) addEvent(doPlayerSetNoMove, 5000, alvo, false) -- Configurar aqui duration do parallyze return true end Spells.xml <instant name="Parallyze" words="Parallyze" lvl="50" mana="100" prem="1" aggressive="0" exhaustion="2500" needlearn="0" range="5" needtarget="1" blockwalls="1" script="NomeDoArquivo.lua"> <vocation name="Knight"/> </instant>
-
Meu exp ring ta infinito, ajuda
Verifica se ela esta registrada corretamente no Movements.xml
-
(Resolvido)[RESOLVIDO] AOL Infinita
Items.xml <item id="2173" article="an" name="amulet of loss"> <attribute key="weight" value="420"/> <attribute key="slotType" value="necklace"/> <attribute key="preventDrop" value="1"/> <attribute key="charges" value="1"/> </item> Substitui pelo seu que ta infinito.
-
[Pedido] Baú de quest
Como Criar Bau Poke Iniciais
-
[PEDIDO] Porta para treiners
Cara, eu não testei o script, eu fiz no rascunho aqui. Teste apenas em um. Se der certo avisa aqui no tópico que eu configuro ele.
-
[Pedido] Item Que Usa spell
Runas ?!?
-
[PEDIDO] Porta para treiners
Imagine que seu Trainer Room seja igual ao da imagem abaixo. Na parte do Script: ---- local fromPos,toPos = {x = 000, y = 000, z = 00},{x = 000, y = 000, z = 00} --- Começo e Final da Área. ---- Na Position 1 vc coloca as cordenadas do tile superior esquerdo. Na Position 2 vc coloca as cordenadas do tile inferior direito.
-
(Resolvido)pedido spells de paralizar
local combat1 = createCombatObject() setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat1, COMBAT_PARAM_EFFECT, CONST_ME_STUN) local combat2 = createCombatObject() setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat2, COMBAT_PARAM_EFFECT, CONST_ME_SLEEP) local condition1 = createConditionObject(CONDITION_PARALYZE) setConditionParam(condition1, CONDITION_PARAM_TICKS, 15000) setConditionParam(condition1, CONDITION_PARAM_SPEED, -650) setConditionFormula(condition1, -0.9, 0, -0.9, 0) setCombatCondition(combat1, condition1) arr1 = { {0, 3, 0} } arr2 = { {0, 3, 0} } local area1 = createCombatArea(arr1) local area2 = createCombatArea(arr2) setCombatArea(combat1, area1) setCombatArea(combat2, area2) local function onCastSpell1(parameters) doCombat(parameters.cid, parameters.combat1, parameters.var) end local function onCastSpell2(parameters) doCombat(parameters.cid, parameters.combat2, parameters.var) end function onCastSpell(cid, var) local parameters = { cid = cid, var = var, combat1 = combat1, combat2 = combat2 } addEvent(onCastSpell1, 100, parameters) addEvent(onCastSpell2, 200, parameters) return true end
-
(Resolvido)Pedido! Item Q Invoca Tal Monstro Para Ajuda O Play
Pegue garotinho --==-- by Frenesy --==-- function onUse(cid, item, fromPosition, itemEx, toPosition) if item.itemid == 0000 then -- ID do Item aqui. if #getCreatureSummons(cid) == 0 then doConvinceCreature(cid, doSummonCreature("Dragon", getPlayerPosition(cid))) -- Configurar monstro aqui. doSendMagicEffect(getPlayerPosition(cid),13) else for _, pid in ipairs(getCreatureSummons(cid)) do doRemoveCreature(pid) doSendMagicEffect(getPlayerPosition(cid),13) end end end end Action.xml <action itemid="0000" event="script" value="NomeDoArquivo.lua"/>
-
[PEDIDO] Porta para treiners
--==-- by Frenesy --==-- function onUse(cid, item, topos) local fromPos,toPos = {x = 000, y = 000, z = 00},{x = 000, y = 000, z = 00} --- Começo e Final da Área. if (item.actionid == 10000) then for x = fromPos.x, toPos.x do for y = fromPos.y, toPos.y do local pos = {x=x, y=y, z=fromPos.z} local m = getTopCreature(pos).uid if m ~= 0 and isPlayer(m) then doTeleportThing(cid,fromPosition) doSendMagicEffect(getPlayerPosition(cid), 2) doPlayerSendCancel(cid, "Full!") end end end end end Action.xml <action actionid="10000" event="script" value="NomeDoArquivo.lua"/> Coloque na Porta ActionID 10000.
-
(Resolvido)[PEDIDO] Script Quest
#MaXwEllDeN Farei isso Gosto dos meus scripts bem organizados. Qualquer informação que possa facilitar isso é de grande ajuda.
-
(Resolvido)[NPC] Pede item, e da prêmio
<?xml version="1.0"?> <npc name="NomeDoNPC" script="data/npc/scripts/NomeDoArquivo.lua" walkinterval="2000"> <health now="200" max="200" /> <look type="131" head="38" body="38" legs="38" feet="38" addons="3"/> <parameters> <parameter key="message_greet" value="Ola, |PLAYERNAME|. Em que posso ajuda-lo?" /> </parameters> </npc> NPC/Script: -- < Script by Frenesy > --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 doCreatureSayWithDelay(cid,text,type,delay,e) if delay<=0 then doCreatureSay(cid,text,type) else local func=function(pars) doCreatureSay(pars.cid,pars.text,pars.type) pars.e.done=TRUE end e.done=FALSE e.event=addEvent(func,delay,{cid=cid, text=text, type=type, e=e}) end end function cancelNPCTalk(events) local ret=1 for aux=1,table.getn(events) do if events[aux].done==FALSE then stopEvent(events[aux].event) else ret=ret+1 end end events=nil return(ret) end function doNPCTalkALot(msgs,interval) local e={} local ret={} if interval==nil then interval=3000 end --3 seconds is default time between messages for aux=1,table.getn(msgs) do e[aux]={} doCreatureSayWithDelay(getNpcCid(),msgs[aux],TALKTYPE_PRIVATE_NP,(aux-1)*interval,e[aux]) table.insert(ret,e[aux]) end return(ret) 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, 'Quest') or msgcontains(msg, 'mission')) and getPlayerStorageValue(cid,1001) == -1 then selfSay('Ola, poderia me ajudar recolhendo alguns itens pra minha lojinha?', cid) talkState[talkUser] = 1 elseif((msgcontains(msg, 'Yes') or msgcontains(msg, 'sim')) and talkState[talkUser] == 1) then selfSay('Ok, recolha para mim {13 pair of leaves} que pode ser encontrada com {snivys} e {13 Sandbags} que pode ser encontradas com {Krokoroks}. Boa Sorte!', cid) talkState[talkUser] = 0 setPlayerStorageValue(cid, 1001, 1) setPlayerStorageValue(cid, 1002, 1) elseif(msgcontains(msg, 'Quest') or msgcontains(msg, 'mission')) and getPlayerStorageValue(cid,1002) == 1 then selfSay('Conseguiu recolher os itens?', cid) talkState[talkUser] = 2 elseif(msgcontains(msg, 'Yes') or msgcontains(msg, 'sim')) and talkState[talkUser] == 2 and getPlayerItemCount(cid, 12155) < 13 and getPlayerItemCount(cid, 12177) < 13 then selfSay('Voce ainda nao tem todos os itens necessarios.', cid) talkState[talkUser] = 0 elseif((msgcontains(msg, 'No') or msgcontains(msg, 'nao')) and talkState[talkUser] == 2) then selfSay('Entao vai la buscar.', cid) talkState[talkUser] = 0 elseif(msgcontains(msg, 'Yes') or msgcontains(msg, 'sim')) and getPlayerStorageValue(cid,1002) == 1 and talkState[talkUser] == 2 and getPlayerItemCount(cid, 12155) == 13 and getPlayerItemCount(cid, 12177) == 13 then selfSay('Muito obrigado, aqui está seu premio!', cid) doPlayerAddItem(cid,11441, 1) doPlayerAddItem(cid,11451, 1) doPlayerRemoveItem(cid, 12155, 13) doPlayerRemoveItem(cid, 12177, 13) setPlayerStorageValue(cid, 1002, -1) end return TRUE end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Diálogo: - hi - Ola, |PLAYERNAME|. Em que posso ajuda-lo? - Quest - Ola, poderia me ajudar recolhendo alguns itens pra minha lojinha? - yes - Ok, recolha para mim {13 pair of leaves} que pode ser encontrada com {snivys} e {13 Sandbags} que pode ser encontradas com {Krokoroks}. Boa Sorte! depois que recolher os itens - Quest - Conseguiu recolher os itens? - yes - Muito obrigado, aqui está seu premio!
-
(Resolvido)[PEDIDO] Script Quest
function onUse(cid, item, frompos, item2, topos) item1pos = {x=71, y=234, z=15, stackpos=255} --item1pos item2pos = {x=76, y=237, z=15, stackpos=255} --item2pos item3pos = {x=76, y=237, z=15, stackpos=255} --item3pos item4pos = {x=76, y=237, z=15, stackpos=255} --item4pos item5pos = {x=66, y=236, z=15, stackpos=255} --item5pos item6pos = {x=66, y=236, z=15, stackpos=255} --item6pos item7pos = {x=66, y=236, z=15, stackpos=255} --item7pos item8pos = {x=66, y=236, z=15, stackpos=255} -- Local onde o helmet irá aparecer item1 = getThingfromPos(item1pos) item2 = getThingfromPos(item2pos) item3 = getThingfromPos(item3pos) item4 = getThingfromPos(item4pos) item5 = getThingfromPos(item5pos) item6 = getThingfromPos(item6pos) item7 = getThingfromPos(item7pos) item8 = getThingfromPos(item8pos) if item.itemid == 1945 and item1.itemid == 0000 and item2.itemid == 0000 and item3.itemid == 0000 and item4.itemid == 0000 and item5.itemid == 0000 and item6.itemid == 0000 and item7.itemid == 0000 then -- Substitua os 0000 pelos IDs dos items doRemoveItem(item1.uid,1) doSendMagicEffect(item1pos,13) doRemoveItem(item2.uid,1) doSendMagicEffect(item2pos,13) doRemoveItem(item3.uid,1) doSendMagicEffect(item3pos,13) doRemoveItem(item4.uid,1) doSendMagicEffect(item4pos,13) doRemoveItem(item5.uid,1) doSendMagicEffect(item5pos,13) doRemoveItem(item6.uid,1) doSendMagicEffect(item6pos,13) doRemoveItem(item7.uid,1) doSendMagicEffect(item7pos,13) doTransformItem(item.uid,item.itemid+1) doCreateItem(0000,1, item8pos) -- Colocar ID do Helmet Aqui doPlayerSendTextMessage(cid,22,'Sacrifio realizado com sucesso!') elseif item.uid == 9011 and item.itemid == 1946 then doTransformItem(item.uid,item.itemid-1) else return 0 end return 1 end Action.xml <action uniqueid="9011" script="NomeDoArquivo.lua"/> Coloque UniqueID 9011 na Alavanca pelo Map Editor. #MaXwEllDeN Antes que pergunte, NÂO, eu não sei por tudo bem organizadinho meus script iguais ao seu. Eu faço tudo 'brabo' mesmo. Ainda preciso aprender tabelas e essas coisas, pra fazer scripts iguais ao seu. To só me adiantando
-
(Resolvido)Alavanca para Teleport
Clique em "Melhor Resposta" para poder trancar o tópico. Abraços !!
-
[AJUDA] Player morre mas nao dropa nada
Eu tenho isso aqui. Sempre que o Player logah, ele recebe todas as benções. Assim, ele não perde items ao morrer. function onLogin(cid) local Name = "Account Manager" local bless = {1, 2, 3, 4, 5} local cost = 0 function onSay(cid, words, param) for i = 1, table.maxn(bless) do return TRUE end end for i = 1, table.maxn(bless) do doPlayerAddBlessing(cid, bless[i]) end doSendAnimatedText(getPlayerPosition(cid), 'Login!', 140) doSendMagicEffect(getPlayerPosition(cid), 49) return TRUE end CreatureScript.xml <event type="login" name="Bless" event="script" value="NomeDoArquivo.lua"/> Não esqueça de registrar no Login.lua
-
[PEDIDO] Porta para treiners
É só colocar a ActionID 10000 no Tile e por a Porta em cima, pois o player precisa passar pelo tile pra passar pela porta ¬¬