
hFrost
Membro
-
Registro em
-
Última visita
Histórico de Curtidas
-
hFrost deu reputação a Wakon em [NPC] Papai Noel - Que dá presenteConfigurei pra você, se faltar algo me avise.
local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) 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 t = { item = 7844, st = 121402, temp = 24*3600, -- Em 24 é o tempo em horas para usar novamente! level = 200 } function creatureSayCallback(cid, type, msg) msg = msg:lower() if(not npcHandler:isFocused(cid)) then return false end if msgcontains(msg, 'sim') or msgcontains(msg, 'yes') then if getPlayerLevel(cid) >= t.level then if getPlayerStorageValue(cid, t.st) > os.time() then selfSay("Você precisa esperar " .. getPlayerStorageValue(cid, t.st) - os.time() .. ' segundo' .. (getPlayerStorageValue(cid, t.st) - os.time() == 1 and "" or "s") .. " para pegar o presente novamente.", cid) else setPlayerStorageValue(cid, t.st, os.time() + t.temp) doPlayerAddItem(cid, t.item) doSendMagicEffect(getThingPos(cid), 13) selfSay('Aqui está! Feliz natal!', cid) end else selfSay('Você precisa ser level '.. t.level ..' para pegar o presente.', cid) end end end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) -
hFrost deu reputação a Danihcv em [NPC] Papai Noel - Que dá presenteBom galera, sei que o natal acabou de passar, porém esqueci de postar esse system antes...
Fiz uma versão 2.0 do meu npc de natal (papai noel).
Agora ao invés do bom velhinho entregar diretamente o item, vc recebe uma caixa que ao clicar vc recebe um item 100% aleatorio (dentre os itens que foram programados dentro do script).
Funciona assim: o player vai até o papai noel e fala: hi, aí o papai noel fala ho-ho-ho... aí o player responde sim (ou yes) e então o player recebe uma caixa. Ao clicar na caixa, o player recebe um dos itens, que estiverem programados no script, de forma aleatoria.
Então vamo lá.
Pra adicionar esse system, primeiro vá na pasta data/npc e crie um arquivo chamado Papai Noel.xml e coloque isso dentro:
<?xml version="1.0" encoding="UTF-8"?> <npc name="Papai Noel" script="data/npc/scripts/papai_noel.lua" walkinterval="1500" speed="100" walkradius="2" floorchange="0"> <health max="100" now="100"/> <look type="160" head="0" body="113" legs="94" feet="132" addons="0" mount="0"/> <parameters> <!--MESSAGES--> <parameter key="message_greet" value="HO-HO-HO, |PLAYERNAME| bem-vindo. Voce gostaria de um presente?"/> <parameter key="message_farewell" value="HO-HO-HO, tenha um feliz natal, |PLAYERNAME|."/> </parameters> </npc> Agora vá na pasta data/npc/scripts e crie um arquivo chamado papai_noel.lua e coloque isso dentro:
Agora vá na pasta data/actions e adicione essa tag dentro do arquivo actions.xml:
<action itemid="11401" event="script" value="giftbox.lua"/> Agora va na pasta data/actions/scripts e crie um arquivo chamado giftbox.lua e coloque isso dentro:
local items = { [1]=2160, --ID do item 1 [2]=2157, --ID do item 2 [3]=2121} --ID do item 3 local stor = (11401+os.date("%Y")) --Nao mexa function onUse(cid) if getPlayerStorageValue(cid, stor) ~= 1 then a = math.random(1, #items) doPlayerAddItem(cid, items[a], 1) setPlayerStorageValue(cid, stor, 1) else doPlayerSendCancel(cid, "Voce ja pegou seu presente.") end doPlayerRemoveItem(cid, 11401, 1) return true end E isso é tudo pessoal!
-
hFrost deu reputação a Renato em [Action] Quest que ganha crystal coins equivalente ao levelCréditos: Eu (por criar o script), thalia (por me ajudar e algumas correções básicas)
Sei que parece um script básico, mas é que eu estou aprendendo ainda, então não reclama .l.
Explicação: Se você for level 50 vai ganhar 50 crystal coins, se for level 10 vai ganhar 10 crystal coins etc.
• Crie um arquivo LUA com o nome cclevelquest.lua em data/actions/scripts
E ponha:
function onUse(cid, item, fromPosition, itemEx, toPosition)
local config = {
storage = 1579,
itemid = 2160,
qnt = getPlayerLevel(cid),
}
if getPlayerStorageValue(cid, config.storage) == 1 then
return doPlayerSendCancel(cid, "You already make this quest.")
else
setPlayerStorageValue(cid, config.storage, 1)
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You received "..config.qnt.." crystal coins.")
doPlayerAddItem(cid, config.itemid, config.qnt)
end
end
[/code] Você pode trocar o itemid pra outro item que seja contável também.. mas não esquece de trocar o nome nessa linha: [code]doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You received "..config.qnt.." crystal coins.") Onde tá crystal coins. • Em actions.xml coloque <action actionid="9898" event="script" value="cclevelquest.lua"/>
No mapeditor você vai colocar 9898 no actionid nas propriedades do chest e não em uniqueid
Abraços.