Ir para conteúdo
  • Cadastre-se

Posts Recomendados

Hello My Friends, Gostaria de saber qual função que eu uso, pra quando o player ganhar certo Storage perder vida P/segundo.

 

(Desculpe sou iniciante gostaria de saber se é OnAdvanced, OnLogin(Sei que não esses)

Link para o post
Compartilhar em outros sites

onAdvance... não entendi a parte de perder a vida pro segundo

 

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

 

function onLogin

Link para o post
Compartilhar em outros sites

Seria algo como

local stor = 999333

local function looseHP(cid)
     ...
end

function onAdvance(cid, skill, oldLevel, newLevel)

     if(getPlayerStorageValue(cid, stor) == 1) then
         addEvent(looseHP, 1000, cid)
     end

end

Eu também não manjo de script, mas pensando poderia ser algo assim !

rxtoGjF.jpg 

Link para o post
Compartilhar em outros sites

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)

Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá!

"Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda

I7Pm6ih.png

(obg ao @Beeny por fazer essa linda sign <3)

Link para o post
Compartilhar em outros sites

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..

-"Supra Omnes Lux Lucis"

- Acima de todos brilha a Luz -

5VGnDyBz.png

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.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo