Jump to content

NPC TFS 1.X [NPC] Daily Task com 4 opções diarias.


Recommended Posts

Introdução:

     Eu estava procurando um sistema de tasks diarias funcional, achei alguns, mas nenhum do jeito que eu queria, então eu fiz esse.

Ele tá bem simples, porém funcional, aí vou postar uma "melhoria" dele e linkar AQUI  << tá linkado, dá uma olhada lá 😃

 

Como funciona?

        Bom, eu me baseei no sistema de tasks do PxG onde você pode escolher entre tasks de diferentes niveis/dificuldades, no caso, este é possivel que vc escolha entre 4 opções, sendo elas de nivel "easy", "medium", "hard" e "expert", e tem até o server save para entregar.

Como prêmios, coloquei: Quantidade aleatoria de XP, Quantidade fixa de um Item fixo e quantidade aleatoria de um(ou mais) item aleatorio.

 

Como "instalar" o script:

1.1 Vá até /data/npc e crie o arquivo daily.xml, abra-o e coloque tudo isso lá dentro:

Spoiler

<?xml version="1.0" encoding="UTF-8"?>
<npc name="Iwan" walkinterval="2000" floorchange="0" script="dailyTask.lua">
	<health now="100" max="100"/>
	<look type="128" head="0" body="112" legs="107" feet="113" addons="0"/>
</npc>

 

 

1.2 Vá até /data/npc/scripts e adicione o arquivo dailyTask.lua, e dentro dele coloque:

Spoiler

local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)

local condition = Condition(CONDITION_BLEEDING)
condition:setParameter(CONDITION_PARAM_DELAYED, 1)
condition:addDamage(1200, 500, -100)

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 function creatureSayCallback(cid, type, msg)
	if not npcHandler:isFocused(cid) then
		return false
	end
	local aa, bb, cc, dd, ee, ff = 0
	local player = Player(cid)
		
		if msgcontains(msg, "help") then
			npcHandler:say("I can offer you some {daily tasks}.", cid)
		elseif msgcontains(msg, "task") or msgcontains(msg, "tasks") or msgcontains(msg, "daily") or msgcontains(msg, "tarefa") or  msgcontains(msg, "tarefas") or msgcontains(msg, "diaria") then
			if player:getStorageValue(DT_STORAGES.HAVE_STARTED) > 0 then
				return npcHandler:say("You have already started your daily task today.", cid)
			elseif player:getStorageValue(DT_STORAGES.HAVE_STARTED) == -2 then
				return npcHandler:say("You have already completed your daily task today.", cid)
			end
			npcHandler:say("I have tasks of level {Easy}, {Medium}, {Hard} and {Expert}. Which one do you want to do?", cid)
			npcHandler.topic[cid] = 1
		else
			npcHandler:say("What are you talking about??", cid)
		end
		
	if npcHandler.topic[cid] == 1 then
		if msgcontains(msg, "easy") then
		if DT_PREMIOQTDE_EASY > 0 then
			npcHandler:say("Your EASY daily task today is: Kill {".. DT_NEEDKILL_EASY .."} {".. DT_CHOSENTASK_EASY .."}(s).\nIf you finish before {6:00am (GTM-3)}, you will receive:\n*{".. DT_PREMIOQTDE_EASY .."}x "..getAllTableText(DT_PRIZENAME_EASY, "or")..", chosen at random;\n*{"..DT_PREMIOFIXO_QTDE_EASY.."}x "..DT_PREMIOFIXO_NAME_EASY..";\n*{"..DT_EXPPRIZE_EASY.."} Experience points;\n*{"..DT_TASKPOINTS_EASY.."}x Task Point.\nDo you want to start this {EASY} task?", cid)
		else
			npcHandler:say("Your EASY daily task today is: Kill {".. DT_NEEDKILL_EASY .."} {".. DT_CHOSENTASK_EASY .."}(s).\nIf you finish before {6:00am (GTM-3)}, you will receive:\n*{"..DT_PREMIOFIXO_QTDE_EASY.."}x "..DT_PREMIOFIXO_NAME_EASY..";\n*{"..DT_EXPPRIZE_EASY.."} Experience points;\n*{"..DT_TASKPOINTS_EASY.."}x Task Point.\nDo you want to start this {EASY} task?", cid)
		end
			npcHandler.topic[cid] = 3
		elseif msgcontains(msg, "medium") then
			npcHandler:say("Your MEDIUM daily task today is: Kill {".. DT_NEEDKILL_MEDIUM .."}{ ".. DT_CHOSENTASK_MEDIUM .."}(s).\nIf you finish before {6:00am (GTM-3)}, you will receive:\n*{".. DT_PREMIOQTDE_MEDIUM .."}x "..getAllTableText(DT_PRIZENAME_MEDIUM, "or")..", chosen at random;\n*{"..DT_PREMIOFIXO_QTDE_MEDIUM.."}x "..DT_PREMIOFIXO_NAME_MEDIUM..";\n*{"..DT_EXPPRIZE_MEDIUM.."} Experience points;\n*{"..DT_TASKPOINTS_MEDIUM.."}x Task Point.\nDo you want to start this {MEDIUM} task?", cid)
			npcHandler.topic[cid] = 4		
		elseif msgcontains(msg, "hard") then
			npcHandler:say("Your HARD daily task today is: Kill {".. DT_NEEDKILL_HARD .."}{ ".. DT_CHOSENTASK_HARD .."}(s).\nIf you finish before {6:00am (GTM-3)}, you will receive:\n*{".. DT_PREMIOQTDE_HARD .."}x "..getAllTableText(DT_PRIZENAME_HARD, "or")..", chosen at random;\n*{"..DT_PREMIOFIXO_QTDE_HARD.."}x "..DT_PREMIOFIXO_NAME_HARD..";\n*{"..DT_EXPPRIZE_HARD.."} Experience points;\n*{"..DT_TASKPOINTS_HARD.."}x Task Point.\nDo you want to start this {HARD} task?", cid)
			npcHandler.topic[cid] = 5		
		elseif msgcontains(msg, "expert") then
			npcHandler:say("Your EXPERT daily task today is: Kill {".. DT_NEEDKILL_EXPERT .." }{".. DT_CHOSENTASK_EXPERT .."}(s).\nIf you finish before {6:00am (GTM-3)}, you will receive:\n*{".. DT_PREMIOQTDE_EXPERT .."}x "..getAllTableText(DT_PRIZENAME_EXPERT, "or")..", chosen at random;\n*{"..DT_PREMIOFIXO_QTDE_EXPERT.."}x "..DT_PREMIOFIXO_NAME_EXPERT..";\n*{"..DT_EXPPRIZE_EXPERT.."} Experience points;\n*{"..DT_TASKPOINTS_EXPERT.."}x Task Point.\nDo you want to start this {EXPERT} task?", cid)
			npcHandler.topic[cid] = 6		
		end
	end
	if msgcontains(msg, "yes") then
		if npcHandler.topic[cid] == 3 then	
		npcHandler:say("Ok, don't waste time! You must kill all these monsters and return to receive your reward before {6:00 am}(GMT-3).", cid)
		player:setStorageValue(DT_STORAGES.EASY, 0)
		player:setStorageValue(DT_STORAGES.HAVE_STARTED, 1)
		elseif npcHandler.topic[cid] == 4 then
		npcHandler:say("Ok, don't waste time! You must kill all these monsters and return to receive your reward before {6:00 am}(GMT-3).", cid)
		player:setStorageValue(DT_STORAGES.MEDIUM, 0)
		player:setStorageValue(DT_STORAGES.HAVE_STARTED, 2)
		elseif npcHandler.topic[cid] == 5 then
		npcHandler:say("Ok, don't waste time! You must kill all these monsters and return to receive your reward before {6:00 am}(GMT-3).", cid)
		player:setStorageValue(DT_STORAGES.HARD, 0)
		player:setStorageValue(DT_STORAGES.HAVE_STARTED, 3)
		elseif npcHandler.topic[cid] == 6 then
		npcHandler:say("Ok, don't waste time! You must kill all these monsters and return to receive your reward before {6:00 am}(GMT-3).", cid)
		player:setStorageValue(DT_STORAGES.EXPERT, 0)
		player:setStorageValue(DT_STORAGES.HAVE_STARTED, 4)
		end		
	end

	if msgcontains(msg, "report") then
		if player:getStorageValue(DT_STORAGES.HAVE_STARTED) == 1 then
			if player:getStorageValue(DT_STORAGES.EASY) >= DT_NEEDKILL_EASY then
				npcHandler:say("Just in time! Here are your rewards, come back tomorrow for another task!", cid)
				player:setStorageValue(DT_STORAGES.HAVE_STARTED, -2)
				
				player:addExperience(DT_EXPPRIZE_EASY) --exp
				
				player:addItem(DT_PREMIOFIXO_ID_EASY, DT_PREMIOFIXO_QTDE_EASY) --fixo
				if DT_PREMIOQTDE_EASY > 0 then --rand
					if DT_PREMIOQTDE_EASY == 1 then --rand
						aa = math.random(#DT_PRIZEID_EASY)
						player:addItem(DT_PRIZEID_EASY[aa], 1)
					else
						for i = 1, tonumber(DT_PREMIOQTDE_EASY) do
							aa = math.random(#DT_PRIZEID_EASY)
							player:addItem(DT_PRIZEID_EASY[aa], 1)
						end
					end
				end
			else
				npcHandler:say("You haven't finished your task yet. You still have to kill {"..DT_NEEDKILL_EASY - player:getStorageValue(DT_STORAGES.EASY) .."} "..DT_CHOSENTASK_EASY.."(s).", cid)
			end			
		elseif player:getStorageValue(DT_STORAGES.HAVE_STARTED) == 2 then
			if player:getStorageValue(DT_STORAGES.MEDIUM) >= DT_NEEDKILL_MEDIUM then
				npcHandler:say("Just in time! Here are your rewards, come back tomorrow for another task!", cid)
				player:setStorageValue(DT_STORAGES.HAVE_STARTED, -2)
				
				player:addExperience(DT_EXPPRIZE_MEDIUM) --exp
				
				player:addItem(DT_PREMIOFIXO_ID_MEDIUM, DT_PREMIOFIXO_QTDE_MEDIUM) --fixo
				
				if DT_PREMIOQTDE_MEDIUM > 0 then --rand
					if DT_PREMIOQTDE_MEDIUM == 1 then --rand
						aa = math.random(#DT_PRIZEID_MEDIUM)
						player:addItem(DT_PRIZEID_MEDIUM[aa], 1)
					else
						for i = 1, tonumber(DT_PREMIOQTDE_MEDIUM) do
							aa = math.random(#DT_PRIZEID_MEDIUM)
							player:addItem(DT_PRIZEID_MEDIUM[aa], 1)
						end
					end
				end
			else
				npcHandler:say("You haven't finished your task yet. You still have to kill {"..DT_NEEDKILL_MEDIUM - player:getStorageValue(DT_STORAGES.MEDIUM) .."} "..DT_CHOSENTASK_MEDIUM.."(s).", cid)
			end	
		elseif player:getStorageValue(DT_STORAGES.HAVE_STARTED) == 3 then
			if player:getStorageValue(DT_STORAGES.HARD) >= DT_NEEDKILL_HARD then
				npcHandler:say("Just in time! Here are your rewards, come back tomorrow for another task!", cid)
				player:setStorageValue(DT_STORAGES.HAVE_STARTED, -2)
				
				player:addExperience(DT_EXPPRIZE_HARD) --exp
				
				player:addItem(DT_PREMIOFIXO_ID_HARD, DT_PREMIOFIXO_QTDE_HARD) --fixo
				
				if DT_PREMIOQTDE_HARD > 0 then --rand
					if DT_PREMIOQTDE_HARD == 1 then --rand
						aa = math.random(#DT_PRIZEID_HARD)
						player:addItem(DT_PRIZEID_HARD[aa], 1)
					else
						for i = 1, tonumber(DT_PREMIOQTDE_HARD) do
							aa = math.random(#DT_PRIZEID_HARD)
							player:addItem(DT_PRIZEID_HARD[aa], 1)
						end
					end
				end
			else
				npcHandler:say("You haven't finished your task yet. You still have to kill {"..DT_NEEDKILL_HARD - player:getStorageValue(DT_STORAGES.HARD) .."} "..DT_CHOSENTASK_HARD.."(s).", cid)
			end	
		elseif player:getStorageValue(DT_STORAGES.HAVE_STARTED) == 4 then
			if player:getStorageValue(DT_STORAGES.EXPERT) >= DT_NEEDKILL_EXPERT then
				npcHandler:say("Just in time! Here are your rewards, come back tomorrow for another task!", cid)
				player:setStorageValue(DT_STORAGES.HAVE_STARTED, -2)
				
				player:addExperience(DT_EXPPRIZE_EXPERT) --exp
				
				player:addItem(DT_PREMIOFIXO_ID_EXPERT, DT_PREMIOFIXO_QTDE_EXPERT) --fixo
				
				if DT_PREMIOQTDE_EXPERT > 0 then --rand
					if DT_PREMIOQTDE_EXPERT == 1 then --rand
						aa = math.random(#DT_PRIZEID_EXPERT)
						player:addItem(DT_PRIZEID_EXPERT[aa], 1)
					else
						for i = 1, tonumber(DT_PREMIOQTDE_EXPERT) do
							aa = math.random(#DT_PRIZEID_EXPERT)
							player:addItem(DT_PRIZEID_EXPERT[aa], 1)
						end
					end
				end
			else
				npcHandler:say("You haven't finished your task yet. You still have to kill {"..DT_NEEDKILL_EXPERT - player:getStorageValue(DT_STORAGES.EXPERT) .."} "..DT_CHOSENTASK_EXPERT.."(s).", cid)
			end	
		else
			npcHandler:say("Uhn.. What are you talking about??", cid)
			npcHandler.topic[cid] = 0
		end
	end
end
npcHandler:setMessage(MESSAGE_GREET, "Hello, |PLAYERNAME| i've some {tasks} for u.")
npcHandler:setMessage(MESSAGE_FAREWELL, 'Bye.')

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

 

 

 

2.1 Em /data/lib/lib.lua, acrescente a linha:

dofile('data/lib/task/dailytask.lua')

 

2.2 Crie o arquivo dailytask.lua em /data/lib/task/, e dentro coloque:

Spoiler

-- CONFIGS

local easy = {
minQTDE = 50,
maxQTDE = 300,

minEXP = 250000,
maxEXP = 750000,

prizesID = {22607, 22604},
prizesNAME = {"Boss Key", "Hunt Key"},
minQTDEPremios = 0,
maxQTDEPremios = 2,

PremioFixoID = 25377,
PremioFixoNAME = "Gold Token",
PremioFixoQTDE = 1,

taskPoints = 1
}

local medium = {
minQTDE = 100,
maxQTDE = 400,

minEXP = 500000,
maxEXP = 1500000,

prizesID = {22607, 22604},
prizesNAME = {"Boss Key", "Hunt Key"},
minQTDEPremios = 1,
maxQTDEPremios = 3,

PremioFixoID = 25377,
PremioFixoNAME = "Gold Token",
PremioFixoQTDE = 2,

taskPoints = 2
}

local hard = {
minQTDE = 150,
maxQTDE = 500,

minEXP = 1000000,
maxEXP = 3000000,

prizesID = {22607, 22604},
prizesNAME = {"Boss Key", "Hunt Key"},
minQTDEPremios = 2,
maxQTDEPremios = 4,

PremioFixoID = 25377,
PremioFixoNAME = "Gold Token",
PremioFixoQTDE = 3,

taskPoints = 3
}

local expert = {
minQTDE = 200,
maxQTDE = 600,

minEXP = 2000000,
maxEXP = 6000000,

prizesID = {22607, 22604},
prizesNAME = {"Boss Key", "Hunt Key"},
minQTDEPremios = 3,
maxQTDEPremios = 5,

PremioFixoID = 25377,
PremioFixoNAME = "Gold Token",
PremioFixoQTDE = 4,

taskPoints = 4
}

DT_TasksEasy = {"Minotaur", "Minotaur Guard", "Minotaur Mage", "Minotaur Archer", "Larva", "Scarab", "Wyvern", "Rorc", "Wolf", "War Wolf", "Orc Berserker", "Orc Warrior", "Orc Shaman", "Orc Leader", "Orc", "Cyclops", "Orc Rider", "Slime", "Orc Warlord", "Water Elemental", "Quara Mantassin Scout", "Gargoyle", "Mummy", "Crypt Shambler", "Demon Skeleton", "Ghost", "Zombie", "Rotworm", "Carrion Worm", "Rotworm Queen", "Tortoise", "Thornback Tortoise", "Toad", "Crab", "Blood Crab", "Killer Caiman", "Ghoul", "Scorpion", "Banshee", "Fire Devil", "Amazon", "Valkyrie", "Witch", "Leaf Golem", "Forest Fury", "Troll", "Goblin", "Troll Champion", "Goblin Scavanger", "Goblin Assassin", "Corym Vanguard", "Corym Skirmisher", "Corym Charlatan", "Ghost Wolf", "Gloom Wolf", "Elf", "Elf Arcanist", "Elf Scout", "Firestarter", "Bat", "Swamp Troll", "Stonerefiner", "Tarantula", "Dragon Hatchling", "Nomad", "Scorpion", "Dwarf", "Dwarf Soldier", "Dwarf Guard", "Kongra", "Sibang", "Merlkin", "Gazer", "Bonelord", "Elder Bonelord", "Braindeath"}
DT_TasksMedium = {"Vicious Squire", "Vile Grandmaster", "Renegade Knight", "Cult Believer", "Cult Enforcer", "Cult Scholar", "Ghastly Dragon", "Lizard Chosen", "Giant Spider", "Tarantula", "Bog Raider", "Earth Elemental", "Enfeebled Silencer", "Weakened Frazzlemaw", "Noble Lion", "Ancient Scarab", "Roaring Lion", "Souleater", "Mutated Bat", "Mutated Rat", "Mutated Tiger", "Warlock", "Yielothax", "Killer Caiman", "Vampire Bridge", "Vampire Viscount", "Vampire", "Bonebeast", "Necromancer", "Quara Predator", "Quara Constrictor", "Quara Mantassin", "Quara Pincher", "Quara Hydromancer", "Quara Predator Scout", "Quara Constrictor Scout", "Quara Mantassin Scout", "Quara Pincher Scout", "Quara Hydromancer Scout", "Wyrm", "Behemoth", "Nightstalker", "Giant Spider", "Energy Elemental", "Stampor", "Bonebeast", "Orc Cult Inquisitor", "Orc Cult Minion", "Orc Cultist", "Orc Cult Priest", "Orc Cult Fanatic", "Lost Husher", "Lost Basher", "Lost Thrower", "enslaved Dwarf", "Dragon", "Dragon Lord", "Barkless Devotee", "Barkless Fanatic", "Massive Water Elemental", "Minotaur Cult Follower", "Minotaur Cult Prophet", "Minotaur Cult Zealot" }
DT_TasksHard = {"Vicious Squire", "Vile Grandmaster", "Renegade Knight", "Hero", "Necromancer", "Lich", "Werebear", "Wereboar", "Werebadger", "Werewolf", "Askarak Demon", "Shaburak Demon", "Wyrm", "Elder Wyrm", "Vampire Viscount", "Blood Priest", "Shadow Pupil", "White Shade", "Vampire", "Putrid Mummy", "Giant Spider", "Fury", "Massive Fire Elemental", "Dragonling", "Hellfire Fighter", "Diabolic Imp", "Hellhound", "Infernalist", "Behemoth", "Dawnfire Asura", "Midnight Asura", "Hellspawn", "Plaguesmith", "Medusa", "Serpent Spawn", "Hydra", "Dark Faun", "Boogy", "Twisted Pooka", "Draken Elite", "Draken Warmaster", "Draken Spellweaver", "Draken Abomination", "Lizard Legionnaire", "Lizard Dragon Priest", "Lizard High Guard", "Lizard Chosen", "Ghastly Dragon"}
DT_TasksExpert = {"Guzzlemaw", "Sight of Surrender", "Terrorsleep", "Silencer", "Dark Torturer", "Demon Outcast", "Betrayed Wraith", "Plaguesmith", "Blightwalker", "Nightmare", "Juggernault", "Hellhound", "Crazed Winter Rearguard", "Crazed Winter Vanguard", "Crazed Summer Rearguard", "Crazed Summer Vanguard", "Spiky Carnivor", "Lumbering Carnivor", "Menacing Carnivor", "Vexclaw", "Grimeleech", "Demon", "Hellflayer", "Hellfire Fighter", "Fury", "Undead Dragon", "Phantasm", "Nightmare", "Defiler", "Plaguesmith", "Spectre", "Hand of Cursed Fate", "Undead Elite Gladiator", "Skeleton Elite Warrior", "Grim Reaper", "Gravedigger", "Floating Servant", "Lava Luker Attendant", "Cobra Assassin", "Cobra Vizier", "Cobra Scout", "Dread Intruder", "Reality Reaver", "Sparkion", "Breach Brood", "Choking Fear", "Retching Horror", "Animated Feather", "Biting Book", "Brain Squid", "Burning Book", "Cursed Book", "Energetic Book", "Energuardian of Tales", "Flying Book", "Guardian of Tales", "Icecold Book", "Ink Blob", "Knowledge Elemental", "Rage Squid", "Squid Warden", "Lost Soul", "Falcon Knight", "Falcon Paladin"}

-- SCRIPT

	
	DT_STORAGES = {
		PONTOS = 367643975,
		EXPERT = 367643974,
		HARD = 367643973,
		MEDIUM = 367643972,
		EASY = 367643971,
		HAVE_STARTED = 367643970,
			}
			
	--RESETAR STORAGES
		for i = 1, 6 do
		db.query('DELETE FROM `player_storage` WHERE `player_storage`.`key` = '.. 367643969+i ..'')
		end	
		
	-- EASY (100-)
		DT_CHOSENTASK_EASY = DT_TasksEasy[math.random(#DT_TasksEasy)]
		DT_NEEDKILL_EASY = math.ceil(math.random(easy.minQTDE, easy.maxQTDE))
		DT_EXPPRIZE_EASY = math.random(easy.minEXP, easy.maxEXP)
		
		DT_PRIZEID_EASY = easy.prizesID
		DT_PRIZENAME_EASY = easy.prizesNAME
		DT_PREMIOQTDE_EASY = math.random(easy.minQTDEPremios, easy.maxQTDEPremios)
		
		DT_PREMIOFIXO_ID_EASY = easy.PremioFixoID
		DT_PREMIOFIXO_NAME_EASY = easy.PremioFixoNAME
		DT_PREMIOFIXO_QTDE_EASY = easy.PremioFixoQTDE
		
		DT_TASKPOINTS_EASY = easy.taskPoints
		
	-- MEDIUM (150-)
		DT_CHOSENTASK_MEDIUM = DT_TasksMedium[math.random(#DT_TasksMedium)]
		DT_NEEDKILL_MEDIUM = math.ceil(math.random(medium.minQTDE, medium.maxQTDE))
		DT_EXPPRIZE_MEDIUM = math.random(medium.minEXP, medium.maxEXP)
		
		DT_PRIZEID_MEDIUM = medium.prizesID
		DT_PRIZENAME_MEDIUM = medium.prizesNAME
		DT_PREMIOQTDE_MEDIUM = math.random(medium.minQTDEPremios, medium.maxQTDEPremios)
		
		DT_PREMIOFIXO_ID_MEDIUM = medium.PremioFixoID
		DT_PREMIOFIXO_NAME_MEDIUM = medium.PremioFixoNAME
		DT_PREMIOFIXO_QTDE_MEDIUM = medium.PremioFixoQTDE
		
		DT_TASKPOINTS_MEDIUM = medium.taskPoints
	
	--HARD (200-)
		DT_CHOSENTASK_HARD = DT_TasksHard[math.random(#DT_TasksHard)]
		DT_NEEDKILL_HARD = math.ceil(math.random(hard.minQTDE, hard.maxQTDE))
		DT_EXPPRIZE_HARD = math.random(hard.minEXP, hard.maxEXP)
		
		DT_PRIZEID_HARD = hard.prizesID
		DT_PRIZENAME_HARD = hard.prizesNAME
		DT_PREMIOQTDE_HARD = math.random(hard.minQTDEPremios, hard.maxQTDEPremios)
		
		DT_PREMIOFIXO_ID_HARD = hard.PremioFixoID
		DT_PREMIOFIXO_NAME_HARD = hard.PremioFixoNAME
		DT_PREMIOFIXO_QTDE_HARD = hard.PremioFixoQTDE
		
		DT_TASKPOINTS_HARD = hard.taskPoints
		
	--EXPERT (200+)
		DT_CHOSENTASK_EXPERT = DT_TasksExpert[math.random(#DT_TasksExpert)]
		DT_NEEDKILL_EXPERT = math.ceil(math.random(expert.minQTDE, expert.maxQTDE))
		DT_EXPPRIZE_EXPERT = math.random(expert.minEXP, expert.maxEXP)
		
		DT_PRIZEID_EXPERT = expert.prizesID
		DT_PRIZENAME_EXPERT = expert.prizesNAME
		DT_PREMIOQTDE_EXPERT = math.random(expert.minQTDEPremios, expert.maxQTDEPremios)
		
		DT_PREMIOFIXO_ID_EXPERT = expert.PremioFixoID
		DT_PREMIOFIXO_NAME_EXPERT = expert.PremioFixoNAME
		DT_PREMIOFIXO_QTDE_EXPERT = expert.PremioFixoQTDE
		
		DT_TASKPOINTS_EXPERT = expert.taskPoints

		-- FUNÇÃO PRA PEGAR OS NOMES DOS ITEM
function getAllTableText(aa, bb, cc)
local tablecheck = aa

if not tablecheck then
	return false
end

local lang = bb
local ponto = ""
if not lang then
	lang = "and"
end
if cc then
ponto = "."
end
local text = ""
for i = 1, #tablecheck do
	if i == 1 then
	text = tablecheck[i]
	elseif i == #tablecheck then
	text = text .." "..lang.." "..tablecheck[i]..""..ponto..""
	else
	text = text ..", "..tablecheck[i]
	end
end
return text
end

 

 

 

3.1 Em /data/creaturescript/creaturescripts.xml adicione a tag:

	<event type="kill" name="dailyTasks" script="dailyTasks.lua"/>

 

3.2 Registre o "dailyTasks" no seu login.lua

 

3.3 Crie o arquivo dailyTasks.lua em /data/creaturescript/scripts e coloque tudo isso dentro:

Spoiler

function onKill(player, target)
local monster = getCreatureName(target)
	
local KILL_EASY = player:getStorageValue(DT_STORAGES.EASY)
local KILL_MEDIUM = player:getStorageValue(DT_STORAGES.MEDIUM)
local KILL_HARD = player:getStorageValue(DT_STORAGES.HARD)
local KILL_EXPERT = player:getStorageValue(DT_STORAGES.EXPERT)

local isDOING = player:getStorageValue(DT_STORAGES.HAVE_STARTED)

if isDOING == 1 then
	if monster:lower() == DT_CHOSENTASK_EASY:lower() then
				player:setStorageValue(DT_STORAGES.EASY, KILL_EASY + 1)
		if KILL_EASY >= DT_NEEDKILL_EASY then
				player:sendTextMessage(30, "[DAILY TASK] You successully killed "..DT_NEEDKILL_EASY.." "..monster..". Talk to Iwan about it.")
			else
				player:sendTextMessage(30, "[DAILY TASK] You killed a "..monster..". There are still "..DT_NEEDKILL_EASY-KILL_EASY-1 .." to kill.")
		end
	end
elseif isDOING == 2 then
	if monster:lower() == DT_CHOSENTASK_MEDIUM:lower() then
				player:setStorageValue(DT_STORAGES.MEDIUM, KILL_MEDIUM + 1)
		if KILL_MEDIUM >= DT_NEEDKILL_MEDIUM then
				player:sendTextMessage(30, "[DAILY TASK] You successully killed "..DT_NEEDKILL_MEDIUM.." "..monster..". Talk to Iwan about it.")
			else
				player:sendTextMessage(30, "[DAILY TASK] You killed a "..monster..". There are still "..DT_NEEDKILL_MEDIUM-KILL_MEDIUM-1 .." to kill.")		
		end
	end
elseif isDOING == 3 then
	if monster:lower() == DT_CHOSENTASK_HARD:lower() then
				player:setStorageValue(DT_STORAGES.HARD, KILL_HARD + 1)
		if KILL_HARD >= DT_NEEDKILL_HARD then
				player:sendTextMessage(30, "[DAILY TASK] You successully killed "..DT_NEEDKILL_HARD.." "..monster..". Talk to Iwan about it.")
			else
				player:sendTextMessage(30, "[DAILY TASK] You killed a "..monster..". There are still "..DT_NEEDKILL_HARD-KILL_HARD-1 .." to kill.")		
		end
	end
elseif isDOING == 4 then
	if monster:lower() == DT_CHOSENTASK_EXPERT:lower() then
				player:setStorageValue(DT_STORAGES.EXPERT, KILL_EXPERT + 1)
		if KILL_EXPERT >= DT_NEEDKILL_EXPERT then
				player:sendTextMessage(30, "[DAILY TASK] You successully killed "..DT_NEEDKILL_EXPERT.." "..monster..". Talk to Iwan about it.")
			else
				player:sendTextMessage(30, "[DAILY TASK] You killed a "..monster..". There are still "..DT_NEEDKILL_EXPERT-KILL_EXPERT-1 .." to kill.")		
		end
	end
end

return true
end

 

 

Configurando o Script:

Essas configurações estão no:  /data/lib/task/dailytasks.lua

Citar

minQTDE = 50,                                                  <-- Minimo de monstros que o jogador vai ter q matar na task
maxQTDE = 300,                                               <-- Maximo de monstros que o jogador vai ter q matar na task

 

minEXP = 250000,                                            <-- Minimo de exp que ganha ao completar a task
maxEXP = 750000,                                            <-- Maximo de exp que ganha ao completar a task

 

prizesID = {22607, 22604},                               <-- ID dos items possives de ganhar (vc os ganha aleatoriamente). obs: Caso queira que tal item tenha mais chance, só repetir
prizesNAME = {"Boss Key", "Hunt Key"},         <-- Nome dos items possiveis de ganhar ao completar a task.
minQTDEPremios = 0,                                     <-- Minimo de items aleatorios possiveis
maxQTDEPremios = 2,                                     <-- Maximo dos items aleatorios q da pra ganhar( 2 significa q vai ganhar 2 dos items ali de cima, pode ser 2 iguais, ou dois diferentes)

 

PremioFixoID = 25377,                                    <-- premio que sempre ganha quando completa a task
PremioFixoNAME = "Gold Token",                  <-- nome do item que semre ganha quando completa a task
PremioFixoQTDE = 1,                                      <-- quantidade do item que vai ganhar sempre (se o item não for stackavel, vai dar só um )

 

taskPoints = 1                                                 <-- Ponto de task, não tem nenhuma utilidade aqui nesse script, mas vou fazer um outro post de um sqm que só da pra passar se tiver x pontos

 

DT_TasksEasy = {"Minotaur", "Minotaur Guard", "Minotaur Mage", ..., "Braindeath"}                                                                  <-- Os monstros possiveis de caçar no nivel facil

DT_TasksMedium = {"Vicious Squire", "Vile Grandmaster", ...,  "Minotaur Cult Zealot" }                                                             <-- Os monstros possiveis de caçar no nivel medio

DT_TasksHard = {"Hero", ..., "Necromancer", "Lich", "Werebear", "Wereboar", "Werebadger", "Werewolf",}                               <-- Os monstros possiveis de caçar no nivel dificil

DT_TasksExpert = {"Guzzlemaw", "Sight of Surrender", "Terrorsleep",  "Dark Torturer", "Demon Outcast", ..., "Spiky Carnivor"} <-- Os monstros possiveis de caçar no nivel especialista

 

 

Imagens de amostra:

Escolhendo as tasks(A da direita é antes de save, e a da esquerda depois).

image.thumb.png.57869453e435c27f1188fd2e0268cf0a.png

 

Server Log contando quantos monstros foram mortos.

image.thumb.png.90ccae6a6675b184b829f25db5165236.png

 

Na bp normal os premios da primeira vez que eu fiz, na azul os premios da segunda (só pra mostrar que é aleatorio, um player não pode repetir a task)

image.png.1b4eb80df7eb59db4212f7f01f79aa9d.png

Edited by Mor3nao (see edit history)

MEUS POSTS:

 

SE AJUDEI, DÁ O REP+, ESQUECE NÃO, VLW BB <3

Link to post
Share on other sites

  • Assistente

Tópico aprovado e agradecemos pela contribuição.

APOIE NOSSAS CAUSAS - IBEACIBEAC

SEJA UM APOIADOR E AJUDE ALGUÉM

Se você acha que meu trabalho merece uma ajuda nessa quarentena, então seja um apoiador fiel doehttps://streamlabs.com/l3k0t1

 

 CANAL YOUTUBE: https://www.youtube.com/channel/UCMP25Br519j7dD1FFEMzPgA?view_as=subscriber

Meu grupo no Discord: https://discord.gg/qMS5pm9

"Você tem um sonho? Não deixe os outros te derrubarem e lute por aquilo que você acredita" by L3K0T  

 

GENTILEZA GERA GENTILEZA

 

 

Link to post
Share on other sites

  • 2 weeks later...
  • 3 weeks later...
9 horas atrás, diarmaint disse:

Não tem, estou usando tfs 0.4

Infelizmente não é compativel com o 0.4, teria que adaptar =\

 

2 horas atrás, wizinx disse:

Registre o "dailyTasks" no seu login.lua <<- como registro eso en tfs 1.3 ???, gracias

Abra o: creaturescripts/scripts/login.lua  e coloque essa linha: player:registerEvent("dailyTasks")

MEUS POSTS:

 

SE AJUDEI, DÁ O REP+, ESQUECE NÃO, VLW BB <3

Link to post
Share on other sites

11 horas atrás, Mor3nao disse:

Infelizmente não é compativel com o 0.4, teria que adaptar =\

Não teria como você fazer isso pra gente?😁 visto que bastante gente usa 86.0 ...

Link to post
Share on other sites

18 horas atrás, Mor3nao disse:

Infelizmente não é compativel com o 0.4, teria que adaptar =\

 

Abra o: creaturescripts/scripts/login.lua  e coloque essa linha: player:registerEvent("dailyTasks")

teria como colocar compatível com 0.4? já que é bastante usado pela comunidade. 

Link to post
Share on other sites

5 horas atrás, wizinx disse:

Hola amigo, tengo un problema, en la task expert no baja el contador de monster, te adjunto una imagen.

task.png

Corrigi! o basta atualizar o dailyTasks.lua em /data/creaturescript/scripts

 

23 horas atrás, XGaduX disse:

teria como colocar compatível com 0.4? já que é bastante usado pela comunidade. 

Pior que não, sei que a maioria é 0.4 e se tivesse jeito de mudar pra 0.4, eu mudaria, mas não tem um modo "automatico" de se fazer isso, eu teria meio q 'refazer' o script, e como nao tenho costume com o 0.4, iria demorar muito =\

MEUS POSTS:

 

SE AJUDEI, DÁ O REP+, ESQUECE NÃO, VLW BB <3

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Similar Content

    • By JEAN JR
      Eai Galera do TK, tranquilo ? Hoje uma pessoa do TibiaKing me procurou pedindo ajuda com Account Manager no TIBIA DBO pelo motivo de não ter dinheiro para hospedar o site, porem no TIBIA DBO pelo que pesquisei ele não tem Account Manager e não dá pra criar por conta de algumas Sources que não tem, e realmente no OT DBO dele dava BUG ao tentar criar por Account Manager (Que eu mesmo criei por conta de não ter).
       
      Mas vamos ao que Interessa. Acabei fazendo o NPC Yaman (do começo do jogo) de NPC de escolha de Vocação, e quero disponibilizar pra quem estiver com o mesmo problema e não tenha site.
       
      1º Vai na pasta data/npc/scripts/ e abre a Script do NPC Yaman;
      2º Copie o código abaixo e cole lá;
      3º Salve, abra o jogo e desfrute.
       
      OBS: O player sempre quando morre volta para o mesmo lugar, então coloquei uma validação de que se o Player já estiver com uma vocação ele apenas vai ser teleportado para a city.
       
      local focus = 0 local talk_start = 0 local target = 0 local following = false local attacking = false local pos = {x=99, y=188, z=7} function onThingMove(creature, thing, oldpos, oldstackpos) end function onCreatureAppear(creature) end function onCreatureDisappear(cid, pos) if focus == cid then selfSay('Hey!.') focus = 0 talk_start = 0 end end function onCreatureTurn(creature) end function msgcontains(txt, str) return (string.find(txt, str) and not string.find(txt, '(%w+)' .. str) and not string.find(txt, str .. '(%w+)')) end function onCreatureSay(cid, type, msg) if getPlayerVocation(cid) == 0 then msg = string.lower(msg) if (msgcontains(msg, 'hi') and (focus == 0)) and getDistanceToCreature(cid) < 5 then selfSay('Olá, Escolha sua Vocacao: Goku, Vegeta, Piccolo, C17, Gohan, Trunks, Cell, Freeza, Majin Boo, Broly, C18, Uub, Goten, Chibi Trunks, Cooler, Dende, Tsuful, Bardock, Kuririn, Pan, Kaio, Videl, Janemba, Tenshinhan, Jenk, Raditz, C16, Turles, Bulma, Shenron.') talk_start = 1 elseif msgcontains(msg, 'hi') and (focus ~= cid) and getDistanceToCreature(cid) < 5 then selfSay('Sorry, ' .. getCreatureName(cid) .. '! ????????.') elseif focus == cid then talk_start = os.clock() elseif msgcontains(msg, 'bye') and getDistanceToCreature(cid) < 5 then selfSay('Good bye, ' .. getCreatureName(cid) .. '!') focus = 0 talk_start = 0 elseif(msgcontains(msg, 'goku') and talk_start == 1) then selfSay('Voce Deseja Realmente se tornar um Goku ?') talk_start = 2 idVocacao = 1 elseif(msgcontains(msg, 'vegeta') and talk_start == 1) then selfSay('Voce Deseja Realmente se tornar Vegeta ?') talk_start = 2 idVocacao = 17 elseif(msgcontains(msg, 'piccolo') and talk_start == 1) then selfSay('Voce Deseja Realmente se tornar Piccolo ?') talk_start = 2 idVocacao = 32 elseif(msgcontains(msg, 'c17') and talk_start == 1) then selfSay('Voce Deseja Realmente se tornar C17 ?') talk_start = 2 idVocacao = 45 elseif(msgcontains(msg, 'gohan') and talk_start == 1) then selfSay('Voce Deseja Realmente se tornar Gohan ?') talk_start = 2 idVocacao = 57 elseif(msgcontains(msg, 'trunks') and talk_start == 1) then selfSay('Voce Deseja Realmente se tornar Trunks ?') talk_start = 2 idVocacao = 71 elseif(msgcontains(msg, 'cell') and talk_start == 1) then selfSay('Voce Deseja Realmente se tornar Cell ?') talk_start = 2 idVocacao = 83 elseif(msgcontains(msg, 'freeza') and talk_start == 1) then selfSay('Voce Deseja Realmente se tornar Freeza ?') talk_start = 2 idVocacao = 95 elseif(msgcontains(msg, 'majin boo') and talk_start == 1) then selfSay('Voce Deseja Realmente se tornar Majin Boo ?') talk_start = 2 idVocacao = 111 elseif(msgcontains(msg, 'broly') and talk_start == 1) then selfSay('Voce Deseja Realmente se tornar Broly ?') talk_start = 2 idVocacao = 127 elseif(msgcontains(msg, 'c18') and talk_start == 1) then selfSay('Voce Deseja Realmente se tornar C18 ?') talk_start = 2 idVocacao = 140 elseif(msgcontains(msg, 'uub') and talk_start == 1) then selfSay('Voce Deseja Realmente se tornar Uub ?') talk_start = 2 idVocacao = 152 elseif(msgcontains(msg, 'goten') and talk_start == 1) then selfSay('Voce Deseja Realmente se tornar Goten ?') talk_start = 2 idVocacao = 164 elseif(msgcontains(msg, 'chibi trunks') and talk_start == 1) then selfSay('Voce Deseja Realmente se tornar Chibi Trunks ?') talk_start = 2 idVocacao = 178 elseif(msgcontains(msg, 'cooler') and talk_start == 1) then selfSay('Voce Deseja Realmente se tornar Cooler ?') talk_start = 2 idVocacao = 192 elseif(msgcontains(msg, 'dende') and talk_start == 1) then selfSay('Voce Deseja Realmente se tornar Dende ?') talk_start = 2 idVocacao = 206 elseif(msgcontains(msg, 'tsuful') and talk_start == 1) then selfSay('Voce Deseja Realmente se tornar Tsuful ?') talk_start = 2 idVocacao = 218 elseif(msgcontains(msg, 'bardock') and talk_start == 1) then selfSay('Voce Deseja Realmente se tornar Bardock ?') talk_start = 2 idVocacao = 230 elseif(msgcontains(msg, 'kuririn') and talk_start == 1) then selfSay('Voce Deseja Realmente se tornar Kuririn ?') talk_start = 2 idVocacao = 244 elseif(msgcontains(msg, 'pan') and talk_start == 1) then selfSay('Voce Deseja Realmente se tornar Pan ?') talk_start = 2 idVocacao = 256 elseif(msgcontains(msg, 'kaio') and talk_start == 1) then selfSay('Voce Deseja Realmente se tornar Kaio ?') talk_start = 2 idVocacao = 268 elseif(msgcontains(msg, 'videl') and talk_start == 1) then selfSay('Voce Deseja Realmente se tornar Videl ?') talk_start = 2 idVocacao = 280 elseif(msgcontains(msg, 'janemba') and talk_start == 1) then selfSay('Voce Deseja Realmente se tornar Janemba ?') talk_start = 2 idVocacao = 292 elseif(msgcontains(msg, 'tenshinhan') and talk_start == 1) then selfSay('Voce Deseja Realmente se tornar Tenshinhan ?') talk_start = 2 idVocacao = 304 elseif(msgcontains(msg, 'jenk') and talk_start == 1) then selfSay('Voce Deseja Realmente se tornar Jenk ?') talk_start = 2 idVocacao = 316 elseif(msgcontains(msg, 'raditz') and talk_start == 1) then selfSay('Voce Deseja Realmente se tornar Raditz ?') talk_start = 2 idVocacao = 328 elseif(msgcontains(msg, 'c16') and talk_start == 1) then selfSay('Voce Deseja Realmente se tornar C16 ?') talk_start = 2 idVocacao = 340 elseif(msgcontains(msg, 'turles') and talk_start == 1) then selfSay('Voce Deseja Realmente se tornar Turles ?') talk_start = 2 idVocacao = 352 elseif(msgcontains(msg, 'bulma') and talk_start == 1) then selfSay('Voce Deseja Realmente se tornar Bulma ?') talk_start = 2 idVocacao = 364 elseif(msgcontains(msg, 'shenron') and talk_start == 1) then selfSay('Voce Deseja Realmente se tornar Shenron ?') talk_start = 2 idVocacao = 376 elseif(msgcontains(msg, 'yes') and talk_start == 2) then doPlayerSetVocation(cid, idVocacao) doTeleportThing(cid, pos) talk_start = 0 end else doTeleportThing(cid, pos) end end function onThink() doNpcSetCreatureFocus(focus) if (os.clock() - talk_start) > 45 then if focus > 0 then selfSay('Next Please...') end focus = 0 end if focus ~= 0 then if getDistanceToCreature(focus) > 6 then selfSay('Good bye then.') focus = 0 end end end  
    • By aleknnto
      Olá, Galerinha do TK... Estou Trasendo este script, não foi feito por mim, mas eu fui dando uma reformulada, e tenho recebido muitos pedidos... lembrando que ele esta adaptado para POKEMON,
      Ele Está desta Forma, Infelizmente estou sem Tempo, Trabalhando Duro em um projeto, com minha equipe mais enfim, ja é uma otima base !
       
      characterlist.rar

       
      Scan Virus Total ! :
      https://www.virustotal.com/pt/file/52b5e34db021895946a9184328a58d6713e3ecd6bbf08a2927bd5258e9ba128e/analysis/1450881632/
      xD
    • By xWhiteWolf
      Fala galera, pra quem não sabe eu fiz um novo task system pro meu servidor pessoal Empire e por isso decidi publicar a versão antiga dele já que não temos nenhuma intenção de usá-la mais.
      ele é muito similar a um sistema que eu já havia compartilhado aqui, só que pras versões 0.X. 

      O que é: um npc que te dá pequenas missões de matar monstros, qnd você terminar ele te paga uma recompensa pré definida.
      O que ele tem de melhor comparado com a versão 0.4: Basicamente ele permite vc definir qualquer hierarquia entre as tasks, permite que tasks deem diversas formas de recompensas (isso era bem engessado no modelo antigo) porém ele não aceita tasks de coletar itens, nem tem dificuldades diferentes com premiações multiplicadas (ao menos não explicitamente).
       
      Aqui tá a hierarquia que ele segue atualmente. Ou seja, para fazer task de Tarantula você precisa fazer Rat, depois Spider e por fim Tarantula.


      O sistema é muito completo e eu vou postá-lo da exata forma que usávamos então prestem bastante atenção nos detalhes. Já aviso de antemão que eu não darei muito suporte aqui e que não irei explicar muita coisa, o sistema funciona e foi usado por uns 2 anos sem nenhum problema com o tfs original.

      crie um arquivo em data/lib chamado tasklib.lua e coloque isso dentro dele:
      Aqui temos todas as tasks e storages. Se você quiser adicionar recompensas novas vc só precisa fazer um elseif na função de getRewards. Siga o exemplo dos comentários para as rewards e se quiser todas as tasks liberadas sem precisar seguir uma ordem é só colocar needed = 0 para todas.


      Agora crie um arquivo em creaturescripts/scripts chamado killtasksystem.lua e coloque isso dentro dele:
      Tirando as mensagens, não acho que tenha nada que você possa editar aqui. Essa tabela racetypes eu coloquei pq queria fazer task de criaturas de um mesmo tipo: fire, undead, poison. Ele puxa esse valor de dentro do race definido no xml do monstro. (Veja a undead monsters como exemplo.)

      em creaturescripts.xml coloque:
       
      <event type="kill" name="tasksystem" script="killtasksystem.lua"/> E em creaturescripts/scripts/login.lua antes do ultimo return true:
      player:registerEvent("tasksystem") Agora criaremos o npc chamado tasksystem.xml na pasta data/npcs:

      E o script dele em data/npcs/scripts chamado tasksystem.lua: (sim, eu não sou criativo com nomes)
       

      Por fim insira essa talkaction aqui no seu server, ela serve para gerar um arquivo chamado orderedtask.html na pasta do seu servidor (a mesma do executavel) com o código html do sistema de task (sim, eu tenho preguiça de escrever as coisas no site)

       

      Coloque o nome que vc quiser e depois coloque a tag em talkactions.xml:
      <talkaction words="/generatehtml" script="nome que vc quiser.lua" />
      Note que o arquivo pode levar um tempinho para aparecer, até pq ele tá percorrendo toda a tabela pegando todas as informações e criando um arquivo html disso, é um processo que pode levar alguns segundos.

      Se você quiser ser hackudo e pegar o html direto do meu site, seja livre: https://www.empirebr.com/tasks

      Bom uso, se tiver qualquer dúvida ou comentário ou sugestão diz aí. 
    • By maiconmnt
      Boa noite pessoal. Tenho uma ideia de sistema de loteria diferente para ot, se alguém se dispor a fazer eu agradeço. E creio que será de grande valia para outros ots também.
       
      O script seria para a versão 8.60.  tfs 0.4, ou otx 2
       
      Seguinte, gostaria de um sistema de loteria bem semelhante ao da realidade que ocorresse umas três vezes na semana somente. Para participar o player vai ate um npc e paga um valor para poder participar. Quando chegar no dia e na hora de ocorrer o sorteio, o npc/script faz o sorteio apenas para os players que compraram com ele baseado na quantidade do valor juntado das apostas de todos os players. Por exemplo, digamos que o valor seja 10k para apostar. E ate o fechamento da aposta, 10 players foram ate o npc e compraram seu "bilete de aposta", entao o valor a ser sorteado para o ganhador seja 100k. e depois recomeça tudo ate o proximo sorteio.
       
      Vou fazer um rascunho com dialogo do npc abaixo para tentar exemplificar melhor.
       
      Player: Hi
      Npc Loteria: Ola player name, sou o reponsavel pela loteria desse ot. Para fazer sua aposta diga {aposta}, para saber em quanto o premio esta cumulado diga {premio}, ou então diga {receber) caso voce seja o ganhador do ultimo sorteio da nossa loteria.
      Player: aposta
      Npc Loteria: O valor atual para apostas em nossa loteria é de 10000 gold, tem certeza de que deseja apostar?
      Player: yes
      Npc Loteria: Muito bem! Voce esta participando do proximo sorteio da nossa loteria.
       
      Dai quando ocorresse o sorteio fosse anunciando na tela via broadcast mesmo com o ganhador, ou algo relacionado ao site, tanto faz. Se possível ter que ir ao npc para poder pegar o premio. Mas caso nao, pode ser entregue direto ao player mesmo assim como ocorre com o sistema de loteria normal que tem nos ots atualmente.
       
      Tudo isso pode ser adaptado de acordo com as possibilidades e ideias, mas o objetivo principal com essa ideia é fazer com que para participar do sorteio do sistema de loteria o player tenha que pagar um valor para isso, e que o premio seja a soma do valor de todos os players que apostaram. 
       
      Bom é isso ai, se alguma alma boa e com conhecimento para tal puder desenvolver esse script ai para nós, seremos muito gratos!
    • By nizin
      Guys, no meu server tem um npc que teletransporta o Player para um outro lugar porém, ele não cobra nada. Queria que fosse cobrado uma certa quantidade de um item que eu tenho aqui no server.
       
      Esse npc também pede para você conversar com outro npc primeiro antes dele te levar para o outro lugar e eu queria tirar essa frescura de falar com outro npc. Enfim, espero que entendam! Sou péssimo para explicar as coisas kkkk
       
      PS: Não sei se o tópico está no local certo. xd
       
       
  • Recently Browsing   0 members

    No registered users viewing this page.


×
×
  • Create New...