SO

[Action] Pergaminho De Elementos

Por Sofft, 25 de abr. de 2012 em Scripts

script
11
1.3k
SofftS
25 de abril de 2012 às 12:53

Versão:8.60

Distro:TFS 0.4

Mapa:Global

 

O script que estava querendo desenvolver é o seguinte:

'Ha veria um pergaminho para cada elemento (energy,fire,ice,earth,holy,death), e ao clicar em um deles, o player iria ganhar um incremento no poder do respectivo elemento, e não poderia usar mais de um pergaminho por vez.'

 

Ex: Um sorcerer ao clicar no 'energy parchement' por exemplo, seu exori vis, exevo gran vis lux, exevo gran mas vis, teriam um acréssimo no dano.

 

Deu para entender?, na verdade eu sei fazer o script todo, so não conheço uma função que aumente o dano, e nem sei se existe, se alguem souber ficaria grato.

 

Até...

caoticC
25 de abril de 2012 às 13:04

voce pode mandar uma storage e na spells que quiser verifica storage e manda um dano adicional

Eu ate posso fazer isso para vc manda o ids dos pergaminhos

e as spells.

SofftS
25 de abril de 2012 às 13:12

Essa spell por exemplo:

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_ENERGYHIT)
setAttackFormula(combat, COMBAT_FORMULA_LEVELMAGIC, 5, 5, 2.5, 4)
local area = createCombatArea(AREA_BEAM4, AREADIAGONAL_BEAM4)
setCombatArea(combat, area)
function onCastSpell(cid, var)
return doCombat(cid, combat, var)
end

você está dizendo pra mim alterar ela pra ficar assim?

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_ENERGYHIT)
if getPlayerStorageValue(cid, exemplo) == 1 then
      setAttackFormula(combat, COMBAT_FORMULA_LEVELMAGIC, 5, 5, 5, 8)
else
      setAttackFormula(combat, COMBAT_FORMULA_LEVELMAGIC, 5, 5, 2.5, 4)
end
local area = createCombatArea(AREA_BEAM4, AREADIAGONAL_BEAM4)
setCombatArea(combat, area)
function onCastSpell(cid, var)
return doCombat(cid, combat, var)
end

Editado Abril 25 por Sofft

caoticC
25 de abril de 2012 às 13:17

sim assim da um dano ao dobro vericando uma storage.

 

ou se preferir voce coloca uma storage verifica ai se tiver a storage coloca um * e quanto que multilica tipo 2 para dobrar a ataque

SofftS
25 de abril de 2012 às 13:18

blz vo tentar aki, mas onde que altera a forca ali certin, eu sei n, é ultimo valor?

caoticC
25 de abril de 2012 às 13:34

Voce esta começando aconselho fazer suas spells em progrmas como OTSERVSCRIPTLIVE!

SofftS
25 de abril de 2012 às 13:41

não mas tipo, é só pra fazer isso, ai onde mudo o valor da força?

 

e a action quando o player clicar no pergaminho, quero que ele fique com essa storage por 30 minutos, como faço isso?

adicionando um evento? tem como fazer essa action pra mim com um ID qualquer?

ja te dei rep+

caoticC
25 de abril de 2012 às 13:54

olha para retirar a storage por 30 minutos

addEvent(setPlayerStorageValue, tempo*300000, cid, 22222, -1)

 

Isso ai cara e facil ^^

1 mês depois...
KoamaK
16 de maio de 2012 às 10:55

Tópico resolvido, reportado para moverem para Dúvidas/Pedidos Sanados.

HisashiitYamagutiH
16 de maio de 2012 às 11:02

Tópico movido para a área de Dúvidas/Pedidos Sanados Otserv Scripting, pois provavelmente a dúvida foi sanada.

VodkartV
16 de maio de 2012 às 12:41

olha para retirar a storage por 30 minutos

addEvent(setPlayerStorageValue, tempo*300000, cid, 22222, -1)

 

Isso ai cara e facil ^^

ressaltando que não precisa usar addEvent, bastava usar os.time() + storage