Pac Man System

RickGol
em Actions e Talkactions

RickGol

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 19/03/08Posts: 24Char no Tibia: Nenhum

Nome: Pac man system



 

envolve: actions, monsters, creaturescripts

Testado em: The forgotten server 0.3.1

Créditos: Mock o Urso

 

Script muito legal especialmente para servers "ForFun"

 

Não é meu só to trazendo aqui pro xTibia pq não achei em nosso forum

 

 

Pac Man System? : Um sistema para garantir a diversão dos player em seu server, o pacman sistem ficou bem parecido com o real (Come-Come)xD.

 

Para começar temos que seguir alguns passos.

O primeiro é definir os scripts entao vamos até actions.xml e adcionamos isso:

 

 

<action actionid="7070" script="pacman.lua"/>

 

 

Aqui esta sendo usado o actionid 7070 verifique se nao esta em uso.

 

Depois na pasta scripts de actions crie o pacman.lua e adcione isto:

 

 

local player_start_pos = {x=3122,y=2741,z=7}

 

e isso:

 

local arena_up = {x=3130,y=2731,z=7}

local arena_down = {x=3114,y=2749,z=7} local monsterpos = {x=3122,y=2739,z=7} local ponsts_storage = 7071 -- Será configurado mais tarde local function criar(posbaxo,poscima) pos2 = posbaxo pos1 = poscima for x = 0, math.abs(pos1.x-pos2.x) do for y = 0, math.abs(pos1.y-pos2.y) do pos3 = {x = pos1.x+x, y = pos1.y-y, z = pos1.z, stackpos = 0} --doSendMagicEffect(pos3, 3) local coisa = getThingfromPos(pos3) if coisa.itemid == 407 and coisa.actionid ~= 100 then doSendMagicEffect(pos3, 1) pos3.stackpos = 1 local coisaa = getThingfromPos(pos3) if coisaa.itemid == 1502 or coisaa.itemid == 8058 then doRemoveItem(coisaa.uid,1) end if coisa.actionid == 7071 then doCreateItem(8058, 1, pos3) else doCreateItem(1502, 1, pos3) end end end end end function onUse(cid, item, frompos, item2, topos) if getGlobalStorageValue(7071) == -1 then doTeleportThing(cid,player_start_pos) setPlayerStorageValue(cid,ponsts_storage, 0) criar(arena_up,arena_down) local m1 = doSummonCreature('monster',{x=monsterpos.x-1,y=monsterpos.y,z=monsterpos.z}) local m2 = doSummonCreature('monster',{x=monsterpos.x,y=monsterpos.y,z=monsterpos.z}) local m3 = doSummonCreature('monster',{x=monsterpos.x+1,y=monsterpos.y,z=monsterpos.z}) setGlobalStorageValue(7071, m1) setGlobalStorageValue(7072, m2) setGlobalStorageValue(7073, m3) return TRUE else return TRUE end end

 

 

Salve e deiche o arquivo aberto.

Abra o seu map editor escolha uma area GRANDE e siga a foto juntamente com a esplicação da config e cores

 

roxy.png

 

Você notou que do canto de > da foto tem uma coisa com molas, você pode por o item que quiser porem ele DEVE estar com actionid 7070

 

Agora...

local player_start_pos = {x=1,y=2,z=7}

Você deve preencher a tabela com as posições X,Y,Z na tabela vendo pelo seu map editor onde indica o ponto vermelho.

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

local arena_up = {x=3130,y=2731,z=7}

local arena_down = {x=3114,y=2749,z=7}

Obviamente é a posição indicada pelos pontos pretos (bolas) na foto e boviamente down e bacho entao e a bola de baicho e up a de cima :o, preencha a tabela com os devidos valores de posição x y z.

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

local ponsts_storage = 7071

ISSO NAO PRESISA MECHER

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

Você deve estar vendo alguns sqms roxos na foto nesses sqms você deve por NO CHAO actionid 100

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

Ja nos verdes você deve por actionic 7071 neles.

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

local monsterpos = {x=3122,y=2739,z=7}

Essa é a posição da bolinha laranja.

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



Bom agora tenho 99.9% de certeza que seu servidor nao usa o itemid 1502 esse é o itemid usado para simular as bolinhas que o pacman come esse id e o do firefield que nao casa dano ao player (o pequeno) quaso você notar que ele some você deve ir em itens.xml procurar o id 1502 e tirar as linhas que informan duração.

Agora vamos adcionar os movements.

Vá ate movements.xml ponha esta tag

 

 

<movevent event="StepIn" itemid="1502" script="pacman.lua"/>

 

 

 

<movevent event="StepIn" itemid="8058" script="pacman.lua"/>

 

 

Em scripts de movements crie outro pacman.lua e ponha isso dentro:

 

 

local ponsts_storage = 7071

 

 

 

local exti_pos = {x=3134,y=2741,z=7}

---

local function transfMonst()

local m1 = getGlobalStorageValue(7071)

local m2 = getGlobalStorageValue(7072)

local m3 = getGlobalStorageValue(7073)

local p1 = getThingPos(m1)

local p2 = getThingPos(m2)

local p3 = getThingPos(m3)

doRemoveCreature(m1)

doRemoveCreature(m2)

doRemoveCreature(m3)

m1 = doSummonCreature('monster', p1)

m2 = doSummonCreature('monster', p2)

m3 = doSummonCreature('monster', p3)

setGlobalStorageValue(7071, m1)

setGlobalStorageValue(7072, m2)

setGlobalStorageValue(7073, m3)

end

function onStepIn(cid, item, pos)

if isMonster(cid) == TRUE then

return TRUE

end

if item.itemid == 8058 then

local m1 = getGlobalStorageValue(7071)

local m2 = getGlobalStorageValue(7072)

local m3 = getGlobalStorageValue(7073)

local p1 = getThingPos(m1)

local p2 = getThingPos(m2)

local p3 = getThingPos(m3)

doRemoveCreature(m1)

doRemoveCreature(m2)

doRemoveCreature(m3)

doRemoveItem(item.uid,1)

m1 = doSummonCreature('monster2', p1)

m2 = doSummonCreature('monster2', p2)

m3 = doSummonCreature('monster2', p3)

setGlobalStorageValue(7071, m1)

setGlobalStorageValue(7072, m2)

setGlobalStorageValue(7073, m3)

addEvent(transfMonst,20000,1)

else

doRemoveItem(item.uid,1)

setPlayerStorageValue(cid,ponsts_storage, getPlayerStorageValue(cid, ponsts_storage)+1)

doSendAnimatedText(pos, getPlayerStorageValue(cid, ponsts_storage).." pts", math.random(1,255))

end

if getPlayerStorageValue(cid, ponsts_storage) >= 170 then

doTeleportThing(cid,exti_pos)

local m1 = getGlobalStorageValue(7071)

local m2 = getGlobalStorageValue(7072)

local m3 = getGlobalStorageValue(7073)

doRemoveCreature(m1)

doRemoveCreature(m2)

doRemoveCreature(m3)

setGlobalStorageValue(7071,-1)

setGlobalStorageValue(7072,-1)

setGlobalStorageValue(7073,-1)

end

end

 

 

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

Configure:

local exti_pos = {x=3134,y=2741,z=7}

é a posição de qual o player quando perder ou ganhar vai ir.

 

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

Agora vamos a creaturescripts

Adcione estas tags:

 

 

<event type="death" name="nodie2" script="imorrivel2.lua"/>

<event type="attack" name="atk" script="move.lua"/>

 

 

Em inmorrivel2.lua coloque isto:

 

 

function onDeath(cid, corpse, killer,killer2)

 

local m1 = getGlobalStorageValue(7071)

local m2 = getGlobalStorageValue(7072)

local m3 = getGlobalStorageValue(7073)

local ce = {x=3122,y=2739,z=7} --- mesma posição da bolinah laranja na foto!

if cid == m1 then

m1 = doSummonCreature("monster2", ce)

setGlobalStorageValue(7071, m1)

elseif cid == m2 then

m2 = doSummonCreature("monster2", ce)

setGlobalStorageValue(7072, m2)

elseif cid == m3 then

m3 = doSummonCreature("monster2", ce)

setGlobalStorageValue(7073, m3)

end

return TRUE

end

 

 

Em move.lua basta por isto:

 

 

local exti_pos = {x=3134,y=2741,z=7}

function getDistanceToCreature(cid,cre)

local c = getCreaturePosition(cid)

local s = getCreaturePosition(cre)

return math.max(math.abs(s.x - c.x), math.abs(s.y - c.y))

end

 

function onAttack(cid, target)

if getCreatureName(cid) == "monstro" and getDistanceToCreature(cid,target) == 1 then

doTeleportThing(target,exti_pos)

local m1 = getGlobalStorageValue(7071)

local m2 = getGlobalStorageValue(7072)

local m3 = getGlobalStorageValue(7073)

addEvent(doRemoveCreature,300,m1)

addEvent(doRemoveCreature,300,m2)

addEvent(doRemoveCreature,300,m3)

setGlobalStorageValue(7071,-1)

setGlobalStorageValue(7072,-1)

setGlobalStorageValue(7073,-1)

return FALSE

end

return TRUE

end

 

 

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

ainda falta 1 parte

os monsters

Basta criar 2 monsters.

crie um XML chamado monstro.xml e um chamado monster2.xml

 

Agora em monstro.xml ponha:

 

 

<?xml version="1.0" encoding="UTF-8"?>

<monster name="monstro" nameDescription="a monstro" race="UNDEAD" experience="60" speed="60" manacost="100">

<health now="999" max="999"/>

<look type="48" head="20" body="30" legs="40" feet="50" corpse="5993"/>

<targetchange interval="5000" chance="8"/>

<strategy attack="100" defense="0"/>

<flags>

<flag summonable="0"/>

<flag attackable="0"/>

<flag hostile="1"/>

<flag illusionable="0"/>

<flag convinceable="0"/>

<flag pushable="1"/>

<flag canpushitems="1"/>

<flag canpushcreatures="0"/>

<flag targetdistance="1"/>

<flag staticattack="90"/>

<flag runonhealth="0"/>

</flags>

<attacks>

<attack name="melee" interval="2000" skill="1" attack="1"/>

</attacks>

<defenses armor="10" defense="10"/>

<elements>

<element physicalPercent="100"/>

<element earthPercent="100"/>

<element deathPercent="100"/>

</elements>

<immunities>

<immunity lifedrain="1"/>

<immunity fire="1"/>

<immunity paralyze="1"/>

</immunities>

<voices interval="5000" chance="10">

<voice sentence="Huh!"/>

<voice sentence="Shhhhhh"/>

<voice sentence="Buuuuuh"/>

</voices>

<script>

<event name="atk"/>

</script>

</monster>

 

 

 

monster2.xml:

 

 

<?xml version="1.0" encoding="UTF-8"?>

<monster name="monstro" nameDescription="a monstro" race="UNDEAD" experience="1" speed="30" manacost="100">

<health now="1" max="1"/>

<look type="319" head="20" body="30" legs="40" feet="50" corpse="0"/>

<targetchange interval="5000" chance="8"/>

<strategy attack="100" defense="0"/>

<flags>

<flag summonable="0"/>

<flag attackable="1"/>

<flag hostile="0"/>

<flag illusionable="0"/>

<flag convinceable="0"/>

<flag pushable="1"/>

<flag canpushitems="1"/>

<flag canpushcreatures="0"/>

<flag targetdistance="9"/>

<flag staticattack="90"/>

<flag runonhealth="0"/>

</flags>

<attacks>

<attack name="melee" interval="2000" skill="1" attack="1"/>

</attacks>

<defenses armor="10" defense="10"/>

<immunities>

<immunity invisible="1"/>

<immunity fire="1"/>

</immunities>

<voices interval="5000" chance="10">

<voice sentence="AHHHH!"/>

</voices>

<script>

<event name="nodie2"/>

</script>

</monster>

 

 

 

Agora para acabar vá ate monsters.xml e adcione 2 tags:

 

 

<monster name="monster" file="monstro.xml"/>

 

 

 

<monster name="monster2" file="monster2.xml"/>

 

 

salva e fecha tudo e abra seu ot

provavelmente como o script tem muitos passos algo pode nao funcionar corretamente na hora entao revise os passos um por um com atenção.

 

Comentem

=======================================================================








=======================================================================

RulezKnight

\/ Mito \/
avatar
Cavaleiro
Cavaleiro

INFOS

Grupo: CavaleiroRegistrado: 17/07/09Posts: 153Char no Tibia: Victorseksi

UAHSUASD, Não vou testa agora, mais achei bem legal!

LeandroMenezes

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 15/07/10Posts: 6

BOM , obrigado por trazer para o XTIBIA

ADMDragon

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 20/06/10Posts: 19

:surprised: Meu deus o que mais faltam inventar??

 

 

:smile_positivo: Bom trabalho, sei que deve ter realmente dado trabalho :weight_lift:

 

 

:button_ok: Aprovado

miter

Scripter - XTibia.com
avatar
Cavaleiro
Cavaleiro

INFOS

Grupo: CavaleiroRegistrado: 28/07/07Posts: 174

tá ai uma nova forma de jogar tibia, agora é só fazer um Client para ficar melhorzin! APROVADO!

XTibia, a sua comunidade de Tibia e OTServ.

Tibia s not 3D, Tibia is... xD!





.

lais16gatinha

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 25/06/10Posts: 34Char no Tibia: Lais Figueiredo

Como o povo gosta de modificar o Tibia, eu adoro trabalhos assim, obrigada por trazer ao :XTibia_smile: ^^

Mapper & Scripter Especialista em Templos Breve Site para Pedidos Gratuitos

Metas:

1 post [x] muleka

5 posts [x] estudante

10 posts [x] Gennin

30 posts [x] Chunnin

50 posts [ ] Anbu

60 posts [ ] Jounnin

80 posts [ ] Jounnin especial

200 posts [ ] Naruto Shippuden

500 posts [ ] Sannin

800 posts [ ] Kage

1000 posts [ ] Minato

 

Rumo a ANBU

 

 

 

masterror

Scrippter e Mapper - Viciado em Bleach
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 23/07/10Posts: 28

Aew mano! testando aki... :) vms ver se funfa... ta mt bom pra ser verdade :)

 

@@EDITED

 

mano.. entro sem bug nem um aki... mais nao acontece nada

¬¬

Kurosaki Ichigo é conhecido como arruaceiro, e sempre foi zoado pelos seus colegas de classe, por causa de seu cabelo laranja (que na série é algo muito mal visto no Japão) além de jeito de "poucos-amigos". Ichigo porém sempre revida, dizendo não se importar com o que os outros pensam sobre ele, ou sobre o seu cabelo, alem de achar divertido lutar contra os "valentões".

Apesar disso, Ichigo não é nem um pouco do que aparenta ser. Mesmo sempre estressado e impulsivo com relação a tudo, tem um coração caridoso e compreensivo, além de um enorme desejo de proteger a todos à sua volta.

Mora na cidade de Karakura, junto com sua família. Seu pai é dono de uma pequena clínica hospitalar, que funciona em sua própria casa. Perdeu sua mãe quando ainda era pequeno, assassinada por um Hollow enquanto tentava salvá-lo.

Desde criança, Ichigo sempre pôde ver espíritos, por causa da grande quantidade de Reiatsu que possui, ele consequentemente, atrai vários aliados, e também, inúmeros inimigos.

Em uma noite comemn um Hollow ataca sua família, atraido pelo Reiatsu que Ichigo emanava. Mas na hora chega uma shinigami chamada Rukia Kuchiki atraida pelo Hollow. Porém Rukia é ferida pelo Hollow que atacou Ichigo e passou parte de seus poderes como Shinigami para Ichigo. Apesar dela ter tentado pasar somente metate de seus poderes, Ichigo de alguma forma pega quase todos os poderes.

Apesar da imagem de durão que ele tenta passar, tira boas notas no colégio. Diz que estuda apenas "por não ter nada de bom pra fazer em casa", mas na verdade ele tem a intenção de não ser mal visto pelos seus professores, que costumam recriminá-lo por causa de suas brigas e de seu cabelo laranja.

 

Data de nascimento: 17 de julho

Local de nascimento: Karakura, Japão

Classe: Shinigami

Ocupação: Estudante

Título: Substituto de Shinigami

Família:Isshin Kurosaki(pai), Masaki Kurosaki(Mãe, falecida), Karin Kurosaki(Irmã), Yuzu Kurosaki (Irmã)

Afiliações: Soul Society

166961_mundoimg_17394-bigthumbnail.jpg

blind92

www.confidenceworld.com.br
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 20/11/05Posts: 14Char no Tibia: Buchecha

então, eu segui os passos todos certos, e no fim deu esse erro. ja revisei, esta tudo certo, não entendi o problema :S

 

Event onUse not found <data/actions/scripts/pacman.lua

 

 

esse é meu pacman.lua

local player_start_pos = {x=33207,y=32148,z=7} local arena_up = {x=33216,y=32137,z=7}

local arena_down = {x=33198,y=32157,z=7} local monsterpos = {x=33207,y=32146,z=7} local ponsts_storage = 7071 -- Será configurado mais tarde local function criar(posbaxo,poscima) pos2 = posbaxo pos1 = poscima for x = 0, math.abs(pos1.x-pos2.x) do for y = 0, math.abs(pos1.y-pos2.y) do pos3 = {x = pos1.x+x, y = pos1.y-y, z = pos1.z, stackpos = 0} --doSendMagicEffect(pos3, 3) local coisa = getThingfromPos(pos3) if coisa.itemid == 407 and coisa.actionid ~= 100 then doSendMagicEffect(pos3, 1) pos3.stackpos = 1 local coisaa = getThingfromPos(pos3) if coisaa.itemid == 1502 or coisaa.itemid == 8058 then doRemoveItem(coisaa.uid,1) end if coisa.actionid == 7071 then doCreateItem(8058, 1, pos3) else doCreateItem(1502, 1, pos3) end end end end end function onUse(cid, item, frompos, item2, topos) if getGlobalStorageValue(7071) == -1 then doTeleportThing(cid,player_start_pos) setPlayerStorageValue(cid,ponsts_storage, 0) criar(arena_up,arena_down) local m1 = doSummonCreature('monster',{x=monsterpos.x-1,y=monsterpos.y,z=monsterpos.z}) local m2 = doSummonCreature('monster',{x=monsterpos.x,y=monsterpos.y,z=monsterpos.z}) local m3 = doSummonCreature('monster',{x=monsterpos.x+1,y=monsterpos.y,z=monsterpos.z}) setGlobalStorageValue(7071, m1) setGlobalStorageValue(7072, m2) setGlobalStorageValue(7073, m3) return TRUE else return TRUE end end

 

 

 

se conseguir ajudar agradeço MUITO *-*

Confidence World Server 8.60

 

http://www.confidenceworld.com.br

churupetinha

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 18/06/10Posts: 61Char no Tibia: Churupettinha

eu fiz isso tudo no meu mas nao funfo nao deu erro nem um so fala que o script nao tava terminado :S

blind92

www.confidenceworld.com.br
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 20/11/05Posts: 14Char no Tibia: Buchecha

alguem pode solucionar? :/

 

esqueceram o topico, to precisando muito desse script, por favor deem essa ajudinha, é só isso que me falta

Confidence World Server 8.60

 

http://www.confidenceworld.com.br