Ir para conteúdo
  • 0

Weapon Charges


Rumplestiltiskin

Pergunta

Boa tarde galera, vim aqui hoje pedir um script que estou precisando, se alguém puder me ajudar ficaria muito grato e Rep +++. Ele funciona assim:

 

-Será uma weapon, ou melhor, uma wand, que gasta não mana, mas sim um carga imaginária que pode ser recarregada ao usar certo item...

 

exemplo:

 

"Pote das almas perdidas" - O player, quando equipado com este item na hand, começa a atacar como uma wand, e cada hit consome uma Alma, o pote pode ter até 1000 almas, e para recarregá-las precisa dar use em um certo item.

Se possível, para completar o script, poderiam colocar para a arma dar um pequeno slow a cada hit ?

 

Me ajudem, por favor...

 

Boa tarde dnv :D

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

12 respostass a esta questão

Posts Recomendados

  • 0

o zipter e eu fizemos esse daqui pra wand:

 

local config = {
slowpercent = 0.5, -- use values between [0-1]
slowtime = 5, -- 5 seconds of slow after each hit
combattype = COMBAT_ENERGYDAMAGE, -- combat type
mindamag = 30, -- min damage
maxdamag = 50, -- max damage
effect = 4 -- distance effect 
}

local condition = createConditionObject(CONDITION_PARALYZE)
setConditionParam(condition, CONDITION_PARAM_TICKS, 1000 * config.slowtime)
setConditionFormula(condition, -(config.slowpercent), 0, -(config.slowpercent), 0)

        
function onUseWeapon(cid, var)
    local w = getPlayerWeapon(cid).uid
    if not w then return true end
	
    local charges = getItemAttribute(w, "soul_charges") or 0
    if charges < 1 then return doPlayerSendCancel(cid, "You're not attacking cause you don't have any charge.") and false end
    
    doItemSetAttribute(w, "soul_charges", charges - 1)
	doItemSetAttribute(w, "description", "[Soul Charges: ".. charges - 1 .."]")
    doAddCondition(variantToNumber(var), condition)
	doTargetCombatHealth(cid, variantToNumber(var), config.combattype, -(config.mindamag), -(config.maxdamag), 255)
	doSendDistanceShoot(getCreaturePosition(cid), getCreaturePosition(variantToNumber(var)), config.effect)
    return true
end

 



e no weapons.xml:

<wand id="2190" level="7" event="script" value="mace.lua"> <!-- Wand of Vortex -->
<vocation id="1"/>
</wand>


Pra recarregar tem que fazer uma action que ao clicar na wand e clicar na areia (usa itemEx.itemid pra verificar se o id do segundo item que deu use With tá dentro de um array pré definido de chãos que são possiveis de recarregar sua wand)

Link para o comentário
Compartilhar em outros sites

  • 0

zipter, me chama no skype e vamo discutir esse código aí.. eu pensei em várias maneiras de fazer mas nenhuma que fosse eficiente :( eu tive uma ótima ideia pra fazer de forma eficiente mas rodei uns testes ontem e aparentemente não deu certo.

Link para o comentário
Compartilhar em outros sites

  • 0

Opa, eu sou o Rumplestiltiskin, acontece que queria mudar meu nome mas não sabia como kk

 

Então, o item não sumiria, pois queria colocá-lo em tiles, especificamente areia, e nem teria um cooldown para recarregar pois ao clicar uma vez recarregaria todas as cargas, só deveria ter uma verificação para ver se o pote já está cheio, assim mandando aquela mensagem "Sorry, not possible" como se estivesse clicando em algo qualquer.

Link para o comentário
Compartilhar em outros sites

  • 0

Obrigado pelo Script !

 

Esse action aí vai ser meio complicado pra mim, ainda estou iniciando, mas vou tentar.

 

Se não for pedir muito, será que poderiam colocar o look do item mostrando as cargas ? Ou colocar para mostrar quantas cargas tem a cada hit (como uma runa) ?

 

Mesmo assim já agradeço pela primeira parte :D Rep+ pros 2...

 

Link para o comentário
Compartilhar em outros sites

  • 0

Ja tem no look..

 

doItemSetAttribute(w, "description", "[Soul Charges: ".. charges - 1 .."]")
Se ngm fizer a action até hj a noite, eu tento tirar um tempo pra fazer

 

 

Perdoe-me por não ter lido o script direito.

 

Fiz o action aqui, poderiam ver se está certo ?

 

local config = {
	sands = {4614, 4615, 4616, 4617, 4618, 4619, 4620, 4621, 4622, 4623, 4624, 4625, 4665, 4666, 4820, 4821, 4822, 4823, 4824, 4825},

function onUse(cid, item, fromPosition, itemEx, toPosition)
	if(isInArray(config.sands, itemEx.itemid)) then
		doSendMagicEffect(toPosition, CONST_ME_LOSEENERGY)
		doItemSetAttribute(w, "soul_charges", 1000)
		doItemSetAttribute(w, "description", "[Soul Charges: ".. 1000 .."]")
		return true

	else
		doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTPOSSIBLE)
	end
end

Esses ids das sands estão errados, estes são ids de Water, porque peguei como base o script do Fishing e estava com preguiça de procurar todos os sands...

Link para o comentário
Compartilhar em outros sites

  • 0

desse jeito q tá ele só vai funcionar se vc der use with na wand e clicar num dos ids que tá dentro de config.sands, e aí no actions.xml vc bota o id da wand vinculado com esse script aqui

local config = {
	sands = {4614, 4615, 4616, 4617, 4618, 4619, 4620, 4621, 4622, 4623, 4624, 4625, 4665, 4666, 4820, 4821, 4822, 4823, 4824, 4825}
	}

function onUse(cid, item, fromPosition, itemEx, toPosition)
	if(isInArray(config.sands, itemEx.itemid)) then
		doSendMagicEffect(toPosition, CONST_ME_LOSEENERGY)
		doItemSetAttribute(item.uid, "soul_charges", 1000)
		doItemSetAttribute(item.uid, "description", "[Soul Charges: ".. 1000 .."]")
		return true
	else
		doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTPOSSIBLE)
	end
end
Link para o comentário
Compartilhar em outros sites

  • 0

 

desse jeito q tá ele só vai funcionar se vc der use with na wand e clicar num dos ids que tá dentro de config.sands, e aí no actions.xml vc bota o id da wand vinculado com esse script aqui

local config = {
	sands = {4614, 4615, 4616, 4617, 4618, 4619, 4620, 4621, 4622, 4623, 4624, 4625, 4665, 4666, 4820, 4821, 4822, 4823, 4824, 4825}
	}

function onUse(cid, item, fromPosition, itemEx, toPosition)
	if(isInArray(config.sands, itemEx.itemid)) then
		doSendMagicEffect(toPosition, CONST_ME_LOSEENERGY)
		doItemSetAttribute(item.uid, "soul_charges", 1000)
		doItemSetAttribute(item.uid, "description", "[Soul Charges: ".. 1000 .."]")
		return true
	else
		doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTPOSSIBLE)
	end
end

A sim, eu sei que tem que por a tag, só não mencionei no post acima...

 

Obrigado por corrigir os erros ! Podem marcar o pedido como resolvido :D

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...