Ir para conteúdo

Task Module


Fjinst

Posts Recomendados

Olá a todos, gostaria de pedir um script de TASK Por Trade, no caso você compraria a task, igual comprando um item no npc, falando hi - trade

 

A ideia do script é um sistema de contraro, você compra um contrato que será a task e poderá fazer a task, ao realizar a task você ganha pontos, cada task terá um valor de ponto, algumas tasks terá limite de level, ou seja, você não pode comprar uma task muito forte por ser level baixo, e as tasks serão compradas por gold(dinheiro)

 

Segue um script base para uso, agradeço pela atenção

OBS: O Script base é um npc que vende magias por TRADE

 

Citar

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 shopWindow = {}

local spells = {

{id=9214, buy = 100, name = "Exori", spell_name = "Exori", vocations = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100}, level = 20},
{id=9212, buy = 100, name = "Utevo Lux", spell_name = "Utevo Lux", vocations = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100}, level = 20},
{id=9209, buy = 100, name = "Exori Flam", spell_name = "Exori Flam", vocations = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100}, level = 20},
{id=9211, buy = 100, name = "Exori Frigo", spell_name = "Exori Frigo", vocations = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100}, level = 20}
}

local onBuy = function(cid, item, subType, amount, ignoreCap, inBackpacks)

if not getPlayerLearnedInstantSpell(cid, shopWindow[item].Words) then

if getPlayerLevel(cid) >= shopWindow[item].Level then

if isInArray(shopWindow[item].Vocs, getPlayerVocation(cid)) then

doPlayerRemoveMoney(cid, shopWindow[item].Price)

doPlayerLearnInstantSpell(cid, shopWindow[item].Words)

npcHandler:say("Voce aprendeu um novo feitico chamado "..shopWindow[item].Words, cid)

else

npcHandler:say("Voce nao possui classe suficiente para adquirir esse feitico.", cid)

end

else

npcHandler:say("Voce precisa ter nivel "..shopWindow[item].Level.." ou mais para comprar esse feitico.", cid)

end

else

npcHandler:say("Voce ja adquiriu esse feitico.", cid)

end

return true

end

if msgcontains(msg, 'trade') or msgcontains(msg, 'feiticos') then

for var, item in pairs(spells) do

shopWindow[item.id] = {Level = item.level, Vocs = item.vocations, item_id = item.id, Price = item.buy, subType = 0, Words = item.spell_name, SpellName = item.name}

end

openShopWindow(cid, spells, onBuy, onSell)

end

return true

end

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)

npcHandler:addModule(FocusModule:new())

 

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...