FR

Armazenando Mana Com Ectoplasma Container

Por frerety, 08 de jul. de 2006 em Actions e Talkactions

script
26
7.7k
freretyF
08 de julho de 2006 às 02:14

HiHo!

bom... tinha mt tempo que eu não postava e resolvi fazer um script só para postar msm...

Esse script usa os 2 "ectoplasma container (IDs 4863 / 4864)" para armazenar 100 de mana. O player pega um vazio e se ele tiver 100 de mana ou mais essa mana é armazenada no container (ou seja, remove do player e passa pro container, que fica cheio). Quando o player usa o container cheio, o container fica vazio e o player recupera 100 de mana.

OBS .: Você poderá configurar facilmente se o player pode roubar mana de outros players ou não

Let's go!

crie um arquivo chamado ectoplasma.lua (data/actions/scripts) e coloque isso dentro:

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

poderoubarmana = 1 -- 1 para sim, 0 para não (veja abaixo)

qntidadedmana = 100 -- qntidade de mana a ser armazenada

if item.itemid == 4863 then

testnpc = getPlayerLevel(item2.uid) -- verifica se não eh npc

if getPlayerMana(item2.uid) >= qntidadedmana and item2.itemid == cid and testnpc > 0 then

  testgm = getPlayerAccess(item2.uid) -- verifica se não eh gm

  if poderoubarmana == 1 and testgm < 1 then

   doPlayerAddMana(item2.uid,-qntidadedmana)

   doPlayerSendCancel(item2.uid,"Ops... Alguem roubou sua mana.")

   doTransformItem(item.uid,4864)

   doPlayerSendCancel(cid,"Mana armazenada.")

  elseif poderoubarmana == 0 then

   doPlayerAddMana(cid,-qntidadedmana)

   doTransformItem(item.uid,4864)

   doPlayerSendCancel(cid,"Mana armazenada.")

  else

   doPlayerSendCancel(cid,"Você não pode pegar mana de GM\'s.")

  end

  doSendMagicEffect(topos,0)

else

  doPlayerSendCancel(cid,"Você não tem mana suficiente.")

  doSendMagicEffect(topos,2)

end

elseif item.itemid == 4864 then

doTransformItem(item.uid,4863)

doPlayerAddMana(cid,qntidadedmana)

doPlayerSendCancel(cid,"Mana gasta.")

doSendMagicEffect(topos,0)

end

return 1

end

Alterações Necessárias:

.: poderoubarmana -> coloque 1 se o player puder roubar mana de outros players para armazenar no container e coloque 0 se o player não puder roubar mana.

.: qntidadedmana -> coloque o tanto de mana que pode ser armazenado no container.

Agora vá em actions.xml (data/actions) e, logo após "<actions>" adicione:

<action itemid="4863" script="ectoplasma.lua" />

<action itemid="4864" script="ectoplasma.lua" />

Agora digite "/reload actions" ou resete seu server.

FlW

CyA!

Editado Julho 8 por frerety

JvchequerJ
08 de julho de 2006 às 06:40

#topic

o.O

muito boa a actions,e muito util tambem ;D

muito util,e pratica.

ta de parabens.

Atenciosamente ,jvchequer

FooxF
08 de julho de 2006 às 09:28

Muito legal!

Adorei cara... muito útil,

Até para roubar alguém xD

Abraços,

Foox

soulblasterS
08 de julho de 2006 às 09:42

Uia... que meuito lokoooo XD

adoro ver actions assim pra aprender um pouko + =]

achei bem util ^^

cya... :bye:

reivR
09 de julho de 2006 às 01:48

Action muito útil e criativa =D

Parabens ae fiko rox

//RaVe_

drakullaD
10 de julho de 2006 às 21:44

@frerety

muito bom o tuto... mas eu queria saber:

-Tem Como Fazer a Pessoa Ganhar ML com isso?

tipow:

doPlayerAddSkillTrY(cid,ML) ??

Atenciosamente,

Drakulla

mikiubeM
12 de julho de 2006 às 00:36

MUITO BOA!!

freretyF
12 de julho de 2006 às 02:04

HiHo!

@drakulla

de acordo com o CVS não existe uma função que altera o Ml do player... para add essa função você precisa saber compilar OtServers... se vc souber e estiver interessado msg me que eu ti doh uma ajuda xD...

FlW

CyA!

Sir PicaralhosS
12 de julho de 2006 às 02:48

Muito legal!E muito criativo!

Agora eu pergunto ah um limite no container?

Bem se não houver porque teria 2 hehe

Ah como limitar?

E outra pergunta ah como fazer mais contair?

acho que só ;D

hauhaua

Faço muitas pergunta =/

hehe

Abraços.

freretyF
12 de julho de 2006 às 11:04

HiHo!

@Sir Picaralhos

Sim... há um limite no container que você pode setar na variável qntidadedmana. Se ele pegar essa quantia de mana, ele transforma no ectoplasma cheio... se não ele fica vazio. Na verdade isso não armazena realmente... Funciona assim: Se ele tirar a mana de um player ou sua, ele se transforma em ectoplasma container cheio... Aih qndo vc der use no ectoplasma cheio já vai adicionar a quantidade de mana que é retirada (ele pega o valor da variável qntidadedemana tbm ^^...`

Para fazer mais containers é só criar o container vazio normalmente... ^^

/i 4863 1

Espero ter ajudado

FlW

CyA!

13 de julho de 2006 às 14:11

Action muitoh criativa continua fazendo esse tipo de actions =]

colexC
19 de julho de 2006 às 21:24

ae, nem tinha visto esta action

fico muito boa, parabens frerety

gostei do seu trabalho, boa imaginação e bem codificado

20 de julho de 2006 às 10:14

Boa Action pena que estou um pouco parado no pc e cançado pra botar no meu ot mias e meu ot e de foot ai nem rola bota ectoplasta.

Tuto:Bem esplicado gostei bom tuto.

GM TavinG
22 de julho de 2006 às 21:40

Veiu quê Loko Oo

Gratz!!

AblankA
24 de julho de 2006 às 12:23

po lek gostei muito fiko d++

vlw msm agora vo poder coloca issu no meu server...e tbm eu concordo com o colex ta bem codificado ;D

//Yours Ablankzin