Ir para conteúdo

Featured Replies

Postado

Salve galera do TK venho aqui em busca de ajuda para arrumar esse sistema de boss diário que eu estou tentando implementar no meu servidor.

 

O que eu estou tentando fazer é o seguinte: 

1º O player vai fazer uma task para matar 1000 Dragons, ao matar essa quantidade de dragons vai receber um Storage do NPC.

2º Com o Storage que o player vai receber do NPC ele vai ter acesso a um teleport dentro da cave de Dragon que leva para uma sala com um piso que só vai ser acessado a cada 20 horas.

3º Ao acessar esse piso o player vai matar matar um Boss e ao matar esse Boss ele vai receber um storage que irá durar 20 horas (Caso o player tenha esse storage ele NÃO vai acessar o piso do 2º ponto)

4º Na sala do Boss terá um Baú que ao ser aberto o player receberá uma quantia de dinheiro + um Storage que dará acesso a um atalho para a sala do piso de acesso do 2º ponto.

 

Após liberar o atalho do 4º ponto o player terá full acesso a esse Boss que poderá ser feito a cada 20 horas.

 

Tenho alguns scripts que eu estava editando aqui vou deixa-los abaixo.

 

Movements:

Spoiler

 dragon.lua --- Piso de acesso ao boss (2º ponto)

Spoiler

function onStepIn(cid, item, position, fromPosition)

 

local pos = {x = 5030, y = 5002, z = 15}
local config = {
msgDenied = "Voce so pode lutar contra o Dafir a cada 24 horas.",
msgWelcome = "Boa Sorte!."
}

 

if getPlayerStorageValue(cid, 52001) - os.time() >= 0 then
doTeleportThing(cid, fromPosition) 
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, config.msgDenied)
doSendMagicEffect(getThingPos(cid), CONST_ME_MAGIC_BLUE)
else
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, config.msgWelcome)
doTeleportThing(cid, pos) 
doSendMagicEffect(getThingPos(cid), 10)
end
return true
end

 

movements.xml

Spoiler

<movevent type="StepIn" actionid="51001" event="script" value="dragon.lua"/>

 

 

 

Creaturescript:

Spoiler

dragon.lua -- Storage que irá receber ao derrotar o boss (com tempo)

Spoiler

function onKill(cid, target)

config = {    
NickBoss ="Darfir",
storageAcess = 51001,
tempo = 20
}    

if isMonster(target) then    
if getCreatureName(target) == config.NickBoss then
setPlayerStorageValue(cid, config.storageAcess, config.tempo*60*60+os.time())
end
return true
end
end

function onLogin(cid)
registerCreatureEvent(cid, "pdragon")    
return true    
end

login.lua

Spoiler

registerCreatureEvent(cid, "pdragon")

creaturescripts.xml

Spoiler

<event type="kill" name="pdragon" event="script" value="dragon.lua"/>

 

 

Actions:

Spoiler

dragon.lua -- Porta de acesso ao atalho do 4º ponto

Spoiler

function onUse(cid, item, frompos, item2, topos)

local storage = 51002

if getPlayerStorageValue (cid, storage) > 0 then
doTeleportThing(cid,topos)
doTransformItem(item.uid, 1256)
else
return doPlayerSendTextMessage(cid, 23, "Para passar nessa porta voce precisa derrotar o poderoso Darfir.")
end
return true
end

baudragon.lua -- Bau que ficará na sala do boss que dara item + storage de acesso a porta de atalho

Spoiler

local itemid, count = 2152, 50 -- ItemID, count
local storage = 51002

function onUse(cid, item, fromPosition, itemEx, toPosition)
    
    if getCreatureStorage(cid, storage) == -1 then
        doPlayerSendTextMessage(cid, 23, "Voce recebeu 50 Platinum Coins.")
        doPlayerAddItem(cid, itemid, count)
        doCreatureSetStorage(cid, storage, 1)
    else
        doPlayerSendTextMessage(cid, 23, "O bau esta vazio.")
        return true
    end
    return true
end

Actions.xml

Spoiler

    <action uniqueid="52001" event="script" value="dragon.lua"/>
    <action uniqueid="52002" event="script" value="baudragon.lua"/>

 

Nota: Aparentemente está tudo Ok, mas o problema é que o storage que o boss está dando ao morrer ele não está saindo do player impedindo que o player volte até a sala do boss depois de 20 horas.

 

Nota 2: Eu ainda não tenho o NPC da task do 1º ponto, se alguém disponibilizar pra mim darei REP++

 

Nota 3: Uso TFS 0.4

 

Espero que dê pra entender o que preciso, tentei me expressar e organizar da melhor forma. ♥

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

Resolvido por luangop

Ir para solução
Postado
  • Solução

Mano, uma dica que dou pra todo mundo que está aprendendo programação/script... aprenda usar identação. Ajuda muito hehe.
movement:
 

Spoiler

function onStepIn(cid, item, position, fromPosition)

	local pos = {x = 5030, y = 5002, z = 15}
	local config = {
		msgDenied = "Voce so pode lutar contra o Dafir a cada 20 horas.",
		msgWelcome = "Boa Sorte!"
	}

	if getPlayerStorageValue(cid, 52001) >= os.time() then
		doTeleportThing(cid, fromPosition) 
		doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, config.msgDenied)
		doSendMagicEffect(getThingPos(cid), CONST_ME_MAGIC_BLUE)
	else
		doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, config.msgWelcome)
		doTeleportThing(cid, pos) 
		doSendMagicEffect(getThingPos(cid), 10)
	end
	return true
end

 

Creaturescript:
 

Spoiler

function onKill(cid, target)

	config = { 
		NickBoss ="Darfir",
		storageAcess = 51001,
		tempo = 20 -- em horas.
	} 

	if isMonster(target) then 
		if getCreatureName(target) == config.NickBoss then
			setPlayerStorageValue(cid, config.storageAcess, (((config.tempo*60)*60)+os.time()))
		end
		return true
	end
end

function onLogin(cid)
	registerCreatureEvent(cid, "pdragon") 
	return true 
end

 

 

Te ajudei? Clique em  Gostei ! 

²²²d¬¬b²²²

 

 

"She's got a smile that it seems to me...."  ♪♪

Postado
  • Autor
19 minutos atrás, luangop disse:

Mano, uma dica que dou pra todo mundo que está aprendendo programação/script... aprenda usar identação. Ajuda muito hehe.
movement:
 

  Mostrar conteúdo oculto


function onStepIn(cid, item, position, fromPosition)

	local pos = {x = 5030, y = 5002, z = 15}
	local config = {
		msgDenied = "Voce so pode lutar contra o Dafir a cada 20 horas.",
		msgWelcome = "Boa Sorte!"
	}

	if getPlayerStorageValue(cid, 52001) >= os.time() then
		doTeleportThing(cid, fromPosition) 
		doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, config.msgDenied)
		doSendMagicEffect(getThingPos(cid), CONST_ME_MAGIC_BLUE)
	else
		doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, config.msgWelcome)
		doTeleportThing(cid, pos) 
		doSendMagicEffect(getThingPos(cid), 10)
	end
	return true
end

 

Creaturescript:
 

  Mostrar conteúdo oculto


function onKill(cid, target)

	config = { 
		NickBoss ="Darfir",
		storageAcess = 51001,
		tempo = 20 -- em horas.
	} 

	if isMonster(target) then 
		if getCreatureName(target) == config.NickBoss then
			setPlayerStorageValue(cid, config.storageAcess, (((config.tempo*60)*60)+os.time()))
		end
		return true
	end
end

function onLogin(cid)
	registerCreatureEvent(cid, "pdragon") 
	return true 
end

 

 

 Caraca mano, obrigado pela dica. Tudo funcionou certinho, marquei como solução e te dei um Gostei bem gostoso (com todo respeito) auhdsud.  ♥

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

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 520.2k

Informação Importante

Confirmação de Termo