New Repel System

nyuchiha
em Actions e Talkactions
  • 1
  • 2

nyuchiha

avatar
Artesão
Artesão

INFOS

Grupo: ArtesãoRegistrado: 27/03/10Posts: 112Gênero: MasculinoChar no Tibia: Ny Uchiha

Ola a todos, venho lhes trazer um script criado por mim recentemente.



Quem ja jogou Pokemon de GB,GBA etc sabe qual a função do Repel e o quanto ele é importante.



O Script é divido em 2 partes, O Repel ( Que é uma potion ) e um script de Movements que vou explicar a função logo abaixo.



Algumas informações sobre como ele funciona.



<~~ Se o Player não estiver sobre o efeito do Repel ~~>

A Parte do Movements é executada toda vez que um player passa por cima de um dos tiles registrado no script.

Isso executara uma função Random de 1, 80 e se der 80 invocara um Pokemon.

O elemento do Pokemon depende do tile em que pisou, alem do Pokemon a ser invocado tbm ser Random.



<~~ Se o Player estiver sobre o efeito do Repel ~~>

Nenhum Pokemon sera invocado ao passar em cima do tile.

O player recebera informações de quantos passos lhe resta para acabar o efeito do Repel.



<~~ O Repel ~~>

Basicamente soh serve para adicionar a storage.





Então vamos la :

.

<~~ Repel ~~>



Actions/Scripts/Repel.lua

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

       if item2.uid ~= cid then
               return doPlayerSendCancel(cid, "You can use repel only on you!") 
       end

       if getPlayerStorageValue(cid, 512110) >= 0 then
               return doPlayerSendCancel(cid, "You're still on the effect of repel!")
       end

       setPlayerStorageValue(cid, 512110, 0)
       doSendMagicEffect(frompos, 12)
       doSendAnimatedText(frompos, "REPEL!", 180)
end

 

Actions.xml

<action itemid=" ID DA POTION QUE DESEJA " event="script" value="repel.lua"/>

 

 

 

<~~ Parte do Movements ~~>



Movements/Scripts/Respaw.lua

local GRAMS = {  
[1] = {"Victreebel s"},
[2] = {"Weepinbell s"},
[3] = {"Bulbasaur s"},
[4] = {"Ivysaur s"},
[5] = {"Venusaur s"},
[6] = {"Tangela s"},
[7] = {"Gloom s"},
[8] = {"Caterpie s"},
[9] = {"Metapod s"},
[10] = {"Butterfree s"},
[11] = {"Weedle s"},
[12] = {"Kakuna s"},
[13] = {"Beedrill s"}
}  

local STONES = {  
[1] = {"Geodude s"},
[2] = {"Graveler s"},
[3] = {"Rhyhorn s"},
[4] = {"Onix s"},
[5] = {"Golem s"},
[6] = {"Rhydon s"}
}  

local storage = 512110
local steps = 100



function onStepOut(cid, item, position, lastPosition, fromPosition, toPosition, actor)
if not isPlayer(cid) then
return true
end



stepleft = getPlayerStorageValue(cid,storage)
left = steps - stepleft
if stepleft <= steps and stepleft >= 0 then
setPlayerStorageValue(cid,storage,stepleft+1)
       doPlayerSendTextMessage(cid,27, "You have " .. left .. " steps!." )
elseif stepleft >= steps then
setPlayerStorageValue(cid,storage,-1)
       doPlayerSendTextMessage(cid,27, "The effect of elixir ended!." )
return true
end

if getPlayerStorageValue(cid, 512110) < 0 then
Randow = math.random(1, 80)
if Randow == 80 then

-- GRAMS TILE
       if isInArray({'4536', '4534', '4531', '4530', '4553', '4526', '4532'}, getTileThingByPos(fromPosition).itemid) then
       doSendMagicEffect(fromPosition, 173)
       r = math.random(1, #GRAMS)
       doCreateMonster(GRAMS[r][1], fromPosition)
       doPlayerSendTextMessage(cid,27, "A "..GRAMS[r][1].." has just appeared!." )

-- STONES TILE
elseif isInArray({'4575', '4570', '4578', '4576', '4572', '4573', '4577'}, getTileThingByPos(fromPosition).itemid) then
       doSendMagicEffect(fromPosition, 173)
       r = math.random(1, #STONES)
       doCreateMonster(STONES[r][1], fromPosition)
       doPlayerSendTextMessage(cid,27, "A "..STONES[r][1].." has just appeared!." )
end
end
end
return true
end

 

Movements.xml

<movevent type="StepOut" <movevent type="StepOut" itemid="103;4536;4534;4531;4530;4553;4526;4532;4575;4570;4578;4576;4572;4573;4577" event="script" value="respaw.lua"/>



Um Video para ficar + facil de entender a função dele...



Denuvo

Etheriongames - Designing Your Entertainment.
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 01/05/11Posts: 658Gênero: MasculinoChar no Tibia: ExTibiano

Aêe death vs ée foda ótimo scripter bem útil

:D

ainda naum testei mais parece está 100% REP+

e obg aêe sempre ajudando a galera inclusive a mim :D

❝Eu prefiro confiar e me arrepender do que duvidar e me arrepender.❞ Kirito

 

 

viktor2005

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 10/08/11Posts: 10Char no Tibia: Vitinhowans

Mano vc , bruno,alls,zika sao tudoooooo foda'-' sabe d+ mecher nisso...Eu tentei fazer isso o script deu errado '-'Parabens pelo script D=

Mulizeu

Programar ate cair os dedos
avatar
Barão
Barão

INFOS

Grupo: BarãoRegistrado: 05/08/10Posts: 218Gênero: Masculino

Boa death bom sistema..inovador..poderia colocar ate 1 video demonstrativo para as pessoas conhecerem melhor esse sistema!

Eskylo

boa sorte
avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 11/08/10Posts: 477Gênero: Masculino

 

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

if not isPlayer(item2.uid) then
	return doPlayerSendCancel(cid, "You can use repel on you!") -- <-- essa frase ta bem ruim, vc pois p checar se é player, se o cara tentar usar nele mesmo, vai dar certo pq ele é player, a frase vai aparecer quando ele usar a pot em algum pokemon, entao mude a frase p sei la, "vc n pode usar em pokes"
end

if getPlayerStorageValue(cid, 512110) >= 0 then
	return doPlayerSendCancel(cid, "You're still on the effect of repel!")
end

if isPlayer(item2.uid) then -- <-- if desnecessario, já checou se é player antes
	setPlayerStorageValue(cid, 512110, 0)
	doSendMagicEffect(getPlayerPosition(cid), 12)-- <-- esse aki se o cara usar em outro player o efeito vai sair nele e n no outro player entao sugiro trocar o getplayerpo... por frompos
	doSendAnimatedText(getThingPos(item2.uid), "REPEL!", 180) -- <-- troque getThingPos(item2.uid) por frompos, pois p isso q existe o frompos
end -- <-- se remnoveu o if q falei ali antes, tem q remover o end
end

 

 

fiz uns comentarios no script /\

 

mass se eu entendi errado, vc quis fazer p poder usar só em vc msm, se for isso, o certo seria:

 

 

 

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

if item2.uid ~= cid then
	return doPlayerSendCancel(cid, "You can use repel ONLY on you!") 
end

if getPlayerStorageValue(cid, 512110) >= 0 then
	return doPlayerSendCancel(cid, "You're still on the effect of repel!")
end

setPlayerStorageValue(cid, 512110, 0)
doSendMagicEffect(frompos, 12)
doSendAnimatedText(frompos, "REPEL!", 180)
end

 

Atenciosamente, Eskylo

 

 

Ironman-icon.png

.

.

nyuchiha

avatar
Artesão
Artesão

INFOS

Grupo: ArtesãoRegistrado: 27/03/10Posts: 112Gênero: MasculinoChar no Tibia: Ny Uchiha

Vlw por modificar a potion =), realmente nem pensei que do jeito que coloquei daria para usar em outro player.

E sobre o efeito da potion, O Script do mevements que si encarrega de retirar a storage depois de 100 passo !!

 

o numero de passos vc edita no script em movements em

local steps = 100

 

Testei aqui e ta 100%

Eskylo

boa sorte
avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 11/08/10Posts: 477Gênero: Masculino

 

Vlw por modificar a potion =), realmente nem pensei que do jeito que coloquei daria para usar em outro player.

E sobre o efeito da potion, O Script do mevements que si encarrega de retirar a storage depois de 100 passo !!

 

o numero de passos vc edita no script em movements em

local steps = 100

 

Testei aqui e ta 100%

 

 

falhei kkk, n olhei os outros scripts

Atenciosamente, Eskylo

 

 

Ironman-icon.png

.

.

SkyTime

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 03/01/11Posts: 20

Mais uma vez inovando, dá uma olhada lá na sua página de visitas :s. repinho ae

  • Errar é humano, saber superá-los é mais ainda.

 

 

 

 

carinha_feliz2.jpg

bepokemon

Lo sono il accolito.
avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 23/02/08Posts: 273Char no Tibia: Foxx Rookslayer

O Repel poderia ser um exhaustion.

config {
[id] = {30}, -- repel
[id2] = {60}, -- super repel
[id3] = {120} -- max repel
}
if getPlayerStorageValue(cid, "underquest") ~= -1 then
doPlayerSendTextMessage(cid, 18, "You can\'t use a repel while you are doing a quest.")
return FALSE
end

exhaustion.set(cid, "repel", config[item.itemid])

 

E depois colocar um CreatureScript para que quando um monstro atacasse alguem com o Exhaustion Repel nao fosse possivel?

Ai funcionaria pra tudo.

function onAttack(cid, target)
if exhaustion.get(target, "repel") then
return FALSE
end
return TRUE
end

 

Depois seria soh configurar pra nao poder usar em quests, talvez ..

function onStepIn(cid, fromPosition)
if exhaustion.get(cid, "repel") then
exhaustion.set(cid, "repel", -1)
setPlayerStorageValue(cid, "underquest", 1)
doPlayerSendTextMessage(cid, 18, "Your repel status has been removed.")
end
return TRUE
end

logo.png

Scripter

@MagicWorld

Ex: Colaborador de Scripting

Contato: bepokemon@hotmail.com

nyuchiha

avatar
Artesão
Artesão

INFOS

Grupo: ArtesãoRegistrado: 27/03/10Posts: 112Gênero: MasculinoChar no Tibia: Ny Uchiha

@Byerne

E depois colocar um CreatureScript para que quando um monstro atacasse alguem com o Exhaustion Repel nao fosse possivel?
Ai funcionaria pra tudo

Cheguei a fazer isso antes de postar, soh que ocasiono instabilidade no meu servidor, entao resolvi deixar do jeito que esta !!



O exhaustion é por tempo n é? Uso storage para checar e retirar o numero de passos..

BrunooAngel

#Bruninhoo '
avatar
Barão
Barão

INFOS

Grupo: BarãoRegistrado: 21/08/11Posts: 202Char no Tibia: Kaiser Demon

Muito bom, ainda mais pra mim que quero deixar meu ot o mais parecido possivel do gba e o mais longe possivel do SvKe/PxG!

assinaturapleasedonotcr.png

 

--------------------------------------------------------------------------------------------------------------------------------

 

barradisco.gif

lipeeaugustoo

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 01/10/11Posts: 7

haha, cada vez melhor em fi !

 

ta uma atualizada la no pokemon happy pfpfpf!

240295

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 10/08/11Posts: 6Char no Tibia: Guilherme destruidor

Assim.. eu não entendi muito bem isso de Repel não.. tu não poderia explicar mais detalhadamente esse script não? através de fotos um ou vídeo.. Seria muito útil !! Ty

nyuchiha

avatar
Artesão
Artesão

INFOS

Grupo: ArtesãoRegistrado: 27/03/10Posts: 112Gênero: MasculinoChar no Tibia: Ny Uchiha

Vou postar um video assim que der tempo.

Dei uma arrumada no script, ao passar por cima de 2 tipos de tipe de rock, invocava pokemons do tipo planta !!





Edit



Video Adicionado, como podem ver a hora do meu post ja é bem tardeeee.

O pior é q pisei, matei, estuprei o português HUSAHUSAUHSAUH

mais 2 % desses erros foi por causa do sono kkkkk

  • 1
  • 2