Ir para conteúdo

[Actions]Potion Com Cargas.


tyuahoi

Posts Recomendados

Olá

 

 

Percebi Que Muita Gente Esta Procurando Tutoriais De Como COlocar Suas Potion Com Carga.

 

 

Entao, Vamos ao Trabalho.

 

1º Passo.

 

Vá Até data\actions\scripts\liquids

 

Abra O: potions.lua

 

Apague Tudo Que Aver Dentro E Cole Isso:

 

local config = {
realAnimation = true, -- make text effect visible only for players in range 1x1
healthMultiplier = 1.0,
manaMultiplier = 1.0
}

local POTIONS = {
[8704] = {charges = 100, splash = 2, health = {50, 100}}, -- small health potion
[7618] = {charges = 100, splash = 2, health = {100, 200}}, -- health potion
[7588] = {charges = 100, splash = 2, health = {200, 400}, level = 50, vocations = {3, 4, 7, 8, 12, 11}, vocStr = "knights and paladins"}, -- strong health potion
[7591] = {charges = 100, splash = 2, health = {500, 700}, level = 80, vocations = {4, 8, 12}, vocStr = "knights"}, -- great health potion
[8473] = {charges = 100, splash = 2, health = {800, 1000}, level = 130, vocations = {4, 8, 12}, vocStr = "knights"}, -- ultimate health potion

[7620] = {charges = 100, splash = 7, mana = {70, 130}}, -- mana potion
[7589] = {charges = 100, splash = 7, mana = {110, 190}, level = 50, vocations = {1, 2, 3, 5, 6, 7, 9, 10, 11}, vocStr = "sorcerers, druids and paladins"}, -- strong mana potion
[7590] = {charges = 100, splash = 7, mana = {200, 300}, level = 80, vocations = {1, 2, 5, 6, 9, 10}, vocStr = "sorcerers and druids"}, -- great mana potion

[8472] = {charges = 100, splash = 3, health = {200, 400}, mana = {110, 190}, level = 80, vocations = {3, 7, 11}, vocStr = "paladins"} -- great spirit potion
}

local exhaust = createConditionObject(CONDITION_EXHAUST)
setConditionParam(exhaust, CONDITION_PARAM_TICKS, (getConfigInfo('timeBetweenExActions') - 100))

function onUse(cid, item, fromPosition, itemEx, toPosition)
local potion = POTIONS[item.itemid]
if(not potion or not isPlayer(itemEx.uid)) then
	return false
end

if(hasCondition(cid, CONDITION_EXHAUST_HEAL)) then
	return doPlayerSendDefaultCancel(cid, RETURNVALUE_YOUAREEXHAUSTED)
end

if(((potion.level and getPlayerLevel(cid) < potion.level) or (potion.vocations and not isInArray(potion.vocations, getPlayerVocation(cid)))) and not getPlayerCustomFlagValue(cid, PlayerCustomFlag_GamemasterPrivileges)) then
	return doCreatureSay(itemEx.uid, "Only " .. potion.vocStr .. (potion.level and (" of level " .. potion.level) or "") .. " or above may drink this fluid.", TALKTYPE_ORANGE_1)
end

local health = potion.health
if(health and not doCreatureAddHealth(itemEx.uid, math.ceil(math.random(health[1], health[2]) * config.healthMultiplier))) then
	return false
end

local mana = potion.mana
if(mana and not doPlayerAddMana(itemEx.uid, math.ceil(math.random(mana[1], mana[2]) * config.manaMultiplier))) then
	return false
end

doSendMagicEffect(getThingPos(itemEx.uid), CONST_ME_MAGIC_BLUE)
if(not realAnimation) then
	doCreatureSay(itemEx.uid, "Aaaah...", TALKTYPE_ORANGE_1)
else
	for i, tid in ipairs(getSpectators(getCreaturePosition(cid), 1, 1)) do
		if(isPlayer(tid)) then
			doCreatureSay(itemEx.uid, "Aaaah...", TALKTYPE_ORANGE_1, false, tid)
		end
	end
end

doAddCondition(cid, exhaust)

doItemSetAttribute(item.uid, 'aid', math.max(101, item.actionid + 1))
doItemSetAttribute(item.uid, 'description', 'Charges: ' .. 100 + potion.charges - getItemAttribute(item.uid, 'aid'))
if item.actionid >= 100 + potion.charges then
	doRemoveItem(item.uid)
end
return true
end

 

Salve E Feche.

 

 

 

2º passo.

 

Va Até: data\items

 

Abra O items.xml

 

procure por:

 

- Great Mana Potion.

 

- Great Health Potion.

 

- Great Spirit Potion.

 

- Ultimate Health Potion.

 

- Strong Mana Potion.

 

- Strong Health Potion.

 

- Mana Potion.

 

- Heath potion.

 

Acresente essas Linhas Nas Potions.

 

Após:

<attribute key="weight" value="220" />

De Cada Potion.

 

Acresente Isso:

 

<attribute key="charges" value="100"/>
<attribute key="showCharges" value="1"/>

 

Caso Voçe Queira Mudar O peso Dela Basta Editar Está Linha:

 

<attribute key="weight" value="220"

220 = 2.20

 

Ainda Nao Esta 100%

 

Mais ja Ajuda.

 

 

Como vai Funcionar?

 

So Ira Aparecer as Charges Quando Voce Der Look Na Potion.

 

Estou Trabalhando para Aparecer na Potion, Assim Que Terminar Atualizo Aqui.

 

Exemplos.

 

 

Look Potion Antes De Usar:

 

You see a great mana potion that has 100 charges left.

It weighs 2.20 oz.

This potion can only be consumed by sorcerers and druids of level 80 or higher.

 

Após Usar 1 Vez:

 

You see a great mana potion that has 100 charges left.

It weighs 2.20 oz.

Charges: 99.

 

 

Espero Que tenham Gostado.

 

 

 

Abraço!

Editado por 1tyi
Link para o comentário
Compartilhar em outros sites

1tyi - Parabens mas quer ficar com o nome no credito do meu otserv kreuus? fais isso pra mim e muito confuso entre em contato com migo Kreuusot@hotmail.com

Link para o comentário
Compartilhar em outros sites

Use Esse Script Para QUem Kiser Que Fike COm Empty POtion Após o Uso.

 

local config = {
removeOnUse = "no",
splashable = "no",
realAnimation = "no", -- make text effect visible only for players in range 1x1
healthMultiplier = 1.0,
manaMultiplier = 1.0
}

config.removeOnUse = getBooleanFromString(config.removeOnUse)
config.splashable = getBooleanFromString(config.splashable)
config.realAnimation = getBooleanFromString(config.realAnimation)

local POTIONS = {
[8704] = {empty = 7636, splash = 2, health = {50, 100}}, -- small health potion
[7618] = {empty = 7636, splash = 2, health = {100, 200}}, -- health potion
[7588] = {empty = 7634, splash = 2, health = {200, 400}, level = 50, vocations = {3, 4, 7, 8, 12, 11}, vocStr = "knights and paladins"}, -- strong health potion
[7591] = {empty = 7635, splash = 2, health = {500, 700}, level = 80, vocations = {4, 8, 12}, vocStr = "knights"}, -- great health potion
[8473] = {empty = 7635, splash = 2, health = {800, 1000}, level = 130, vocations = {4, 8, 12}, vocStr = "knights"}, -- ultimate health potion

[7620] = {empty = 7636, splash = 7, mana = {70, 130}}, -- mana potion
[7589] = {empty = 7634, splash = 7, mana = {110, 190}, level = 50, vocations = {1, 2, 3, 5, 6, 7, 9, 10, 11}, vocStr = "sorcerers, druids and paladins"}, -- strong mana potion
[7590] = {empty = 7635, splash = 7, mana = {200, 300}, level = 80, vocations = {1, 2, 5, 6, 9, 10}, vocStr = "sorcerers and druids"}, -- great mana potion

[8472] = {empty = 7635, splash = 3, health = {200, 400}, mana = {110, 190}, level = 80, vocations = {3, 7, 11}, vocStr = "paladins"} -- great spirit potion
}

local exhaust = createConditionObject(CONDITION_EXHAUST)
setConditionParam(exhaust, CONDITION_PARAM_TICKS, (getConfigInfo('timeBetweenExActions') - 100))

function onUse(cid, item, fromPosition, itemEx, toPosition)
local potion = POTIONS[item.itemid]
if(not potion) then
	return false
end

if(not isPlayer(itemEx.uid)) then
	if(not config.splashable) then
		return false
	end

	if(toPosition.x == CONTAINER_POSITION) then
		toPosition = getThingPos(item.uid)
	end

	doDecayItem(doCreateItem(2016, potion.splash, toPosition))
	doTransformItem(item.uid, potion.empty)
	return true
end

if(hasCondition(cid, CONDITION_EXHAUST_HEAL)) then
	doPlayerSendDefaultCancel(cid, RETURNVALUE_YOUAREEXHAUSTED)
	return true
end

if(((potion.level and getPlayerLevel(cid) < potion.level) or (potion.vocations and not isInArray(potion.vocations, getPlayerVocation(cid)))) and
	not getPlayerCustomFlagValue(cid, PlayerCustomFlag_GamemasterPrivileges))
then
	doCreatureSay(itemEx.uid, "Only " .. potion.vocStr .. (potion.level and (" of level " .. potion.level) or "") .. " or above may drink this fluid.", TALKTYPE_ORANGE_1)
	return true
end

local health = potion.health
if(health and not doCreatureAddHealth(itemEx.uid, math.ceil(math.random(health[1], health[2]) * config.healthMultiplier))) then
	return false
end

local mana = potion.mana
if(mana and not doPlayerAddMana(itemEx.uid, math.ceil(math.random(mana[1], mana[2]) * config.manaMultiplier))) then
	return false
end

doSendMagicEffect(getThingPos(itemEx.uid), CONST_ME_MAGIC_BLUE)
if(not realAnimation) then
	doCreatureSay(itemEx.uid, "Aaaah...", TALKTYPE_ORANGE_1)
else
	for i, tid in ipairs(getSpectators(getCreaturePosition(cid), 1, 1)) do
		if(isPlayer(tid)) then
			doCreatureSay(itemEx.uid, "Aaaah...", TALKTYPE_ORANGE_1, false, tid)
		end
	end
end

doAddCondition(cid, exhaust)
if(not potion.empty or config.removeOnUse) then
	doRemoveItem(item.uid)
	return true
end

local aidd = 
{
 min = 10901,
  max = 10911
   }
    if item.actionid < aidd.min then
     doItemSetAttribute(item.uid, "aid", aidd.min)
      elseif item.actionid >= aidd.min and item.actionid <= aidd.max then
     doItemSetAttribute(item.uid, "aid", getItemAttribute(item.uid, "aid")+1)
    elseif item.actionid >= aidd.max then
   doTransformItem(item.uid, potion.empty)
  return TRUE
 end
return true
end

 

 

Esse Script Está Com 10 Cargas Cada Potion Voçe Pode Mudar alterando essa linha:

 

max = 10911

 

 

Pronto.

 

 

Esse Script Que Acabei De CItar Nao é Meu!

 

Creditos:

 

Kiman

Editado por 1tyi
Link para o comentário
Compartilhar em outros sites

sim é bom e talz

mas infelizmente fez a potion ficar infinita

(ou é alguma config minha?)

e por incrivel q pareça minha strong mana potion NAO FUNCIONA tenso :s

(mas isso é problema velho aqui)

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...