Ir para conteúdo
  • Cadastre-se

Sistema [8.6] Task System 4.0! (Task system + Daily Task System)


Posts Recomendados

  • Respostas 296
  • Created
  • Última resposta

Top Posters In This Topic

Top Posters In This Topic

Popular Posts

Removido:   *Boss Room *Rank Task *Prêmios para os 10 primeiros a terminar todas as tasks   Adicionado:   *Daily Task System (Sistema exclusivo de Task diario,

tenta deixar essa linha: if isPlayer(cid) and isMonster(target) and not isSummon(target) then assim if isPlayer(cid) and isMonster(target) then   e testa

gostei dessa ideia, então estou num projeto e estou meio sem tempo, já passei parto do simple task pra tfs 1.2 e tal. terminando esse projeto e de passar o sistema pra tfs 1.2 eu começo a editar o sis

Posted Images

Em 29/01/2017 ás 11:22, Zzyzx disse:

OBRIGADOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO !!!!!!!!!!!!

@Vodkart esta dando esse erro no distro tem como ver oque é ?


<?xml version="1.0" encoding="ISO-8859-1"?> 
<mod name="Simple Task" version="4.0" author="Vodkart" contact="tibiaking.com" enabled="yes"> 
<config name="task_func"><![CDATA[
task_sys = {
	[1] = {name = "rotworms", start = 176202, monsters_list = {"rotworm","carrion worm","Rotworm Queen"}, level = 8, count = 50, points = 0, items = {}, reward = {}, exp = 100000, money = 20000},
	[2] = {name = "Slime", start = 176203, monsters_list = {"Slime"}, level = 8, count = 100, points = 0, items = {}, reward = {}, exp = 250000, money = 50000},
	[3] = {name = "cyclops", start = 176204, monsters_list = {"cyclops","cyclops smith","cyclops drone"}, level = 8, count = 150, points = 0, items = {}, reward = {}, exp = 350000, money = 70000},
	[4] = {name = "Hellfire Fighter" ,start = 17625, monsters_list = {"Hellfire Fighter"}, level = 8, count = 500, points = 2, items = {}, reward = {}, exp = 300000, money = 300000},
	[5] = {name = "Ghastly Dragon" ,start = 176206, monsters_list = {"Ghastly Dragon"}, level = 8, count = 500, points = 2, items = {}, reward = {{2173,1}}, exp = 300000, money = 300000},
	[6] = {name = "Behemoth" ,start = 176207, monsters_list = {"Behemoth"}, level = 8, count = 500, points = 2, items = {}, reward = {}, exp = 300000, money = 300000},
	[7] = {name = "Lizard Chosen" ,start = 176208, monsters_list = {"Lizard Chosen"}, level = 8, count = 500, points = 2, items = {}, reward = {}, exp = 300000, money = 300000},
	[8] = {name = "Medusa" ,start = 176209, monsters_list = {"Medusa"}, level = 8, count = 500, points = 2, items = {}, reward = {}, exp = 300000, money = 300000},
	[9] = {name = "Grim Reaper" ,start = 176210, monsters_list = {"Grim Reaper"}, level = 8, count = 500, points = 2, items = {}, reward = {}, exp = 300000, money = 300000},
	[10] = {name = "Frost Dragon" ,start = 176211, monsters_list = {"Frost Dragon"}, level = 8, count = 500, points = 2, items = {}, reward = {}, exp = 300000, money = 300000},
	[11] = {name = "Hydras" ,start = 176212, monsters_list = {"Hydra"}, level = 8, count = 500, points = 2, items = {}, reward = {}, exp = 300000, money = 300000},
	[12] = {name = "Serpent Spawn" ,start = 176213, monsters_list = {"Serpent Spawn"}, level = 8, count = 500, points = 2, items = {}, reward = {}, exp = 300000, money = 300000},
	[13] = {name = "Hellhounds" ,start = 176214, monsters_list = {"Hellhound"}, level = 8, count = 500, points = 2, items = {}, reward = {}, exp = 300000, money = 300000},
	[14] = {name = "Demons" ,start = 176215, monsters_list = {"Demon"}, level = 8, count = 500, points = 2, items = {}, reward = {}, exp = 300000, money = 300000},
	[15] = {name = "Grim Reaper Vip" ,start = 176216, monsters_list = {"Grim Reaper Vip"}, level = 300, count = 800, points = 3, items = {}, reward = {}, exp = 500000, money = 500000},
	[16] = {name = "Demon Vip" ,start = 176217, monsters_list = {"Demon Vip"}, level = 300, count = 800, points = 3, items = {}, reward = {}, exp = 500000, money = 500000},
	[17] = {name = "Medusa Vip" ,start = 176218, monsters_list = {"Medusa Vip"}, level = 300, count = 800, points = 3, items = {}, reward = {}, exp = 500000, money = 500000},
	[18] = {name = "Hydra Vip" ,start = 176219, monsters_list = {"Hydra Vip"}, level = 300, count = 800, points = 3, items = {}, reward = {}, exp = 500000, money = 500000},
	[19] = {name = "Frost Dragon Vip" ,start = 176220, monsters_list = {"Frost Dragon Vip"}, level = 300, count = 800, points = 3, items = {}, reward = {}, exp = 500000, money = 500000},
	[20] = {name = "Hydra Vip II" ,start = 176221, monsters_list = {"Hydra Vip II"}, level = 400, count = 1000, points = 4, items = {}, reward = {}, exp = 1000000, money = 1000000},
	[21] = {name = "Grim Reaper Vip II" ,start = 176222, monsters_list = {"Grim Reaper Vip II"}, level = 400, count = 1000, points = 4, items = {}, reward = {}, exp = 1000000, money = 1000000},
	[22] = {name = "Dragon Lord Vip II" ,start = 176223, monsters_list = {"Dragon Lord Vip II"}, level = 400, count = 1000, points = 4, items = {}, reward = {}, exp = 1000000, money = 1000000},
	[23] = {name = "Medusa Vip II" ,start = 176224, monsters_list = {"Medusa Vip II"}, level = 400, count = 1000, points = 4, items = {}, reward = {}, exp = 1000000, money = 1000000},
	[24] = {name = "Frost Dragon Vip II" ,start = 176225, monsters_list = {"Frost Dragon Vip II"}, level = 400, count = 1000, points = 4, items = {}, reward = {}, exp = 1000000, money = 1000000},
	[25] = {name = "VIP DRAGON LORD" ,start = 176226, monsters_list = {"VIP DRAGON LORD"}, level = 8, count = 700, points = 6, items = {}, reward = {}, exp = 3000000, money = 3000000},
	[26] = {name = "VIP FROST" ,start = 176227, monsters_list = {"VIP FROST"}, level = 8, count = 700, points = 6, items = {}, reward = {}, exp = 3000000, money = 3000000},
	[27] = {name = "VIP HYDRA" ,start = 176228, monsters_list = {"VIP HYDRA"}, level = 8, count = 700, points = 6, items = {}, reward = {}, exp = 3000000, money = 3000000},
	[28] = {name = "VIP MEDUSA" ,start = 176229, monsters_list = {"VIP MEDUSA"}, level = 8, count = 700, points = 6, items = {}, reward = {}, exp = 3000000, money = 3000000},
	[29] = {name = "VIP GRIM REAPER" ,start = 176230, monsters_list = {"VIP GRIM REAPER"}, level = 8, count = 700, points = 6, items = {}, reward = {}, exp = 3000000, money = 3000000},
	[30] = {name = "VIP DEMON" ,start = 176231, monsters_list = {"VIP DEMON"}, level = 8, count = 700, points = 6, items = {}, reward = {}, exp = exp = 3000000, money = 3000000},
	[31] = {name = "VIP  WARLOCK" ,start = 176232, monsters_list = {"VIP  WARLOCK"}, level = 8, count = 700, points = 6, items = {}, reward = {}, exp = 3000000, money = 3000000},
	[32] = {name = "Fury" ,start = 176233, monsters_list = {"Fury"}, level = 300, count = 500, points = 2, items = {}, reward = {}, exp = 66600, money = 66000}
}
daily_task = {
	[1] = {name = "Orcs" ,monsters_list = {"Orc Berserker","Orc Rider","Orc Leader","Orc Warlord"}, count = 100, points = 0, reward = {}, exp = 5000, money = 10000},
	[2] = {name = "TarantulaS" ,monsters_list = {"Tarantula"}, count = 120, points = 1, reward = {}, exp = 9000, money = 12000},
	[3] = {name = "Wyvern" ,monsters_list = {"Wyvern"}, count = 125, points = 2, reward = {}, exp = 9000, money = 15000},
	[4] = {name = "Dragons" ,monsters_list = {"Dragon","Dragon Hatchling"}, count = 150, points = 0, reward = {}, exp = 2000, money = 10000},
	[5] = {name = "Wailing Widows" ,monsters_list = {"Wailing Widows"}, count = 200, points = 1, reward = {}, exp = 20000, money = 25000},
	[6] = {name = "Ancient Scarabs" ,monsters_list = {"Ancient Scarab"}, count = 180, points = 5, reward = {}, exp = 22000, money = 18000},
	[7] = {name = "High Class Lizards" ,monsters_list = {"Corrupted Soul","Eternal Guardian","Lizard Chosen","Lizard Dragon Priest","Lizard High Guard","Lizard Legionnaire","Lizard Magistratus","Lizard Noble","Lizard Zaogun"}, count = 300, points = 3, reward = {}, exp = 50000, money = 60000},
	[8] = {name = "Mutated BatS" ,monsters_list = {"Mutated Bat"}, count = 260, points = 2, reward = {}, exp = 40000, money = 55000},
	[9] = {name = "Giant Spiders" ,monsters_list = {"Giant Spider"}, count = 350, points = 3, reward = {}, exp = 60000, money = 70000},
	[10] = {name = "Frost Dragon" ,monsters_list = {"Frost Dragon"}, count = 500, points = 3, reward = {{2173,1}}, exp = 90000, money = 120000},
	[11] = {name = "HydraS" ,monsters_list = {"Hydra"}, count = 600, points = 3, reward = {{2173,1}}, exp = 100000, money = 160000},
	[12] = {name = "Demon" ,monsters_list = {"Demon"}, count = 700, points = 3, reward = {{2173,1}}, exp = 130000, money = 200000}
}
task_sys_storages = {176601, 176602, 176603, 176604, 176605, 176606, 176607, 176608} -- task, points, count, daily task, daily count, daily time , daily start, contador
function getTaskMission(cid)
	return getPlayerStorageValue(cid,task_sys_storages[1]) < 0 and 1 or getPlayerStorageValue(cid,task_sys_storages[1])
end
function getDailyTaskMission(cid)
	return getPlayerStorageValue(cid,task_sys_storages[4]) < 0 and 1 or getPlayerStorageValue(cid,task_sys_storages[4])
end
function getTaskPoints(cid)
	return getPlayerStorageValue(cid,task_sys_storages[2]) < 0 and 0 or getPlayerStorageValue(cid,task_sys_storages[2])
end
function doRandomDailyTask(cid)
	local t = {
		[{6,150}] = {1,3},
		[{151,250}] = {4,6},
		[{251,450}] = {7,9},
		[{451,math.huge}] = {10,12}
	}
	for a , b in pairs(t) do
		if getPlayerLevel(cid) >= a[1] and getPlayerLevel(cid) <= a[2] then
			return math.random(b[1], b[2])
		end
	end
	return 0
end
function GetRankTask(cid)
	local ranks = {
		[{1, 20}] = "Leite com Pera", 
		[{21, 50}] = "Iniciante",
		[{51, 100}] = "Fodinha",
		[{101, 200}] = "Zika do Bagulho",		
		[{201, math.huge}] = "Supremo Lord"
	}
	for v , r in pairs(ranks) do
		if getTaskPoints(cid) >= v[1] and getTaskPoints(cid) <= v[2] then
			return r
		end
	end
	return 0
end
function getItemsFromList(items)
	local str = ''
	if table.maxn(items) > 0 then
		for i = 1, table.maxn(items) do
			str = str .. items[i][2] .. ' ' .. getItemNameById(items[i][1])
			if i ~= table.maxn(items) then str = str .. ', ' 
			end 
		end 
	end
	return str
end
function doRemoveItemsFromList(cid,items)
	local count = 0
	if table.maxn(items) > 0 then
		for i = 1, table.maxn(items) do
			if getPlayerItemCount(cid,items[i][1]) >= items[i][2] then
			count = count + 1 end 
		end 
	end
	if count == table.maxn(items) then
		for i = 1, table.maxn(items) do doPlayerRemoveItem(cid,items[i][1],items[i][2]) end
	else 
		return false 
	end
	return true 
end
function getMonsterFromList(monster)
	local str = ''
	if #monster > 0 then
		for i = 1, #monster do
			str = str .. monster[i]
			if i ~= #monster then str = str .. ', ' end
		end 
	end
	return str
end
function GiveRewardsTask(cid, items)
	local backpack = doPlayerAddItem(cid, 1999, 1) -- backpackID
	for _, i_i in ipairs(items) do
		local item, amount = i_i[1],i_i[2]
		if isItemStackable(item) or amount == 1 then
			doAddContainerItem(backpack, item, amount)
		else
			for i = 1, amount do
				doAddContainerItem(backpack, item, 1)
			end
		end
	end
end
function isSummon(cid)
	if(not isCreature(cid)) then
		return false
	end
	return getCreatureMaster(cid) ~= cid
end
]]></config>
<event type="login" name="TaskLogin" event="script"><![CDATA[
function onLogin(cid)
	registerCreatureEvent(cid, "KillTask")
	registerCreatureEvent(cid, "TaskLook")
	return true
end]]></event>
<talkaction words="/task;!task" event="buffer"><![CDATA[
domodlib('task_func')
param,task,daily = param:lower(), getTaskMission(cid), getDailyTaskMission(cid)
if isInArray({"counter","contador"},param) then
	setPlayerStorageValue(cid, task_sys_storages[8], getPlayerStorageValue(cid, task_sys_storages[8]) <= 0 and 1 or 0)
	doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"[Task System] O contador foi "..(getPlayerStorageValue(cid, task_sys_storages[8]) <= 0 and "ativado" or "desativado")..".") return true
elseif isInArray({"daily","diaria"},param) then
	if not daily_task[daily] or getPlayerStorageValue(cid, task_sys_storages[7]) <= 0 then
		doPlayerSendCancel(cid, "Desculpe, Mas você não está em nenhuma Daily Task.") return true
	elseif getPlayerStorageValue(cid, task_sys_storages[6]) - os.time() <= 0 and getPlayerStorageValue(cid, task_sys_storages[5]) < daily_task[daily].count then
		doPlayerSendCancel(cid,"Desculpe, Mas Você não terminou a Daily Task a tempo! Por favor volte ao npc e comece uma nova Daily Task!") return true
	end
	return doShowTextDialog(cid, 8983, "[->] CURRENT DAILY TASK INFO [<-]\n\nNome: "..daily_task[daily].name.."\nProgresso: ["..(getPlayerStorageValue(cid, task_sys_storages[5]) < 0 and 0 or getPlayerStorageValue(cid, task_sys_storages[5])).."/"..daily_task[daily].count.."]\nPrazo para entrega: "..os.date("%d %B %Y %X ", getPlayerStorageValue(cid,task_sys_storages[6])).."\nMonstros para caçar: "..getMonsterFromList(daily_task[daily].monsters_list).."\n\n[->] CURRENT TASK REWARDS [<-]\n\nMoney: "..(daily_task[daily].money > 0 and daily_task[daily].money or 0).."\nExperiencia: "..(daily_task[daily].exp > 0 and daily_task[daily].exp or 0).."\nTask Points: "..daily_task[daily].points.."\nItems: "..(#daily_task[daily].reward > 0 and getItemsFromList(daily_task[daily].reward) or "Nenhum item de recompensa")..".")
end
if not task_sys[task] or getPlayerStorageValue(cid, task_sys[task].start) <= 0 then
	doPlayerSendCancel(cid, "você não está em nenhuma task.") return true
end 
return doShowTextDialog(cid, 8983, "-> CURRENT TASK ["..getTaskMission(cid).."/"..#task_sys.."] <-\n\nTask Name: "..task_sys[task].name.."\nTask Level: "..task_sys[task].level.."\nTask Progress: ["..(getPlayerStorageValue(cid, task_sys_storages[3]) < 0 and 0 or getPlayerStorageValue(cid, task_sys_storages[3])).."/"..task_sys[task].count.."]\nMonster To Hunt: "..getMonsterFromList(task_sys[task].monsters_list)..".\nItens Para Entrega: "..(#task_sys[task].items > 0 and getItemsFromList(task_sys[task].items) or "Nenhum")..".\n\n[->] CURRENT TASK REWARDS [<-]\n\nReward Money: "..(task_sys[task].money > 0 and task_sys[task].money or 0).."\nReward Experiencia: "..(task_sys[task].exp > 0 and task_sys[task].exp or 0).."\nReward Points: "..task_sys[task].points.."\nRedward Items: "..(#task_sys[task].reward > 0 and getItemsFromList(task_sys[task].reward) or "Nenhum item de recompensa")..".")
]]></talkaction>
<event type="look" name="TaskLook" event="script"><![CDATA[
domodlib('task_func')
function onLook(cid, thing, position, lookDistance)
	if isPlayer(thing.uid) and getTaskPoints(thing.uid) > 0 then
		doPlayerSetSpecialDescription(thing.uid, "\n"..(getPlayerSex(thing.uid) == 0 and "She" or "He").. " is a "..GetRankTask(thing.uid))
	end	
	return true
end]]></event> 
<event type="kill" name="KillTask" event="script"><![CDATA[
domodlib('task_func')
function onKill(cid, target)
	if isPlayer(cid) and isMonster(target) and not isSummon(target) then
		local t,daily = task_sys[getTaskMission(cid)], daily_task[getDailyTaskMission(cid)]
		if t and getPlayerStorageValue(cid, t.start) > 0 and isInArray(t.monsters_list, getCreatureName(target):lower()) and getPlayerStorageValue(cid, task_sys_storages[3]) < t.count then
			setPlayerStorageValue(cid, task_sys_storages[3], getPlayerStorageValue(cid, task_sys_storages[3]) < 0 and 1 or (getPlayerStorageValue(cid, task_sys_storages[3])+1))
			if getPlayerStorageValue(cid, task_sys_storages[8]) <= 0 and getPlayerStorageValue(cid, task_sys_storages[3]) < t.count then
				doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE,"[Task System] defeated Total [" .. getPlayerStorageValue(cid, task_sys_storages[3]) .. "/" .. t.count .. "] da Task do " .. t.name .. ".")
			end
			if getPlayerStorageValue(cid, task_sys_storages[3]) >= t.count then
				doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE,"[Task System] Parabéns! Você terminou a Task do "..t.name..", volte ao npc parece receber sua recompensa.")
			end
		end
		if daily and getPlayerStorageValue(cid, task_sys_storages[7]) > 0 and getPlayerStorageValue(cid, task_sys_storages[6]) - os.time() >= 0 and isInArray(daily.monsters_list, getCreatureName(target):lower()) and getPlayerStorageValue(cid, task_sys_storages[5]) < daily.count then
			setPlayerStorageValue(cid, task_sys_storages[5], getPlayerStorageValue(cid, task_sys_storages[5]) < 0 and 1 or (getPlayerStorageValue(cid, task_sys_storages[5])+1))
			if getPlayerStorageValue(cid, task_sys_storages[8]) <= 0 and getPlayerStorageValue(cid, task_sys_storages[5]) < daily.count then
				doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"[Daily Task System] defeated Total [" .. getPlayerStorageValue(cid, task_sys_storages[5]) .. "/" .. daily.count .. "] da Task do " .. daily.name .. ".")
			end
			if getPlayerStorageValue(cid, task_sys_storages[5]) >= daily.count then
				doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE,"[Daily Task System] Parabéns! Você terminou a Task do "..daily.name..", volte ao npc parece receber sua recompensa.")
			end
		end 
	end
	return true
end]]></event>
</mod>

 

erro.png

 

erro resolvido via PM

 

era a task [8] com um problema no "["

vodkart_logo.png

[*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*]

 

DISCORDvodkart#6090

 

Link para o post
Compartilhar em outros sites

@Vodkart

Para quem está com problemas de monstros não serem contados como eu estava e tem servidor derivado, basta substituir duas line do script.

No meu servidor de Narutibia o script não contava as mortes dos monstros, então eu modifiquei duas linhas e o script passou a funcionar...

 

Substitua essa parte

function onKill(cid, target)
	if isPlayer(cid) and isMonster(target) and not isSummon(target) then

por Essa

function onKill(cid, target, lastHit)
	if(isMonster(target) == true) then

 

Link para o post
Compartilhar em outros sites
47 minutos atrás, r0bert0lol disse:

@Vodkart

Para quem está com problemas de monstros não serem contados como eu estava e tem servidor derivado, basta substituir duas line do script.

No meu servidor de Narutibia o script não contava as mortes dos monstros, então eu modifiquei duas linhas e o script passou a funcionar...

 

Substitua essa parte


function onKill(cid, target)
	if isPlayer(cid) and isMonster(target) and not isSummon(target) then

por Essa


function onKill(cid, target, lastHit)
	if(isMonster(target) == true) then

 

 

eu sei disso amigo, mas obrigado!!

Eu até aconselhei na primeira página a fazer uma alteração parecida com a sua! 

<3

Em 31/01/2017 ás 23:33, wougoplex disse:

@Vodkart Eu uso o 0.3 pq acho melhor tem como botar pro player poder repitir a task la plz n gostei mt desse sem sequencia 

 

 

vou dar um update nela e colocar ela para 5.0, o @KotZletY deu umas ideias bem boas pro sistema.

ai o player vai poder escolher as task normal e as diarias, além de poder repetir, etc.

Editado por Vodkart (veja o histórico de edições)

vodkart_logo.png

[*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*]

 

DISCORDvodkart#6090

 

Link para o post
Compartilhar em outros sites

Seria bacana, os bosses para a galera poder usar em ot global.

As vezes ao inves de ganhar pontos tiver a opção de ganhar storage, para o player poder passar uma porta com tp de boss ou até mesmo um sistema de boss room que sei que voce é capaz de fazer, tirando isso tá perfeito=D

Link para o post
Compartilhar em outros sites
12 minutos atrás, thalesgodoi disse:

Seria bacana, os bosses para a galera poder usar em ot global.

As vezes ao inves de ganhar pontos tiver a opção de ganhar storage, para o player poder passar uma porta com tp de boss ou até mesmo um sistema de boss room que sei que voce é capaz de fazer, tirando isso tá perfeito=D

 

sim posso fazer os sistema de boss, só me digam como que o sistema funciona que eu faço. não precisa nem adicionar storage porque eu já pensei nisso tbm kk

 

obrigado.

 

obs: já estou dando update pro 5.0 para os jogadores terem livre arbítrio de escolher a task/diary/special task que deseja fazer, sair e escolher outras, outras funções, etc... kk 

vodkart_logo.png

[*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*]

 

DISCORDvodkart#6090

 

Link para o post
Compartilhar em outros sites

Funciona tipo assim, é uma ideia minha, porem sei que voce é mais criativo nessa area

 

Jogador escolhe a task de dragon por exemplo, mata a quantidade necessaria, ao final o premio dele é o direito de ser teleportado pra sala do boss, apos matar o boss ele teleportado pro templo.

dragon = demodras

necro = necropharus

carniphila = tiquanda revenge

pirates = os bosses pirates

minotaur = horned fox

 

o bacana de se matar os bosses, é para conseguir os addons no servidor, porque os bosses dropam esses items

 

Eu uso um sistema antigo seu, bem adaptado, as vezes buga a contagem, me da muita dor de cabeça kkkk mas quem nao tem cao, caça com gato

Link para o post
Compartilhar em outros sites
1 minuto atrás, thalesgodoi disse:

Funciona tipo assim, é uma ideia minha, porem sei que voce é mais criativo nessa area

 

Jogador escolhe a task de dragon por exemplo, mata a quantidade necessaria, ao final o premio dele é o direito de ser teleportado pra sala do boss, apos matar o boss ele teleportado pro templo.

dragon = demodras

necro = necropharus

carniphila = tiquanda revenge

pirates = os bosses pirates

minotaur = horned fox

 

o bacana de se matar os bosses, é para conseguir os addons no servidor, porque os bosses dropam esses items

 

Eu uso um sistema antigo seu, bem adaptado, as vezes buga a contagem, me da muita dor de cabeça kkkk mas quem nao tem cao, caça com gato

 

 

só terminar e já é teleportado? beleza.

 

posso fazer para dar as recompensas tbm... no caso vc mata o demondras por exemplo e recebe o item? ou é numa chest?

vodkart_logo.png

[*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*]

 

DISCORDvodkart#6090

 

Link para o post
Compartilhar em outros sites

Vai dar muita confusão isso, porque na maioria dos globais esses bosses tem 100% de dropar a dragon claw, nose ring, soul stone por exemplo.

Se você colocar um chest ou uma premiação a mais desses items, muitos donos de servidores vao fazer confusao e o player vai ganhar 2x entende?

 

Outra coisa que me lembrei, sobre a sala estar ocupada, precisa fazer um sistema, se caso tiver alguem na sala, ou ele mata o boss ou em 5 minutos é teleportado para o templo para evitar bugs

E se caso alguem tentar receber o direito de batalhar com o boss, e tiver alguem na sala, ele receber uma mensagem para tentar um tempo depois, que tem alguem na sala

Link para o post
Compartilhar em outros sites
1 minuto atrás, thalesgodoi disse:

Vai dar muita confusão isso, porque na maioria dos globais esses bosses tem 100% de dropar a dragon claw, nose ring, soul stone por exemplo.

Se você colocar um chest ou uma premiação a mais desses items, muitos donos de servidores vao fazer confusao e o player vai ganhar 2x entende?

 

Outra coisa que me lembrei, sobre a sala estar ocupada, precisa fazer um sistema, se caso tiver alguem na sala, ou ele mata o boss ou em 5 minutos é teleportado para o templo para evitar bugs

E se caso alguem tentar receber o direito de batalhar com o boss, e tiver alguem na sala, ele receber uma mensagem para tentar um tempo depois, que tem alguem na sala

 

ue não tem problema não, era só uma pergunta... sobre esse negócio de dropar 100% dos items eu faço por onKill tbm e adiciono no corpse dele ou direto no player.

 

sim dos 5 minutos eu to ligado, mas caso eu morra tenho direito novamente?

e durante os 5 minutos que eu tiver q esperar, como eu entro no boss? comando ou npc?

vodkart_logo.png

[*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*]

 

DISCORDvodkart#6090

 

Link para o post
Compartilhar em outros sites

onkill ai você forçou, não sei kkkk, não domino essa parte

Se caso o jogador morrer, seria bom ter outra chance, porque pode acontecer milhoes de bugs, net cair e coisas do tipo, ai ao matar o boss, ele perde a storage e tem que matar todos os monstros para poder matar o boss novamente.

seria bom via npc, o grizzly adams, player vai ate o npc e fala, hi, receber, ai o npc fala, Olha tem alguem na sala kkkk volte daqui 5 minutos, ai o player volta la e fala hi, receber, enquanto tiver alguem na sala, ele recebe essa mensagem, as vezes sería bom o npc explicar.

 

Tenho certeza que se completar esse script nesses moldes, será usado em praticamente 80% dos servidores kkkk voce sabe que sim

 

Editado por thalesgodoi (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

 

 

acho da hora mais essa de ter 2 chances nao rola ne vai fazer o boss e der merda paciencia bora outra task kkkkk xDD

essa e minha task ela e bem completa tem como colocar 1 task diaria nela ? 

queria saber tbm como faço exemplo 50 pontos se eu evoluir de rank eu posso fazer ex: demodras mais que storage devo por no portal de dragons ? ajuda ai xD

 

pra quem queria o script abaixo 

 

data/libs  create 

103-killinginthenameof.lua
Spoiler

RANK_NONE = 0
RANK_HUNTSMAN = 1
RANK_RANGER = 2
RANK_BIGGAMEHUNTER = 3
RANK_TROPHYHUNTER = 4
RANK_ELITEHUNTER = 5

REWARD_MONEY = 1
REWARD_EXP = 2
REWARD_ACHIEVEMENT = 3
REWARD_STORAGE = 4
REWARD_POINT = 5
REWARD_ITEM = 6

QUESTSTORAGE_BASE = 1500
KILLSSTORAGE_BASE = 65000
REPEATSTORAGE_BASE = 48950
POINTSSTORAGE = 2500
tasks =
{
--Tasks for level 6 to 49.
[1] = {killsRequired = 100, raceName = "Trolls", level = {6, 19}, premium = true, creatures = {"troll", "troll champion", "island troll", "swamp troll"}, rewards = {
{type = "exp", value = {200}},
{type = "money", value = {200}}
}},
[2] = {killsRequired = 150, raceName = "Goblins", level = {6, 19}, premium = true, creatures = {"goblin", "goblin assassin", "goblin leader"}, rewards = {
{type = "exp", value = {300}},
{type = "money", value = {250}}
}},
[3] = {killsRequired = 300, raceName = "Crocodiles", level = {6, 49}, premium = true, creatures = {"crocodile"}, rewards = {
{type = "exp", value = {800}},
{type = "achievement", value = {"Blood-Red Snapper"}},
{type = "storage", value = {35000, 1}},
{type = "points", value = {1}}
}},
[4] = {killsRequired = 300, raceName = "Badgers", level = {6, 49}, premium = true, creatures = {"badger"}, rewards = {
{type = "exp", value = {500}},
{type = "points", value = {1}}
}},
[5] = {killsRequired = 300, raceName = "Tarantulas", level = {6, 49}, premium = true, creatures = {"tarantula"}, rewards = {
{type = "exp", value = {1500}},
{type = "achievement", value = {"No More Hiding"}},
{type = "storage", value = {35001, 1}},
{type = "points", value = {2}}
}},
[6] = {killsRequired = 150, raceName = "Carniphilas", level = {6, 49}, premium = true, creatures = {"carniphila"}, rewards = {
{type = "exp", value = {2500}},
{type = "achievement", value = {"Rootless Behaviour"}},
{type = "storage", value = {35002, 1}},
{type = "points", value = {3}}
}},
[7] = {killsRequired = 200, raceName = "Stone Golems", level = {6, 49}, premium = true, creatures = {"stone golem"}, rewards = {
{type = "exp", value = {2000}},
{type = "points", value = {3}}
}},
[8] = {killsRequired = 300, raceName = "Mammoths", level = {6, 49}, premium = true, creatures = {"mammoth"}, rewards = {
{type = "exp", value = {4000}},
{type = "achievement", value = {"Meat Skewer"}},
{type = "storage", value = {35003, 1}},
{type = "points", value = {3}}
}},
[9] = {killsRequired = 300, raceName = "Gnarlhounds", level = {6, 49}, premium = true, creatures = {"gnarlhound"}, rewards = {
{type = "exp", value = {1000}},
{type = "points", value = {2}}
}},
[10] = {killsRequired = 300, raceName = "Terramites", level = {6, 49}, premium = true, creatures = {"terramite"}, rewards = {
{type = "exp", value = {1000}},
{type = "points", value = {2}}
}},
[11] = {killsRequired = 300, raceName = "Apes", level = {6, 49}, premium = true, creatures = {"kongra", "sibang", "merklin"}, rewards = {
{type = "exp", value = {1000}},
{type = "points", value = {2}}
}},
[12] = {killsRequired = 300, raceName = "Thornback Tortoises", level = {6, 49}, premium = true, creatures = {"thornback tortoise"}, rewards = {
{type = "exp", value = {1500}},
{type = "points", value = {2}}
}},
[13] = {killsRequired = 300, raceName = "Gargoyles", level = {6, 49}, premium = true, creatures = {"gargoyle"}, rewards = {
{type = "exp", value = {1500}}
}},

--Tasks for level 50 to 79.

[14] = {killsRequired = 300, raceName = "Ice Golems", level = {50, 79}, premium = true, creatures = {"ice golem"}, rewards = {
{type = "exp", value = {12000}},
{type = "achievement", value = {"Breaking The Ice"}},
{type = "storage", value = {35004, 1}},
{type = "points", value = {2}}
}},
[15] = {killsRequired = 400, raceName = "Quara Scouts", level = {50, 79}, premium = true, creatures = {"quara pincher scout", "quara predator scout", "quara hydromancer scout", "quara constrictor scout", "quara mantassin scout"}, rewards = {
{type = "exp", value = {10000}},
{type = "points", value = {2}}
}},
[16] = {killsRequired = 400, raceName = "Mutated Rats", level = {50, 79}, premium = true, creatures = {"mutated rat"}, rewards = {
{type = "exp", value = {10000}},
{type = "achievement", value = {"Twisted Mutation"}},
{type = "storage", value = {35005, 1}},
{type = "points", value = {2}}
}},
[17] = {killsRequired = 250, raceName = "Ancient Scarabs", level = {50, 79}, premium = true, creatures = {"ancient scarab"}, rewards = {
{type = "exp", value = {15000}},
{type = "achievement", value = {"Crawling Death"}},
{type = "storage", value = {35006, 1}},
{type = "points", value = {2}}
}},
[18] = {killsRequired = 300, raceName = "Wyverns", level = {50, 79}, premium = true, creatures = {"wyvern"}, rewards = {
{type = "exp", value = {12000}},
{type = "points", value = {2}}
}},
[19] = {killsRequired = 300, raceName = "Lancer Beetles", level = {50, 79}, premium = true, creatures = {"lancer beetle"}, rewards = {
{type = "exp", value = {8000}},
{type = "points", value = {2}}
}},
[20] = {killsRequired = 400, raceName = "Wailing Widows", level = {50, 79}, premium = true, creatures = {"wailing widow"}, rewards = {
{type = "exp", value = {12000}},
{type = "points", value = {3}}
}},
[21] = {killsRequired = 250, raceName = "Killer Caimans", level = {50, 79}, premium = true, creatures = {"killer caiman"}, rewards = {
{type = "exp", value = {10000}},
{type = "points", value = {2}}
}},
[22] = {killsRequired = 300, raceName = "Bonebeasts", level = {50, 79}, premium = true, creatures = {"bonebeast"}, rewards = {
{type = "exp", value = {12000}},
{type = "achievement", value = {"Spareribs for Dinner"}},
{type = "storage", value = {35007, 1}},
{type = "points", value = {2}}
}},
[23] = {killsRequired = 300, raceName = "Crystal Spiders", level = {50, 79}, creatures = {"crystal spider"}, premium = true, rewards = {
{type = "exp", value = {15000}},
{type = "achievement", value = {"Arachnoise"}},
{type = "storage", value = {35008, 1}},
{type = "points", value = {3}}
}},
[24] = {killsRequired = 300, raceName = "Mutated Tigers", level = {50, 79}, premium = true, creatures = {"mutated tiger"}, rewards = {
{type = "exp", value = {12000}},
{type = "points", value = {2}}
}},

--Taks for level 80 to 129.

[25] = {killsRequired = 600, raceName = "Underwater Quara", level = {80, 129}, premium = true, creatures = {"quara hydromancer", "quara predator", "quara constrictor", "quara mantassin", "quara pincher"}, rewards = {
{type = "exp", value = {15000}},
{type = "achievement", value = {"Back into the Abyss"}},
{type = "storage", value = {35009, 1}},
{type = "points", value = {3}}
}},

[26] = {killsRequired = 500, raceName = "Giant Spiders", level = {80, 129}, premium = true, creatures = {"giant spider"}, rewards = {
{type = "exp", value = {20000}},
{type = "achievement", value = {"Choking on Her Venom"}},
{type = "storage", value = {35010, 1}},
{type = "points", value = {3}}
}},

[27] = {killsRequired = 300, raceName = "Werewolves", level = {80, 129}, premium = true, creatures = {"werewolf"}, rewards = {
{type = "exp", value = {30000}},
{type = "achievement", value = {"Howly Silence"}},
{type = "storage", value = {35011, 1}},
{type = "points", value = {4}}
}},

[28] = {killsRequired = 400, raceName = "Nightmares", level = {80, 129}, premium = true, creatures = {"nightmare", "nightmare scion"}, rewards = {
{type = "exp", value = {25000}},
{type = "achievement", value = {"Dream is Over"}},
{type = "storage", value = {35012, 1}},
{type = "points", value = {3}}
}},

[29] = {killsRequired = 600, raceName = "Hellspawns", level = {80, 129}, premium = true, creatures = {"hellspawn"}, rewards = {
{type = "exp", value = {25000}},
{type = "achievement", value = {"Scorched Flames"}},
{type = "storage", value = {35013, 1}}
}},

[30] = {killsRequired = 800, raceName = "High Class Lizards", level = {80, 129}, premium = true, creatures = {"lizard chosen", "lizard dragon priest", "lizard high guard", "lizard legionnaire"}, rewards = {
{type = "exp", value = {30000}},
{type = "achievement", value = {"Zzztill Zzztanding!"}},
{type = "storage", value = {35014, 1}},
{type = "points", value = {3}}
}},

[31] = {killsRequired = 600, raceName = "Stampors", level = {80, 129}, premium = true, creatures = {"stampor"}, rewards = {
{type = "exp", value = {20000}},
{type = "achievement", value = {"Stepped on a Big Toe"}},
{type = "storage", value = {35015, 1}},
{type = "points", value = {3}}
}},

[32] = {killsRequired = 500, raceName = "Brimstone Bugs", level = {80, 129}, premium = true, creatures = {"brimstone bug"}, rewards = {
{type = "exp", value = {15000}},
{type = "achievement", value = {"Something Smells"}},
{type = "storage", value = {35016, 1}},
{type = "points", value = {3}}
}},

[33] = {killsRequired = 400, raceName = "Mutated Bats", level = {80, 129}, premium = true, creatures = {"mutated bat"}, rewards = {
{type = "exp", value = {20000}},
{type = "achievement", value = {"Kapow!"}},
{type = "storage", value = {35017, 1}},
{type = "points", value = {2}}
}},

--Tasks for level 130+
[34] = {killsRequired = 650, raceName = "Hydras", level = {130, 9999}, premium = true, creatures = {"hydra"}, rewards = {
{type = "exp", value = {30000}},
{type = "achievement", value = {"One Less"}},
{type = "storage", value = {35018, 1}},
{type = "points", value = {3}}
}},

[35] = {killsRequired = 800, raceName = "Serpent Spawns", level = {130, 9999}, premium = true, creatures = {"serpent spawn"}, rewards = {
{type = "exp", value = {30000}},
{type = "achievement", value = {"Hissing Downfall"}},
{type = "storage", value = {35019, 1}},
{type = "points", value = {4}}
}},

[36] = {killsRequired = 500, raceName = "Medusae", level = {130, 9999}, premium = true, creatures = {"medusa"}, rewards = {
{type = "exp", value = {40000}},
{type = "achievement", value = {"The Serpent's Bride"}},
{type = "storage", value = {35020, 1}},
{type = "points", value = {5}}
}},

[37] = {killsRequired = 700, raceName = "Behemoths", level = {130, 9999}, premium = true, creatures = {"behemoth"}, rewards = {
{type = "exp", value = {30000}},
{type = "achievement", value = {"Just Cracked Me Up!"}},
{type = "storage", value = {35021, 1}},
{type = "points", value = {4}}
}},

[38] = {killsRequired = 900, raceName = "Sea Serpents and Young Sea Serpents", level = {130, 9999}, premium = true, creatures = {"sea serpent", "young sea serpent"}, rewards = {
{type = "exp", value = {30000}},
{type = "achievement", value = {"The Drowned Sea God"}},
{type = "storage", value = {35022, 1}},
{type = "points", value = {4}}
}},

[39] = {killsRequired = 250, raceName = "Hellhounds", level = {130, 9999}, premium = true, creatures = {"hellhound"}, rewards = {
{type = "exp", value = {40000}},
{type = "achievement", value = {"The Gates of Hell"}},
{type = "storage", value = {35023, 1}},
{type = "points", value = {5}}
}},

[40] = {killsRequired = 500, raceName = "Ghastly Dragons", level = {130, 9999}, premium = true, creatures = {"ghastly dragon"}, rewards = {
{type = "exp", value = {30000}},
{type = "achievement", value = {"Beautiful Agony"}},
{type = "storage", value = {35024, 1}},
{type = "points", value = {5}}
}},

[41] = {killsRequired = 900, raceName = "Drakens", level = {130, 9999}, premium = true, creatures = {"draken spellweaver", "draken warmaster", "draken abomination", "draken elite"} , rewards = {
{type = "exp", value = {30000}},
{type = "achievement", value = {"Enter zze Draken!"}},
{type = "storage", value = {35025, 1}},
{type = "points", value = {3}}
}},

[42] = {killsRequired = 650, raceName = "Destroyers", level = {130, 9999}, premium = true, creatures = {"destroyer"}, rewards = {
{type = "exp", value = {30000}},
{type = "achievement", value = {"Best there was!"}},
{type = "storage", value = {35026, 1}},
{type = "points", value = {4}}
}},

[43] = {killsRequired = 400, raceName = "Undead Dragons", level = {130, 9999}, premium = true, creatures = {"undead dragon"}, rewards = {
{type = "exp", value = {50000}},
{type = "achievement", value = {"Back from the Dead"}},
{type = "storage", value = {35027, 1}},
{type = "points", value = {6}}
}},

--Special tasks.

[44] = {killsRequired = 6666, raceName = "Demons", level = {130, 9999}, rank = RANK_ELITEHUNTER, premium = true, creatures = {"demon"}, rewards = {
{type = "storage", value = {41300, 1}} --Storage that let's you to start Demon Oak
}},

[45] = {killsRequired = 500, raceName = "Green Djinns or Efreets", level = {1, 9999}, premium = true, creatures = {"green djinn", "efreet"}, rewards = { --Requires an storage (Gained on The Djinn War - Marid Faction)
{type = "exp", value = {10000}},
{type = "money", value = {5000}},
{type = "storage", value = {35028, 1}}
}},

[46] = {killsRequired = 500, raceName = "Blue Djinns or Marids", level = {1, 9999}, premium = true, creatures = {"blue djinn", "marid"}, rewards = { --Requires an storage (Gained on The Djinn War - Efreet Faction)
{type = "exp", value = {10000}},
{type = "money", value = {5000}},
{type = "storage", value = {35029, 1}}
}},

[47] = {killsRequired = 3000, raceName = "Pirates", level = {1, 9999}, premium = true, creatures = {"pirate ghost", "pirate marauder", "pirate cutthroad", "pirate buccaneer", "pirate corsair", "pirate skeleton"}, rewards = { --Requires an storage (Gained on The Shattered Isles Quest)
{type = "exp", value = {10000}},
{type = "money", value = {5000}},
{type = "storage", value = {35030, 1}}
}},

[48] = {killsRequired = 3000, raceName = "Pirates second task", level = {1, 9999}, storage = {REPEATSTORAGE_BASE + 47, 3}, premium = true, creatures = {"pirate ghost", "pirate marauder", "pirate cutthroad", "pirate buccaneer", "pirate corsair", "pirate skeleton"}, rewards = { --Requires an storage (Gained completing Raymond Striker's first task three times.) NOTE: The required storage to start this task is: base + first pirate task id (47)
{type = "exp", value = {10000}},
{type = "money", value = {5000}},
{type = "storage", value = {35031, 1}}
}},

[49] = {killsRequired = 6000, raceName = "Minotaurs", level = {30, 89}, rank = RANK_BIGGAMEHUNTER, premium = true, creatures = {"minotaur", "minotaur guard", "minotaur mage", "minotaur archer"}, rewards = {
{type = "exp", value = {20000}},
{type = "achievement", value = {"Stepped on a Big Toe"}},
{type = "storage", value = {35032, 1}},
{type = "points", value = {1}}
}},

[50] = {killsRequired = 4000, raceName = "Necromancers and Priestess", level = {60, 9999}, premium = true, creatures = {"necromancer", "priestess"}, rewards = { --Requires an storage (Gained on To Outfox a Fox Quest)
{type = "storage", value = {12800, 1}} --storage to stark the second Necromancers and Priestess task.
}},

[51] = {killsRequired = 6000, raceName = "Dragons", level = {1, 300}, rank = RANK_ELITEHUNTER, premium = true, creatures = {"dragon", "dragon lord", "frost dragon"}, rewards = {
{type = "exp", value = {50000}},
{type = "achievement", value = {"Meat Skewer"}},
{type = "storage", value = {45193, 1}},
{type = "points", value = {3}}
}},

[50] = {killsRequired = 650, raceName = "Warlocks", level = {130, 9999}, premium = true, creatures = {"warlock"}, rewards = {
{type = "storage", value = {413000, 1}},
{type = "exp", value = {100000}},
{type = "money", value = {50000}},        
{type = "item", value = {5884}},                                                                                                                                            --Storage that let's you to start Demon Oak
}},
                                                                                                                                    
[49] = {killsRequired = 1000, name = "Necromancers and Priestess second task", raceName = "Necromancers and Priestess", level = {60, 9999}, storage = {12800, 1}, premium = true, creatures = {"necromancer", "priestess"}, rewards = { --Requires an storage (Gained on To Outfox a Fox Quest)
{type = "exp", value = {40000}},
{type = "storage", value = {35033, 1}}
}},
}

tasksByPlayer = 3
repeatTimes = 3

function getPlayerRank(cid)
return (getPlayerStorageValue(cid, POINTSSTORAGE) >= 100 and RANK_ELITEHUNTER or getPlayerStorageValue(cid, POINTSSTORAGE) >= 70 and RANK_TROPHYHUNTER or getPlayerStorageValue(cid, POINTSSTORAGE) >= 40 and RANK_BIGGAMEHUNTER or getPlayerStorageValue(cid, POINTSSTORAGE) >= 20 and RANK_RANGER or getPlayerStorageValue(cid, POINTSSTORAGE) >= 10 and RANK_HUNTSMAN or RANK_NONE)
end

function getTaskByName(name, table)
local t = (table and table or tasks)
for k, v in pairs(t) do
if v.name then
if v.name:lower() == name:lower() then
return k
end
else
if v.raceName:lower() == name:lower() then
return k
end
end
end
return false
end

function getTasksByPlayer(cid)
local canmake = {}
local able = {}
for k, v in pairs(tasks) do
if getCreatureStorage(cid, QUESTSTORAGE_BASE + k) < 1 and getCreatureStorage(cid, REPEATSTORAGE_BASE + k) < repeatTimes then
able[k] = true
if getPlayerLevel(cid) < v.level[1] or getPlayerLevel(cid) > v.level[2] then
able[k] = false
end
if v.storage and getCreatureStorage(cid, v.storage[1]) < v.storage[2] then
able[k] = false
end

if v.rank then
if getPlayerRank(cid) < v.rank then
able[k] = false
end
end

if v.premium then
if not isPremium(cid) then
able[k] = false
end
end

if able[k] then
table.insert(canmake, k)
end
end
end
return canmake
end


function canStartTask(cid, name, table)
local v = ""
local id = 0
local t = (table and table or tasks)
for k, i in pairs(t) do
if i.name then
if i.name:lower() == name:lower() then
v = i
id = k
break
end
else
if i.raceName:lower() == name:lower() then
v = i
id = k
break
end
end
end
if v == "" then
return false
end
if getCreatureStorage(cid, QUESTSTORAGE_BASE + id) > 0 then
return false
end
if (getCreatureStorage(cid, REPEATSTORAGE_BASE + id) >= repeatTimes) or (v.norepeatable and getCreatureStorage(cid, REPEATSTORAGE_BASE + id) > 0) then
return false
end
if getPlayerLevel(cid) >= v.level[1] and getPlayerLevel(cid) <= v.level[2] then
if v.premium then
if isPremium(cid) then
if v.rank then
if getPlayerRank(cid) >= v.rank then
if v.storage then
if getCreatureStorage(cid, v.storage[1]) >= v.storage[2] then
return true
end
else
return true
end
end
else
return true
end
end
else
return true
end
end
return false
end

function getPlayerStartedTasks(cid)

local tmp = {}
for k, v in pairs(tasks) do
if getCreatureStorage(cid, QUESTSTORAGE_BASE + k) > 0 and getCreatureStorage(cid, QUESTSTORAGE_BASE + k) < 2 then
table.insert(tmp, k)
end
end
return tmp
end

function isSummon(cid)
return getCreatureMaster(cid) ~= cid or false
end

\data\creaturescripts  

 

<event type="kill" name="KillingInTheNameOf" event="script" value="killinginthenameof.lua"/>

create .lua name 

killinginthenameof.lua  
Spoiler

function onKill(cid, target, lastHit)
 
    local started = getPlayerStartedTasks(cid)
    if isPlayer(target) or isSummon(target) then return true end
    if started and #started > 0 then
        for _, id in ipairs(started) do
            if isInArray(tasks[id].creatures, getCreatureName(target):lower()) then
                if getCreatureStorage(cid, KILLSSTORAGE_BASE + id) < 0 then
                    doCreatureSetStorage(cid, KILLSSTORAGE_BASE + id, 0)
                end
                if getCreatureStorage(cid, KILLSSTORAGE_BASE + id) < tasks[id].killsRequired then
                    doCreatureSetStorage(cid, KILLSSTORAGE_BASE + id, getCreatureStorage(cid, KILLSSTORAGE_BASE + id) + 1)
                    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, getCreatureStorage(cid, KILLSSTORAGE_BASE + id) .. "/" .. tasks[id].killsRequired .. " " .. tasks[id].raceName .. " already killed.")
                end
            end
        end
    end
    return true
end

 ai e so registrar no login 

registerCreatureEvent(cid, "KillingInTheNameOf")

 

Editado por dersinho (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

simplesmente perfeito REP+ :DD

tenho 1 duvida, existe a possibilidade? " em vez de ganhar itens, e dinheiro, a recompensa será uma outfit com full addons"?

exemplo, voçê completou a task dos troll, e a recompensa é wayfarer outfit com full addons.. será que tem como adicionar essa recompensa no teu sistema amigo?? ficarei mtmtm grato se isso acontecer!! :DD

meu servidor é 8.60! OTX Server  (2.52 - 1557) - Necron !!!

alguem pode me ajudar? REP+ para quem puder :DD

   

(desculpa, acho que ainda nao é flood certo?) (e se eu estiver errado me perdoe).

Link para o post
Compartilhar em outros sites
26 minutos atrás, liteon9y disse:

simplesmente perfeito REP+ :DD

tenho 1 duvida, existe a possibilidade? " em vez de ganhar itens, e dinheiro, a recompensa será uma outfit com full addons"?

exemplo, voçê completou a task dos troll, e a recompensa é wayfarer outfit com full addons.. será que tem como adicionar essa recompensa no teu sistema amigo?? ficarei mtmtm grato se isso acontecer!! :DD

meu servidor é 8.60! OTX Server  (2.52 - 1557) - Necron !!!

alguem pode me ajudar? REP+ para quem puder :DD

   

(desculpa, acho que ainda nao é flood certo?) (e se eu estiver errado me perdoe).

 

posso fazer essa alteração para você amigo, sem problemas, mais alguma outra que deseja adicionar?

vodkart_logo.png

[*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*]

 

DISCORDvodkart#6090

 

Link para o post
Compartilhar em outros sites

puxa cara, obrigado, desculpa a demora de 12hrs, para responder,,

quer um conselho? não devia ter perguntado se eu queria mais alguma coisa kk',

 

se for possível, no final de todas as task (menos as diárias) o player receber 10 dia de premium ?

explicando melhor: o player recebe a outfit + 10 dias de premium, quando tiver feito todas as task disponíveis...

se nao der para por os 10 dias de premium nem se estressa, o diferencial seria ganhar uma outfit..

mais tem 1 detalhe, eu retirei o sistema de premium do meu servidor.. e todos os players começam com as 4 outfits normais de free acc. porem estou criando algumas quest para todos obterem outfits de premium através delas.. você acha que vai dar certo? fazer com que o player 'free' ganhe uma 'outfit premium' na quest ou no final task, e possa usar mesmo sendo free account? ! se não tiver como, tem algo que eu possa fazer para editar isso?

 

obrigado

(desculpa o textão para não floodar pensei em dar bastante detalhes)

Link para o post
Compartilhar em outros sites
6 minutos atrás, liteon9y disse:

puxa cara, obrigado, desculpa a demora de 12hrs, para responder,,

quer um conselho? não devia ter perguntado se eu queria mais alguma coisa kk',

 

se for possível, no final de todas as task (menos as diárias) o player receber 10 dia de premium ?

explicando melhor: o player recebe a outfit + 10 dias de premium, quando tiver feito todas as task disponíveis...

se nao der para por os 10 dias de premium nem se estressa, o diferencial seria ganhar uma outfit..

mais tem 1 detalhe, eu retirei o sistema de premium do meu servidor.. e todos os players começam com as 4 outfits normais de free acc. porem estou criando algumas quest para todos obterem outfits de premium através delas.. você acha que vai dar certo? fazer com que o player 'free' ganhe uma 'outfit premium' na quest ou no final task, e possa usar mesmo sendo free account? ! se não tiver como, tem algo que eu possa fazer para editar isso?

 

obrigado

(desculpa o textão para não floodar pensei em dar bastante detalhes)

 

acho legal dar os 10 dias de premium para os jogadores que finalizarem toda as tasks originais!!

 

e a outfit vc escolhe em qual task vc deseja dar elas, vou fazer uma variável assim:

 

outfits = {137,136} -- male and female outfits

 

ai ele vai dar no final qndo entregar a task!! <3

 

vou fazer essa alterações assim que sair do escritório e te mando via PM.

 

abraços!

Editado por Vodkart (veja o histórico de edições)

vodkart_logo.png

[*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*]

 

DISCORDvodkart#6090

 

Link para o post
Compartilhar em outros sites

aah referente as outfits, não é nada especial..

quero que até o fim de todas as task (que não são poucas)

o player consiga adquirir todo o resto das outfits disponíveis,  (já que ele inicia só com as 4 basicas, 'citizen'hunter'knight'mage)

menos wayfarrer! shaman! assassin! brotherhood!, estas serao exclusivas para pegar em quest!

 

então você acha que não terá problemas?, (..)

-> o player é " free account ", !!!!

-> e ao entregar a task ele vai ganhar uma outfit de " premium ", 

-> ele vai poder usar normalmente a outfit mesmo sendo free account?

 

 

(acho que só você me mandando o script e testando para saber né?)

Link para o post
Compartilhar em outros sites
2 horas atrás, liteon9y disse:

aah referente as outfits, não é nada especial..

quero que até o fim de todas as task (que não são poucas)

o player consiga adquirir todo o resto das outfits disponíveis,  (já que ele inicia só com as 4 basicas, 'citizen'hunter'knight'mage)

menos wayfarrer! shaman! assassin! brotherhood!, estas serao exclusivas para pegar em quest!

 

então você acha que não terá problemas?, (..)

-> o player é " free account ", !!!!

-> e ao entregar a task ele vai ganhar uma outfit de " premium ", 

-> ele vai poder usar normalmente a outfit mesmo sendo free account?

 

 

(acho que só você me mandando o script e testando para saber né?)

 

vai conseguir sim! tbm só olhar no outfits,xml e colocar premium 0 acho, mas vai da certo sim os addons '-'

vodkart_logo.png

[*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*]

 

DISCORDvodkart#6090

 

Link para o post
Compartilhar em outros sites

Ficaria show assim

 

10 Tasks diarias = addon primária Hunter

10 Tasks gerais = addon secundária Hunter

 

15 Tasks diarias = addon primária Mage

15 Tasks gerais = addon secundária Mage

 

...

https://www.youtube.com/SaymonKopolsky

 

589f09a9e1af9_SemTtulo-1.png.ddf1b437984d72bd5d4124b7e90762fa.png

https://www.youtube.com/SaymonKopolsky

 

 

 

Easy Mapper Map Editor 8.60: Clique aqui

[8.60] BeastXHunter: Clique aqui

 

5494899_orig.gif

Link para o post
Compartilhar em outros sites

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

  • Conteúdo Similar

    • Por luanluciano93
      Olá pessoal, estou desenvolvendo esse sistema vip para TFS 1.x, se precisarem de alguma função nova é só comentar, criei para usar em um servidor meu e resolvi postar, bom proveito a todos.
       
      É só ir no arquivo data/lib/core/player.lua e adicionar esse código no começo do script:
      -- ALTER TABLE `accounts` ADD `vip_time` BIGINT(20) NOT NULL DEFAULT 0; -- player:getVipTime() function Player.getVipTime(self) local resultId = db.storeQuery("SELECT `vip_time` FROM `accounts` WHERE `id` = '".. self:getAccountId() .."';") local time = resultId ~= false and result.getNumber(resultId, "vip_time") or 0 result.free(resultId) return time end -- player:isVip() function Player.isVip(self) return self:getVipTime() > os.time() and true or false end -- player:addVipDays(days) function Player.addVipDays(self, days) return(self:isVip() and tonumber((days * 86400))) and db.query("UPDATE `accounts` SET `vip_time` = '".. (self:getVipTime() + (days * 86400)) .."' WHERE `id` ='".. self:getAccountId() .."' LIMIT 1 ;") or db.query("UPDATE `accounts` SET `vip_time` = '".. (os.time() + (days * 86400)) .."' WHERE `id` ='".. self:getAccountId() .."' LIMIT 1 ;") end -- player:removeVipDays(days) function Player.removeVipDays(self, days) return(self:isVip() and tonumber((days * 86400))) and db.query("UPDATE `accounts` SET `vip_time` = '".. (self:getVipTime() - (days * 86400)) .."' WHERE `id` ='".. self:getAccountId() .."' LIMIT 1 ;") or db.query("UPDATE `accounts` SET `vip_time` = '".. (os.time() - (days * 86400)) .."' WHERE `id` ='".. self:getAccountId() .."' LIMIT 1 ;") end -- player:setVipDays(days) function Player.setVipDays(self, days) return db.query("UPDATE `accounts` SET `vip_time` = '".. (os.time() - (days * 86400)) .."' WHERE `id` ='".. self:getAccountId() .."' LIMIT 1 ;") end -- player:removeVip() function Player.removeVip(self) db.query("UPDATE `accounts` SET `vip_time` = '0' WHERE `id` ='".. self:getAccountId() .."' LIMIT 1 ;") end -- player:sendVipDaysMessage() function Player.sendVipDaysMessage(self) if self:isVip() then local vipTime = self:getVipTime() - os.time() local vipDays = 1 + (math.floor(vipTime / 86400)) return self:getVipTime() ~= false and self:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, 'You have '.. vipDays .. ' vip day(s) in your account.') end end -- player:checkVipLogin() function Player.checkVipLogin(self) if self:getVipTime() > 0 and not self:isVip() then return self:removeVip() and self:teleportTo(self:getTown():getTemplePosition()) end end  
       
      As funções são:
      • player:getVipTime() - Retorna o valor da tabela vip_time (igual esta na database).
      • player:isVip() - Retorna se o player é vip ou não.
      • player:addVipDays(days) - Usa-se em algum script para para adicionar dias de vip ao player (parâmetro de entrada "days").
      • player:removeVipDays(days) - Usa-se em algum script para para remover dias de vip do player (parâmetro de entrada "days").
      • player:setVipDays(days) - Usa-se em algum script para para mudar os dias de vip do player (parâmetro de entrada "days").
      • player:removeVip() - Usa-se em algum script para para remover todo tempo de vip do player.
      • player:sendVipDaysMessage() - Retorna uma mensagem no player mostrando os dias de vip que ainda restam ao player.
      • player:checkVipLogin() - Checa se a vip do player acabou, se sim teleporta ele para o templo.
       

      Qualquer dúvida ou erro/bug poste aqui.
    • Por Killua
      Como funciona?
      A cada monstro que vc mata, seus itens equipados ganham 1 de exp. Quando seus itens chegarem às quantidades de exp definidas, eles upam e ficam com o nome assim: Demon Helmet + 1. Helmets, armors, legs, e boots recebem 1 de arm a cada vez que upam. Armas recebem 1 de ataque e escudos 1 de defesa.
       
      Para o monstro contar, ele deve dar um mínimo de exp (definido no script). O número de exp a que me refiro é aquele um presente no arquivo .xml.
       
      Para instalar, crie Killua Items Upgrade.lua em data/creaturescripts/scripts e coloque:
        Em data/creaturescripts/creaturescripts.xml coloque essas duas tags:
      <event type="kill" name="Item level" event="script" value="Killua Items Upgrade.lua"/> <event type="login" name="Item levell" event="script" value="Killua Items Upgrade.lua"/> Configurando: Na tabela table_of_slots, coloque em quais slots os itens upam.
      min_exp é a experiência mínima que o monstro deve ter para contar exp para o item. Se vc colocar 500, somente os monstros que tem exp igual ou superior a 500 no arquivo.xml vão valer.
      exp_levels são os valores de exp que os itens devem atingir para upar. No meu caso, quando o item alcançar 50 de exp, ele upa para o level 1. Quando alcançar 50 de exp, upa para o level 2 e assim por diante.
    • Por Sekk
      Bom, procurei esse Castle por MUITO TEMPO, mas não achei em NENHUM LUGAR DA INTERNET. Ontem, eu estava vendo alguns mapas do @Deathrocks, e vi nos prints, que o mapa possuia o evento que eu queria!
       
      Então baixei o mapa e extrai o evento, então venho lhes trazer!
       
       
      Nome: Castle 24H
      Cliente: 8.6
      Versão TFS: 0.4
      Tipo: Evento
       
      Bom, para começar, vamos em actions/scripts e crie 2 arquivos:
       
      castledoor1.lua
       
      castlewar1.lua
       
        Agora em actions.xml adicione as tags:
       
      Agora em monster/traps crie 3 arquivos:
       
      porta.xml
       
      protectcastle.xml  
      statue.xml  
      Agora em monsters.xml adicione as tags:    
      Vamos para movements/scripts e crie 2 arquivos:
       
      castlewar2.lua
       
      level.lua  
      Agora em movements.xml adicione as tags:  
       
      Pronto. Agora você só precisa baixar o mapa, inserir o mesmo ao seu servidor, configurar os teleports, e as hunts dentro do castle etc.
       
      PRINTS:
      1ª parte
       
      2ª parte:
       
      Obs.: Todos os ActionID e monsters já estão no mapa! Você só precisa configurar as coordenadas dos teleports, e o que possui no castle!
       
      Obs².: Tudo o que você pode configurar, já está escrito em cada script!
       
       
      Créditos:
      @DeathRocks
      PC98
      mapa.rar
    • Por gpedro
      Testado: MySQL & SQLite
      Distro: TFS 0.4_SVN & TFS 0.3.6

      MySQL

      ALTER TABLE `players` ADD `resets` INT(11) NOT NULL DEFAULT "0"; SQLite ALTER TABLE players ADD resets INTEGER not null default 0 Adicionando nas sources player.h procure por: uint32_t level; logo abaixo, adicione: uint32_t resets; iologindata.cpp procure por query << "SELECT `id`, `account_id`, `group_id`, `world_id`, `sex`, `vocation`, `experience`, `level`," substitua por: query << "SELECT `id`, `account_id`, `group_id`, `world_id`, `sex`, `vocation`, `experience`, `level`, `resets`, " procure por player->level = std::max((uint32_t)1, (uint32_t)result->getDataInt("level")); logo abaixo adicione: player->resets = (uint32_t)result->getDataInt("resets"); procure por query << "`maglevel` = " << player->magLevel << ", "; logo abaixo adicione: query << "`resets` = " << player->resets << ", "; players.cpp procure por: s << " (Level " << level << ")"; substitua por: s << " (Level " << level << ") [Reset " << resets << "]"; players.h procure por: void setPromotionLevel(uint32_t pLevel); logo abaixo adicione: uint32_t getResets() { return resets;} void setResets(int32_t amount) { resets += amount; if (resets < 0) {resets = 0;} } luascript.cpp para 0.3.6 static int32_t luaDoPlayerSetIdleTime(lua_State* L); logo abaixo adicione: static int32_t luaGetResets(lua_State* L); static int32_t luaSetResets(lua_State* L); talkactions.xml <talkaction words="!rank;/rank" event="script" value="ranks.lua"/> <talkaction words="!reset;/reset" script="reset.lua"/> ranks.lua
      Créditos: Dark Skyllen, Marcryzius, Mock, Kydrai, Cykotitan, gpedro*.
      * adaptação para 0.4
    • Por VitorSubhi
      Apresentação: Olá galera do Tibia King, este é meu primeiro tutorial que desenvolvo após anos apenas sugando da comunidade, chegou a hora de compartilhar um pouco de conhecimento, rsrs...
      Após ver que muitos usuários tinham interesse em um sistema de Trade de Points in-game resolvi trazer um sistema totalmente completo para vocês.
       
      Funcionamento:
      Player 1 após adquirir os Points, pode iniciar uma negociação com o Player 2 através do comando /tradepoints Player 2, Quantidade. Será aberto uma Janela de Trade com o item referente aos Points. Após ambos aceitarem a negociação será realizado a troca de Points pelo item requisitado.
      Observações:
      Necessário ter acesso às Sources de sua Distro. Testado em servidor 8.6 (The Forgotten Server 0.4). Antes que venham falar que possui sistemas parecidos, veja o diferencial (Item não aparece em nenhum inventário, e não é necessário usar/comprar qualquer item).  
      Algumas Imagens:
       
      Instalação:
      Sources > Luascript.cpp Sources > Luascript.cpp Sources > Luascript.h  
       
      Server > Data > Lib > 050-function Server > Data > Creaturescripts > Scripts >Trade_Orbs.lua Server > Data > Creaturescripts > Creaturescripts.xml Server > Data > Creaturescripts > Scripts > Login.lua Server > Data > Talkactions > Scripts > Points_Trade.lua Server > Data > Talkactions > Talkactions.xml Créditos:
      Todo o sistema foi feito completamente por mim: Vítor Subhi.
      The Forgotten Server (Pelas Sources)
      Vodkart, White Wolf, Natanael Beckman, e a todos os demais membros do TK que não lembro o nome, que contribuíram indiretamente através de seus tutoriais.
       
       
       
       
       



×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo