NI
pedido

Chance telepoted

Por Nickbhz, 19 de dez. de 2015 em Scripts

resolvido
script
12
1.5k
NickbhzN
19 de dezembro de 2015 às 10:46

Bom dia xTibianos..

 

Estou precisando de uma script que ao entrar na area especifica de 15 sqms , aconteceria isso:

- Slow nessa area (configuravel)

- Algum efeito (configuravel)

- chance de ser teleportado (x,y,z) andando nessa area 30%

 

Deu pra entender?? Qualquer coisa da 1 toque q tento explicar melhor..

 

REP+ pra qm ajudar vlws

Editado Dezembro 19 por brendoonh

CaronteC
19 de dezembro de 2015 às 12:07

Vá em movements/scripts
crie um arquivo chamado arquivo.lua

Coloque isto dentro dele:

local condition = createConditionObject(CONDITION_PARALYZE)
local chance = math.random(0, 100)
local position = {x = 123, y = 456, z = 7}
local effect = CONST_ME_GREEN_RINGS

function onStepIn(cid, item, position, fromPosition)

	setConditionParam(condition, CONDITION_PARAM_TICKS, 20000)
	setConditionFormula(condition, -0.9, 0, -0.9, 0)
	setCombatCondition(combat, condition)

	doSendMagicEffect(getThingPos(cid), effect) 
	doAddCondition(cid, condition)
	if chance <= 30 then
		doTeleportThing(cid, position)
	end

    return true
end 

function onStepOut(cid, item, position, fromPosition)
	doRemoveCondition(cid, 32)
    return true
end


Agora vá em movements.xml

<movevent type="StepIn" actionid="6353" event="script" value="arquivo.lua"/>
<movevent type="StepOut" actionid="6353" event="script" value="arquivo.lua"/>
NickbhzN
20 de dezembro de 2015 às 08:22

 

Vá em movements/scripts

crie um arquivo chamado arquivo.lua

 

Coloque isto dentro dele:

local condition = createConditionObject(CONDITION_PARALYZE)
local chance = math.random(0, 100)
local position = {x = 123, y = 456, z = 7}
local effect = CONST_ME_GREEN_RINGS

function onStepIn(cid, item, position, fromPosition)

	setConditionParam(condition, CONDITION_PARAM_TICKS, 20000)
	setConditionFormula(condition, -0.9, 0, -0.9, 0)
	setCombatCondition(combat, condition)

	doSendMagicEffect(getThingPos(cid), effect) 
	doAddCondition(cid, condition)
	if chance <= 30 then
		doTeleportThing(cid, position)
	end

    return true
end 

function onStepOut(cid, item, position, fromPosition)
	doRemoveCondition(cid, 32)
    return true
end

 

Agora vá em movements.xml

<movevent type="StepIn" actionid="6353" event="script" value="arquivo.lua"/>
<movevent type="StepOut" actionid="6353" event="script" value="arquivo.lua"/>

Exatamente isso!! Porém deu esse erro, e acho que devido a isso, nao ta sendo teleportado..

j13gol.png

up

CaronteC
20 de dezembro de 2015 às 18:12


local chance = math.random(0, 100)

local position = {x = 123, y = 456, z = 7}

local effect = CONST_ME_GREEN_RINGS

 

function onStepIn(cid, item, position, fromPosition)

 

setConditionParam(condition, CONDITION_PARAM_TICKS, 20000)

setConditionFormula(condition, -0.9, 0, -0.9, 0)

setCombatCondition(combat, condition)

local condition = createConditionObject(CONDITION_PARALYZE)

 

doSendMagicEffect(getThingPos(cid), effect)

doAddCondition(cid, condition)

if chance <= 30 then

doTeleportThing(cid, position)

end

 

return true

end

 

function onStepOut(cid, item, position, fromPosition)

doRemoveCondition(cid, 32)

return true

end

 

Editado Dezembro 20 por Caronte

NickbhzN
21 de dezembro de 2015 às 10:53
local chance = math.random(0, 100)
local position = {x = 123, y = 456, z = 7}
local effect = CONST_ME_GREEN_RINGS

function onStepIn(cid, item, position, fromPosition)

	setConditionParam(condition, CONDITION_PARAM_TICKS, 20000)
	setConditionFormula(condition, -0.9, 0, -0.9, 0)
	setCombatCondition(combat, condition)
	local condition = createConditionObject(CONDITION_PARALYZE)

	doSendMagicEffect(getThingPos(cid), effect) 
	doAddCondition(cid, condition)
	if chance <= 30 then
		doTeleportThing(cid, position)
	end

    return true
end 

function onStepOut(cid, item, position, fromPosition)
	doRemoveCondition(cid, 32)
    return true
end

1zlf4ae.png

CaronteC
21 de dezembro de 2015 às 11:57

Eta coloquei a variável nos lugares errados 2 vezes...

 

agora vai:

local chance = math.random(0, 100)
local position = {x = 123, y = 456, z = 7}
local effect = CONST_ME_GREEN_RINGS

function onStepIn(cid, item, position, fromPosition)

	local condition = createConditionObject(CONDITION_PARALYZE)
	setConditionParam(condition, CONDITION_PARAM_TICKS, 20000)
	setConditionFormula(condition, -0.9, 0, -0.9, 0)

	doSendMagicEffect(getThingPos(cid), effect) 
	doAddCondition(cid, condition)
	if chance <= 30 then
		doTeleportThing(cid, position)
	end

    return true
end 

function onStepOut(cid, item, position, fromPosition)
	doRemoveCondition(cid, CONDITION_PARALYZE)
    return true
end
NickbhzN
21 de dezembro de 2015 às 12:29

 

Eta coloquei a variável nos lugares errados 2 vezes...

 

agora vai:

local chance = math.random(0, 100)
local position = {x = 123, y = 456, z = 7}
local effect = CONST_ME_GREEN_RINGS

function onStepIn(cid, item, position, fromPosition)

	local condition = createConditionObject(CONDITION_PARALYZE)
	setConditionParam(condition, CONDITION_PARAM_TICKS, 20000)
	setConditionFormula(condition, -0.9, 0, -0.9, 0)

	doSendMagicEffect(getThingPos(cid), effect) 
	doAddCondition(cid, condition)
	if chance <= 30 then
		doTeleportThing(cid, position)
	end

    return true
end 

function onStepOut(cid, item, position, fromPosition)
	doRemoveCondition(cid, CONDITION_PARALYZE)
    return true
end

O erro foi corrigido, editei aqui a parte da % para ser teleportado para 100, andei durante 3 minutos e n fui teleportado o.O

 

E eu tinha mudado o efeito para o 34, nesse eu vi que é diferente pq é uma "tag" e nao sei como é agora, mais o efeito que eu quero é aquele tipo do "exori mas" , teria como mudar? Isso eu mesmo mudaria mais n conhece os efeitos por tag..

Editado Dezembro 21 por brendoonh

CaronteC
21 de dezembro de 2015 às 12:57

Opa, outro erro básico:

local position = {x = 123, y = 456, z = 7}
local effect = CONST_ME_GREEN_RINGS

function onStepIn(cid, item, position, fromPosition)

	local chance = math.random(0, 100)
	local condition = createConditionObject(CONDITION_PARALYZE)
	setConditionParam(condition, CONDITION_PARAM_TICKS, 20000)
	setConditionFormula(condition, -0.9, 0, -0.9, 0)

	doSendMagicEffect(getThingPos(cid), effect) 
	doAddCondition(cid, condition)
	print(chance)
	if chance <= 30 then
		doTeleportThing(cid, position)
	end

    return true
end 

function onStepOut(cid, item, position, fromPosition)
	doRemoveCondition(cid, CONDITION_PARALYZE)
    return true
end

Agora vai...

 

Sobre a TAG, você fala do CONST_ME_GREEN_RINGS ? tanto faz colocar números ou palavras, eu prefiro palavras, pois é mais fácil de decorar qual é.

 

Veja os efeitos, tá no spoiler de CONST_ME e CONST_ANI

http://www.xtibia.com/forum/topic/237220-lib-000-const/

 

Lista de const_me tibia padrão 8.6

 

CONST_ME_DRAWBLOOD = 0
CONST_ME_LOSEENERGY = 1
CONST_ME_POFF = 2
CONST_ME_BLOCKHIT = 3
CONST_ME_EXPLOSIONAREA = 4
CONST_ME_EXPLOSIONHIT = 5
CONST_ME_FIREAREA = 6
CONST_ME_YELLOW_RINGS = 7
CONST_ME_GREEN_RINGS = 8
CONST_ME_HITAREA = 9
CONST_ME_TELEPORT = 10
CONST_ME_ENERGYHIT = 11
CONST_ME_MAGIC_BLUE = 12
CONST_ME_MAGIC_RED = 13
CONST_ME_MAGIC_GREEN = 14
CONST_ME_HITBYFIRE = 15
CONST_ME_HITBYPOISON = 16
CONST_ME_MORTAREA = 17
CONST_ME_SOUND_GREEN = 18
CONST_ME_SOUND_RED = 19
CONST_ME_POISONAREA = 20
CONST_ME_SOUND_YELLOW = 21
CONST_ME_SOUND_PURPLE = 22
CONST_ME_SOUND_BLUE = 23
CONST_ME_SOUND_WHITE = 24
CONST_ME_BUBBLES = 25
CONST_ME_CRAPS = 26
CONST_ME_GIFT_WRAPS = 27
CONST_ME_FIREWORK_YELLOW = 28
CONST_ME_FIREWORK_RED = 29
CONST_ME_FIREWORK_BLUE = 30
CONST_ME_STUN = 31
CONST_ME_SLEEP = 32
CONST_ME_WATERCREATURE = 33
CONST_ME_GROUNDSHAKER = 34
CONST_ME_HEARTS = 35
CONST_ME_FIREATTACK = 36
CONST_ME_ENERGYAREA = 37
CONST_ME_SMALLCLOUDS = 38
CONST_ME_HOLYDAMAGE = 39
CONST_ME_BIGCLOUDS = 40
CONST_ME_ICEAREA = 41
CONST_ME_ICETORNADO = 42
CONST_ME_ICEATTACK = 43
CONST_ME_STONES = 44
CONST_ME_SMALLPLANTS = 45
CONST_ME_CARNIPHILA = 46
CONST_ME_PURPLEENERGY = 47
CONST_ME_YELLOWENERGY = 48
CONST_ME_HOLYAREA = 49
CONST_ME_BIGPLANTS = 50
CONST_ME_CAKE = 51
CONST_ME_GIANTICE = 52
CONST_ME_WATERSPLASH = 53
CONST_ME_PLANTATTACK = 54
CONST_ME_TUTORIALARROW = 55
CONST_ME_TUTORIALSQUARE = 56
CONST_ME_MIRRORHORIZONTAL = 57
CONST_ME_MIRRORVERTICAL = 58
CONST_ME_SKULLHORIZONTAL = 59
CONST_ME_SKULLVERTICAL = 60
CONST_ME_ASSASSIN = 61
CONST_ME_STEPSHORIZONTAL = 62
CONST_ME_BLOODYSTEPS = 63
CONST_ME_STEPSVERTICAL = 64
CONST_ME_YALAHARIGHOST = 65
CONST_ME_BATS = 66
CONST_ME_SMOKE = 67
CONST_ME_INSECTS = 68
CONST_ME_NONE = 255
CONST_ME_LAST = CONST_ME_INSECTS

 

 

NickbhzN
21 de dezembro de 2015 às 14:12

Opa, outro erro básico:

local position = {x = 123, y = 456, z = 7}
local effect = CONST_ME_GREEN_RINGS

function onStepIn(cid, item, position, fromPosition)

	local chance = math.random(0, 100)
	local condition = createConditionObject(CONDITION_PARALYZE)
	setConditionParam(condition, CONDITION_PARAM_TICKS, 20000)
	setConditionFormula(condition, -0.9, 0, -0.9, 0)

	doSendMagicEffect(getThingPos(cid), effect) 
	doAddCondition(cid, condition)
	print(chance)
	if chance <= 30 then
		doTeleportThing(cid, position)
	end

    return true
end 

function onStepOut(cid, item, position, fromPosition)
	doRemoveCondition(cid, CONDITION_PARALYZE)
    return true
end

Agora vai...

 

Sobre a TAG, você fala do CONST_ME_GREEN_RINGS ? tanto faz colocar números ou palavras, eu prefiro palavras, pois é mais fácil de decorar qual é.

 

Veja os efeitos, tá no spoiler de CONST_ME e CONST_ANI

http://www.xtibia.com/forum/topic/237220-lib-000-const/

 

Lista de const_me tibia padrão 8.6

 

CONST_ME_DRAWBLOOD = 0
CONST_ME_LOSEENERGY = 1
CONST_ME_POFF = 2
CONST_ME_BLOCKHIT = 3
CONST_ME_EXPLOSIONAREA = 4
CONST_ME_EXPLOSIONHIT = 5
CONST_ME_FIREAREA = 6
CONST_ME_YELLOW_RINGS = 7
CONST_ME_GREEN_RINGS = 8
CONST_ME_HITAREA = 9
CONST_ME_TELEPORT = 10
CONST_ME_ENERGYHIT = 11
CONST_ME_MAGIC_BLUE = 12
CONST_ME_MAGIC_RED = 13
CONST_ME_MAGIC_GREEN = 14
CONST_ME_HITBYFIRE = 15
CONST_ME_HITBYPOISON = 16
CONST_ME_MORTAREA = 17
CONST_ME_SOUND_GREEN = 18
CONST_ME_SOUND_RED = 19
CONST_ME_POISONAREA = 20
CONST_ME_SOUND_YELLOW = 21
CONST_ME_SOUND_PURPLE = 22
CONST_ME_SOUND_BLUE = 23
CONST_ME_SOUND_WHITE = 24
CONST_ME_BUBBLES = 25
CONST_ME_CRAPS = 26
CONST_ME_GIFT_WRAPS = 27
CONST_ME_FIREWORK_YELLOW = 28
CONST_ME_FIREWORK_RED = 29
CONST_ME_FIREWORK_BLUE = 30
CONST_ME_STUN = 31
CONST_ME_SLEEP = 32
CONST_ME_WATERCREATURE = 33
CONST_ME_GROUNDSHAKER = 34
CONST_ME_HEARTS = 35
CONST_ME_FIREATTACK = 36
CONST_ME_ENERGYAREA = 37
CONST_ME_SMALLCLOUDS = 38
CONST_ME_HOLYDAMAGE = 39
CONST_ME_BIGCLOUDS = 40
CONST_ME_ICEAREA = 41
CONST_ME_ICETORNADO = 42
CONST_ME_ICEATTACK = 43
CONST_ME_STONES = 44
CONST_ME_SMALLPLANTS = 45
CONST_ME_CARNIPHILA = 46
CONST_ME_PURPLEENERGY = 47
CONST_ME_YELLOWENERGY = 48
CONST_ME_HOLYAREA = 49
CONST_ME_BIGPLANTS = 50
CONST_ME_CAKE = 51
CONST_ME_GIANTICE = 52
CONST_ME_WATERSPLASH = 53
CONST_ME_PLANTATTACK = 54
CONST_ME_TUTORIALARROW = 55
CONST_ME_TUTORIALSQUARE = 56
CONST_ME_MIRRORHORIZONTAL = 57
CONST_ME_MIRRORVERTICAL = 58
CONST_ME_SKULLHORIZONTAL = 59
CONST_ME_SKULLVERTICAL = 60
CONST_ME_ASSASSIN = 61
CONST_ME_STEPSHORIZONTAL = 62
CONST_ME_BLOODYSTEPS = 63
CONST_ME_STEPSVERTICAL = 64
CONST_ME_YALAHARIGHOST = 65
CONST_ME_BATS = 66
CONST_ME_SMOKE = 67
CONST_ME_INSECTS = 68
CONST_ME_NONE = 255
CONST_ME_LAST = CONST_ME_INSECTS

 

 

Nada de ser teleportado... Notei na distro que todo passo que eu do nessa area a distro registra um par de numeros, parece que é a porcentagem de ser teleportado, se for mesmo isso era pra ter sido, pois numeros como 98,96,95 foi registrado na distro, se nao for desconsidere, de resto ta tudo como eu queria.. So a parte de ser teleportado que nao tá indo..

@edit , foto >

a3gqv4.png

Editado Dezembro 21 por brendoonh

CaronteC
21 de dezembro de 2015 às 14:55
Melhor resposta
Nada de ser teleportado... Notei na distro que todo passo que eu do nessa area a distro registra um par de numeros, parece que é a porcentagem de ser teleportado, se for mesmo isso era pra ter sido, pois numeros como 98,96,95 foi registrado na distro, se nao for desconsidere, de resto ta tudo como eu queria.. So a parte de ser teleportado que nao tá indo.. @edit , foto >

 

Não é assim, são 100 números, que são sorteados de 0 a 100, se o número for menor ou igual a 30, ele teleporta...

era para ter teleportado quando deu 19, 27 e 18....

 

Só que, a position estava sendo outro valor, no caso, o tile que o cid estava em cima, o script estava sim teleportando, porém para o mesmo local....

local effect = CONST_ME_GREEN_RINGS

function onStepIn(cid, item, position, fromPosition)

	local chance = math.random(0, 100)
	local condition = createConditionObject(CONDITION_PARALYZE)
	local pos = {x = 40, y = 139, z = 7}
	setConditionParam(condition, CONDITION_PARAM_TICKS, 20000)
	setConditionFormula(condition, -0.9, 0, -0.9, 0)

	doSendMagicEffect(getThingPos(cid), effect) 
	doAddCondition(cid, condition)

	if chance <= 30 then
		doTeleportThing(cid, pos)
	end

    return true
end 

function onStepOut(cid, item, position, fromPosition)
	doRemoveCondition(cid, CONDITION_PARALYZE)
    return true
end
NickbhzN
21 de dezembro de 2015 às 15:12

PEEEEEEEEERFEITO!

Muito obrigado!!!

DanihcvD
24 de dezembro de 2015 às 23:04

Tópico movido para dúvidas / pedidos resolvidos.