Ir para conteúdo
  • 0

Item que ao dar use ganhe 10 de magic level (por tempo)


roriscrave

Pergunta

Posts Recomendados

  • 0

N vai mano, se o kra loga e removido pela db.

 

Sim, o que eu quis dizer é que se ele logasse e depois voltasse daria problema, mas me expressei mal.

 

Eu queria um script que não precisava remover o player para retirar o skill adicionado, parece que não da, então esse ai ta de boa!

Tente esse

 

function onUse(cid, item, fromPosition, itemEx, toPosition)
	if getPlayerStorageValue(cid, 129381) < os.time() then
		doPlayerAddMagLevel(cid, 10)
		doSendMagicEffect(getThingPos(cid), 1)
		addEvent(removeSkill, 2 * 60 * 1000, getCreatureName(cid), SKILL__MAGLEVEL, (getPlayerMagLevel(cid) - 10), getPlayerGUID(cid))
		doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você recebeu +10 no skill de Magic Level durante 2 minutos.")
		setPlayerStorageValue(cid, 129381, os.time() + 2 * 60)
	else
		doPlayerSendCancel(cid, "You must wait "..getPlayerStorageValue(cid, 129381) - os.time().." seconds before you can use this again.")
	end
	return true
end

function removeSkill(name, skill, amount, guid)
	local cid = getCreatureByName(name)
	if isCreature(cid) then
		doPlayerAddMagLevel(cid, -10)
	else
		db.executeQuery("UPDATE `player_skills` SET `value` = "..amount.." WHERE `player_id` = "..guid.. " AND `skillid` = "..skill..";")
	end
    return true
end

 

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

  • 0

 

local config = {
ml = 10,
interval = 12
}

function onUse(cid, item, fromPosition, itemEx, toPosition)
local PZ = createConditionObject(CONDITION_INFIGHT)
setConditionParam(PZ, CONDITION_PARAM_TICKS, config.interval*10000)
local SKILL= createConditionObject(CONDITION_ATTRIBUTES)
setConditionParam(SKILL, CONDITION_PARAM_STAT_MAGICLEVEL, config.ml)

if getCreatureCondition(cid, CONDITION_ATTRIBUTES) then
doPlayerSendCancel(cid,"seu magic level aumentou 10!")
else
doAddCondition(cid, PZ)
doAddCondition(cid, SKILL)
addEvent(magicadd, 1000, cid, config.interval*10)
doRemoveItem(item.uid, 1)
end
return TRUE
end 


function magicadd(tid, rep)
local nb = getCreaturePosition(tid) 
rep = rep - 1
if rep > 0 then
addEvent(magicadd, 1000, tid, rep)
doSendMagicEffect(nb,31)
doPlayerSendCancel(tid,"Seu magic level ira descer em "..rep.." segundos." )
end
end 

 

Peguei um script do Adriano swatt e modifiquei n sei se vai funcionar pois nao sou bom em scripts.

Link para o comentário
Compartilhar em outros sites

  • 0

caso o dele n funcione...
se der erro reporta

 

actions.xml

    <action itemid="ITEMX" event="script" value="addml.lua"/>

addml.lua

local condition = createConditionObject(CONDITION_ATTRIBUTES)
setConditionParam(condition, CONDITION_PARAM_TICKS, 60000)
setConditionParam(condition, CONDITION_PARAM_STAT_MAGICLEVEL, 10)

function onUse(cid, item, frompos, item2, topos)
if getPlayerStorageValue(cid, 750) < os.time() then
if(isInArray({1,5,2,6}, getPlayerVocation(cid)) == TRUE) then--vocaçoes
var = numberToVariant(cid)
doTargetCombatCondition(0, cid, condition, CONST_ME_MAGIC_RED)
setPlayerStorageValue(cid, 750, os.time() + 2 * 60)
else
doPlayerSendCancel(cid, "Voce precisa esperar "..getPlayerStorageValue(cid, 750) - os.time().." segundos antes de usar isso novamente.")
end
end
return true
end
Editado por alissonfgp
Link para o comentário
Compartilhar em outros sites

  • 0

Alisson, o jogador da use e ganha 10 de magic, so que ao dar use novamente não aparece a mensagem negando:

doPlayerSendCancel(cid, "Voce precisa esperar "..getPlayerStorageValue(cid, 750) - os.time().." segundos antes de usar isso novamente.")

além disso a storage (750) não esta zerando, ou seja ele so pode usar 1x

Link para o comentário
Compartilhar em outros sites

  • 0

testa esse...

 

local condition = createConditionObject(CONDITION_ATTRIBUTES)
setConditionParam(condition, CONDITION_PARAM_TICKS, 120000)
setConditionParam(condition, CONDITION_PARAM_STAT_MAGICLEVEL, 10)

local config = {
exhausttime = 1200, -- time in seconds
exhaustion = 760
}

function onUse(cid, item, fromPosition, itemEx, toPosition)
    if(exhaustion.check(cid, 760) == false) then
    if(isInArray({1,5,2,6}, getPlayerVocation(cid)) == TRUE) then--vocaçoes
        var = numberToVariant(cid)
        doTargetCombatCondition(0, cid, condition, CONST_ME_MAGIC_RED)
        doCreatureSay(cid, "Agora voce so pode usar este item apos 2 minutos.", TALKTYPE_ORANGE_1)
        exhaustion.set(cid, 760, 120)
        end
    end
    return true
end
Link para o comentário
Compartilhar em outros sites

  • 0

Um monte de gente tentou, tentou e não resolveu o pedido do cara.

local condition = createConditionObject(CONDITION_ATTRIBUTES)
setConditionParam(condition, CONDITION_PARAM_TICKS, 2 * 60 * 1000)
setConditionParam(condition, CONDITION_PARAM_STAT_MAGICLEVEL, 10)
setConditionParam(condition, CONDITION_PARAM_BUFF, true)
setConditionParam(condition, CONDITION_PARAM_SUBID, 101)

function onUse(cid, item, fromPosition, itemEx, toPosition)
	if getCreatureCondition(cid, CONDITION_ATTRIBUTES, 101) then
		return doPlayerSendCancel(cid, "Você já usou o item, aguarde o efeito acabar.")
	end
	
	doSendMagicEffect(fromPosition, CONST_ME_MAGIC_GREEN)
	return doAddCondition(cid, condition)
end

Sério, hilário, um corrigindo o outro e fazendo a mesma cagada de usar querys num bagulho desse (HUE HUE) icon_lol.gif

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

×
×
  • Criar Novo...