Ir para conteúdo

Featured Replies

Postado

depende doque vc quiser, onAdvance acho que serve só pra skills/ml/level, se fizer com storage vc vai ter que upar pra ele checar o storage e ativar o dano por segundo.
Se fizer por login, o player ganha o storage mas só vai tomar o dano quando relogar. Eu faria por onThink que é uma função que fica se repetindo de 1 em 1 segundo a checagem mas dá pra vc mudar esse intervalo.

aqui nesse link dá pra vc checar todos os callbacks de acordo com o tipo de script, espero que te ajude: http://www.tibiaking.com/forum/topic/8603-callbacks

edit2: aqui eu vou te dar um exemplo de como utilizar por onThink (esse script eu fiz prum amigo mas ele me deu permissão pra postar) Funciona assim: vc clica no escudo da medusa e ativa essa skill (quem olhar pra medusa vira pedra), só que enquanto vc tiver utilizando a skill vc fica perdendo 20 de vida por segundo. Perceba que no meu caso eu não precisei mudar o interval, eu só coloquei interval e foi o tempo padrão, que é 1 segundo. 

 

-- Medusa script for Severo's OT. Made by Night Wolf :DDD

local gelocondition = createConditionObject(CONDITION_PARALYZE)
setConditionParam(gelocondition, CONDITION_PARAM_TICKS, 10000)   
setConditionFormula(gelocondition, -0.9, 0, -0.9, 0)  

local config = {
itemid = 2536, --id do item que deverá ser equipado para ativar a spell
place = 5, --posição que o item deve estar para funcionar (mão esquerda)
place2 = 6, --posição que o item deve estar para funcionar (mão direita)
storage = 90984, -- storage que checará se o escudo está ativado ou desativado
damage = 20, -- damage que dará a cada checagem de onthink enquanto o shield estiver ativado
tempo = 10 -- quantos segundos vai ficar o outfit de medusa
}
local medusa = {lookType = 330, lookHead = 0, lookBody = 0, lookLegs = 0, lookFeet = 0, lookTypeEx = 0, lookAddons = 3}

local function canEffect(pos, pz, proj) -- Night Wolf based on Nord
	if getTileThingByPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0}).itemid == 0 then return false end
	if getTilePzInfo(pos) and not pz then return false end
	local n = not proj and 3 or 2
	for i = 0, 255 do
		pos.stackpos = i
		local tile = getTileThingByPos(pos)
		if tile.itemid ~= 0 and not isCreature(tile.uid) then
			if hasProperty(tile.uid, n) or hasProperty(tile.uid, 7) then
				return false
			end
		end
	end
return true
end


function onThink(cid, interval)
if(not isPlayer(cid)) then
		return true
		end
		
if (getPlayerSlotItem(cid, config.place).itemid == config.itemid) or (getPlayerSlotItem(cid, config.place2).itemid == config.itemid) then
local pos = getPlayerPosition (cid)
if getPlayerStorageValue(cid, config.storage) == 1 and canEffect (pos) then
local position = getPlayerPosition (cid)
doCreatureAddHealth(cid, -config.damage)
doSendMagicEffect(position, 0)
doSendAnimatedText(position, "-"..config.damage , 180)		
doSetCreatureOutfit(cid, medusa, config.tempo*1000)


if getPlayerLookDir(cid) == 0 then
		effectPositions = {
		{x=position.x, y=position.y-1, z=position.z},
		{x=position.x, y=position.y-2, z=position.z},
		{x=position.x, y=position.y-3, z=position.z}
		}
	elseif getPlayerLookDir(cid) == 1 then
		effectPositions = {
		{x=position.x+1, y=position.y, z=position.z},
		{x=position.x+2, y=position.y, z=position.z},
		{x=position.x+3, y=position.y, z=position.z}
		}
	elseif getPlayerLookDir(cid) == 2 then
		effectPositions = {
		{x=position.x, y=position.y+1, z=position.z},
		{x=position.x, y=position.y+2, z=position.z},
		{x=position.x, y=position.y+3, z=position.z}
		}
	elseif getPlayerLookDir(cid) == 3 then
		effectPositions = {
		{x=position.x-1, y=position.y, z=position.z},
		{x=position.x-2, y=position.y, z=position.z},
		{x=position.x-3, y=position.y, z=position.z}
		}
	end
	
if isCreature(cid) == TRUE then
        for _, ePos in ipairs(effectPositions) do
	local mob = getTopCreature(ePos).uid
    if canEffect (ePos) and mob ~= 0 and isMonster(mob) then
	local idpedra = math.random(1356,1359) -- id da pedra que o os inimigos se tornarão ao serem atingidos pela magia
	doSetItemOutfit(mob, idpedra, config.tempo*1000)
	doAddCondition(mob, gelocondition)
	doSendMagicEffect(ePos, 34)
	end 
		end
				
        for _, ePos in ipairs(effectPositions) do
		if canEffect(ePos) then
                doSendMagicEffect(ePos, 44)
				end
				end
else
end
end
end
return true
end



Espero que vc consiga fazer esse script que vc quer, e se possível, compartilhe ele conosco! Seu server não vai deixar de ser original só porque outras pessoas irão utilizar um script feito por você, lembre-se disso.

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

  • Respostas 8
  • Visualizações 488
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • depende doque vc quiser, onAdvance acho que serve só pra skills/ml/level, se fizer com storage vc vai ter que upar pra ele checar o storage e ativar o dano por segundo. Se fizer por login, o player g

Postado

Eu não quero que desenvolvam o script pra mim, eu queria saber qual a 1 linha que eu uso, ex:

 

function onLogin

 

Olha, não lembro de nenhum creatureevent que seja executado quando um player ganha storage. Explica o que você quer fazer EXATAMENTE, que fica mais fácil de ajudar. O jeito mais simples é colocando pra executar o que você deseja no mesmo script que muda a storage do Player..

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 519.6k

Informação Importante

Confirmação de Termo