LU
pedido

Fábrica de Scripts

Por LuckOake, 28 de set. de 2013 em Scripts

resolvido
script
166
20.7k
28 de setembro de 2013 às 23:19

OneShot,poderaia fazer um system de task,que não precisa pedir a task ao NPC,é apenas eu ir mata,e pegar a recompensa

lovenina12L
29 de setembro de 2013 às 00:06

@SkyDarkyes

 

se eu estiver certo vc ta quebrando a regra numero 4 =x mais xa pra la =p eu poderia postar essse script seu em outro topico se o Luck deixar, mais enquanto isso eu ainda nao posso postar =x

 

@Topic

 

eu nao vim aki pra nada!

 

SE POSSIVEL, um script que tipo se o player ganhar experiencia e o level dele antes de ganhar experiencia for o mesmo depois dele ganhar experiencia que deslogue o player (doRemoveCreature) e va na db e de mais 1 lvl pra ele!

se nao especifiquei bem, vo falar de outro jeito, fui la, matei um poacher!

ganhei 1000 de xp, se eu nao ganhar nenhum lvl, tipo, se esses 1000 de xp nao for o suficiente pra eu upar pro prox lvl, que ele me de +1 level la na db! ( e deslogue o player logicamente )

HeelNoxH
29 de setembro de 2013 às 07:23

Luck desculpa por falar , mais acho que você deveria fazer uma lista de pedidos que vai fazer e uma dos que já foram feitos além de criar um tipo de "lista negra" colocando o nome de pessoas que pedem com frequencia e não podem pedir por 1 semana ou 3 dias seila.

OneshotO
29 de setembro de 2013 às 08:40

@SkyDarkyes

 

se eu estiver certo vc ta quebrando a regra numero 4 =x mais xa pra la =p eu poderia postar essse script seu em outro topico se o Luck deixar, mais enquanto isso eu ainda nao posso postar =x

 

@Topic

 

eu nao vim aki pra nada!

 

SE POSSIVEL, um script que tipo se o player ganhar experiencia e o level dele antes de ganhar experiencia for o mesmo depois dele ganhar experiencia que deslogue o player (doRemoveCreature) e va na db e de mais 1 lvl pra ele!

se nao especifiquei bem, vo falar de outro jeito, fui la, matei um poacher!

ganhei 1000 de xp, se eu nao ganhar nenhum lvl, tipo, se esses 1000 de xp nao for o suficiente pra eu upar pro prox lvl, que ele me de +1 level la na db! ( e deslogue o player logicamente )

 

Eu não entendi, foi nada, desse seu pedido.

 

No caso, vamos dizer que um jogador level 8 entra no servidor, mata um Rotworm, aí ele não ganha um level com a experiência dada, no caso, é para ele ganhar esse level mesmo assim?

 

Enfim, se for isso mesmo, prefiro nem deslogar o jogador.

function onKill(cid, target)
	if getMonsterInfo(getCreatureName(target)) then
		if getPlayerExperience(cid) < getExperienceForLevel(getPlayerLevel(cid) + 1) then
			doPlayerAddExperience(cid, getExperienceForLevel(getPlayerLevel(cid) + 1) - getPlayerExperience(cid))
		end
	end
	return true
end

Editado Setembro 29 por Oneshot

29 de setembro de 2013 às 09:02

Luck erro:

 

1374874_512873155463317_1254061509_n.jpg

OneshotO
29 de setembro de 2013 às 09:11

@SkyDarkyes

 

Aproveitando que estou online, qual é esse script mesmo? Irei refazer.

Editado Setembro 29 por Oneshot

29 de setembro de 2013 às 09:21

Um NPC,de task,+- igual ao do Vodkart o Simple Task,mas eu não preciso pedir para o NPC,é so eu ir matar,ai eu volto e pego a recompensa.

OneshotO
29 de setembro de 2013 às 10:31

Um NPC,de task,+- igual ao do Vodkart o Simple Task,mas eu não preciso pedir para o NPC,é so eu ir matar,ai eu volto e pego a recompensa.

 

Creaturescript

local MONSTER_TASKS = {
	-- ["NOME"] = QUANTIDADE,
	["Troll"] = 1000,
}

function onKill(cid, target)
	local tmp = MONSTER_TASKS[getCreatureName(target)]
	if tmp then
		local name = getCreatureName(target):lower()
		local status_storage = name .."_status"
		if getCreatureStorage(cid, status_storage) == -1 then
			local count_storage = name .."_count"
			doCreatureSetStorage(cid, count_storage, math.max(getCreatureStorage(cid, count_storage), 0) + 1)
			doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, getCreatureName(target) .." killed: ".. getCreatureStorage(cid, count_storage) .."/".. tmp ..".")
			if getCreatureStorage(cid, count_storage) >= tmp then
				doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "You have killed ".. tmp .." of ".. getCreatureName(target) ..". You have completed the task.")
				doCreatureSetStorage(cid, status_storage, 1)
			end
		end
	end
	return true
end 

NPC

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

local talkState = {}


function onCreatureAppear(cid)				npcHandler:onCreatureAppear(cid)			end
function onCreatureDisappear(cid)			npcHandler:onCreatureDisappear(cid)			end
function onCreatureSay(cid, type, msg)			npcHandler:onCreatureSay(cid, type, msg)		end
function onThink()					npcHandler:onThink()					end

local MONSTER_TASKS = {
--	["nome"] = {
--		{ITEM1, QUANTIDADE}, 
--		{ITEM2, QUANTIDADE}
--	,}
--	Para dar experiência, coloque "experience"
	["troll"] = {
		{"experience", 20}, 
		{2160, 1},
	},
	["orc"] = {
		{"experience", 20}, 
		{2160, 1},
	},
}

function table.size(t)
	-- A função table.maxn ou # não conta no tamanho da tabela index igual a string, apenas numéricos positivos.
	local size = 0
	for _,_ in pairs(t) do
		size = size + 1
	end
	return size
end

function callbackOnCreatureSay(cid, type, msg)
	if(not npcHandler:isFocused(cid)) then
		return false
	end

	local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid

	local str = "I have so many tasks for you, choose one: "
	if msgcontains(msg, "task") then
		local n = 1
		local k = table.size(MONSTER_TASKS)
		print(k)
		for name, _ in pairs(MONSTER_TASKS) do
			str = str .. "{" .. name .. "}" .. (n == k and "." or ", ")
			n = n + 1
		end
		selfSay(str, cid)
		talkState[talkUser] = 1
	end
	
	if talkState[talkUser] == 1 then
		local tmp = MONSTER_TASKS[msg:lower()]
		if tmp then
			local status = msg:lower() .. "_status"
			if getCreatureStorage(cid, status) == 1 then
				selfSay("You are a good hunter. Thank you for your help.", cid)
				for i=1,#tmp do
					if tmp[i][1] == "experience" then
						doPlayerAddExperience(cid, tmp[i][2])
						doSendAnimatedText(getThingPosition(cid), tmp[i][2], COLOR_WHITE)
					else
						doPlayerAddItem(cid, tmp[i][1], tmp[i][2])
					end
				end
				doCreatureSetStorage(cid, status, 2)
			elseif getCreatureStorage(cid, status) == 2 then
				selfSay("You already completed this hunt task.", cid)
			else
				selfSay("You don't killed the necessary count of monsters.", cid)
			end
		end
	end

	return true
end

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, callbackOnCreatureSay)
npcHandler:addModule(FocusModule:new())
29 de setembro de 2013 às 10:35

@Edit tem o comando .!task?

Editado Setembro 29 por SkyDarkyes

OneshotO
29 de setembro de 2013 às 12:35

@Edit tem o comando .!task?

 

Não, não tem. happy.png

Editado Setembro 29 por Oneshot

29 de setembro de 2013 às 12:45

Não tem como colocar .-.

JeanCristianJ
29 de setembro de 2013 às 12:48

One shot tem como vc me ajudar? na pagina 2 ou 3 tem o script de teleportar o jogador é uma spell

 

function onCastSpell(cid, var)

local tp_pos = {x = 100, y = 100, z = 7} -- Posição que o target será levado

local effect_player = 10 -- Efeito que sairá no player

local effect_target = 15 -- Efeito que sairá no target

local exhaustion_time = 2 -- Exhaustion (em segundos)

local exhaust = 18501 -- Storage da exhaustion

 

if getTileInfo(getCreaturePosition(cid)).hardcore then

doPlayerSendCancel(cid, "Você não pode usar essa magia em arenas.")

return false

if getCreatureTarget(cid) <= 0 then

doPlayerSendCancel(cid, "Você precisa selecionar um alvo.")

return false

elseif exhaustion.check(cid, exhaust) then

doSendMagicEffect(getCreaturePosition(cid), 2)

doPlayerSendCancel(cid, "Aguarde "..(exhaustion.get(cid, exhaust)).." segundos para usar a magia novamente.")

return false

end

 

local target = getCreatureTarget(cid)

doSendMagicEffect(getCreaturePosition(cid), effect_player)

doSendMagicEffect(getCreaturePosition(target), effect_target)

setPlayerStorageValue(target, 18500, "x = "..(getCreaturePosition(target).x)..",y = "..(getCreaturePosition(target).y)..",z = "..(getCreaturePosition(target).z)..",")

doTeleportThing(target, tp_pos)

exhaustion.set(cid, exhaust, exhaustion_time)

return true

end

 

function onStepIn(cid, item)

local storage = getPlayerStorageValue(cid, 18500)

local pos = {x = string.match(storage, "x = (.-),"), y = string.match(storage, "y = (.-),"), z = string.match(storage, "z = (.-),")}

doTeleportThing(cid, pos)

return true

end

 

 

o luck fez eu (eu nao sei usar spoil) esta dando 1 erro no meu distro e eu queria que o player que solto a magia fosse teleportado para o local junto com o target ,

o erro é o seguinte:

ahh o erro o skydarkyes posto antes de pedir o script de npc para vc...

29 de setembro de 2013 às 12:50

Pqp,seis é tudo copiam em

 

One,não pode colocar o comando?

JeanCristianJ
29 de setembro de 2013 às 12:55

se vc nao queria o script sendo compartilhado deveria ter postado em private o pedido oaskpasosapo', :)

function onCastSpell(cid, var)

local tp_pos = {x = 100, y = 100, z = 7} -- Posição que o target será levado

local effect_player = 10 -- Efeito que sairá no player

local effect_target = 15 -- Efeito que sairá no target

local exhaustion_time = 2 -- Exhaustion (em segundos)

local exhaust = 18501 -- Storage da exhaustion

 

if getCreatureTarget(cid) <= 0 then

doPlayerSendCancel(cid, "Você precisa selecionar um alvo.")

return false

elseif exhaustion.check(cid, exhaust) then

doSendMagicEffect(getCreaturePosition(cid), 2)

doPlayerSendCancel(cid, "Aguarde "..(exhaustion.get(cid, exhaust)).." segundos para usar a magia novamente.")

return false

end

 

local target = getCreatureTarget(cid)

doSendMagicEffect(getCreaturePosition(cid), effect_player)

doSendMagicEffect(getCreaturePosition(target), effect_target)

setPlayerStorageValue(target, 18500, "x = "..(getCreaturePosition(target).x)..",y = "..(getCreaturePosition(target).y)..",z = "..(getCreaturePosition(target).z)..",")

doTeleportThing(target, tp_pos)

exhaustion.set(cid, exhaust, exhaustion_time)

return true

end

 

--- esse script aki nao da erro, mais ele nao teleporta junto com o player :/

29 de setembro de 2013 às 13:00

Voce que é noob copiando ideiashappy.png

 

One,pode colocar o comando?