-
Total de itens
27 -
Registro em
-
Última visita
-
Dias Ganhos
2
Histórico de Curtidas
-
Tottin recebeu reputação de Lisbeky em (Resolvido)Setar storage para todos em uma determinada área
Resolvendo seu problema onde ao matar o monstro só quem fragava recebia o storage:
local tps = {
["hyaena"] = {pos = {x=349, y=1103, z=15}, toPos = {x = 518, y = 840, z = 7}, time = 10, storage = 46000},
}
local storage = 46000
local function removeTp(tp)
local t = getTileItemById(tp.pos, 5023).uid
return t > 0 and doRemoveItem(t) and doSendMagicEffect(tp.pos, CONST_ME_POFF)
end
function onDeath(cid, corpse, deathList, frompos, topos)
local tp = tps[getCreatureName(cid)]
if tp then
doCreateTeleport(5023, tp.toPos, tp.pos)
doCreatureSay(cid, "O teleport irá sumir em "..tp.time.." segundos.", TALKTYPE_ORANGE_1)
addEvent(removeTp, tp.time*1000, tp)
for _, check in pairs(deathList) do
if isPlayer(check) then
setPlayerStorageValue(check, tp.storage, 5)
end
end
end
return true
end
registra no creaturescripts:
<event type="death" name="Storage" event="script" value="seuarquivo.lua"/>
registra no arquivo.xml do boss:
<script>
<event name="Storage"/>
</script>
-
Tottin recebeu reputação de Zazeros em (Resolvido)Spell de dano baseado no shield
Isso tudo vai variar da forma com que você quer fazer seu script, sua dúvida principal era sobre como trabalhar em cima da defesa do shield. E isso como mencionei acima pode ser feito da seguinte forma, utilizando a função:
getItemAttribute(uid,'defense')
Pra checar se o item é 1 shield, você pode utilizar uma função que o mock disponibilizou já faz um bom tempo:
local function isShield(uid) -- Function by Mock the bear.
uid = uid or 0
if getItemWeaponType(uid) == 5 then
return true
end
return false
end
Com isso você vai ter todas informações necessárias pra fazer seu script trabalhar em cima da defesa do shield que estiver equipado, e claro vai poder checar se o item que você está "pegando" a defesa, é de fato um shield ou não.
-
Tottin recebeu reputação de L3K0T em (Resolvido)GlobalEvent criar item no mapa
Cara vou te passar um código que fiz pra 0.4, deve funcionar pra 0.36 também:
código lua:
local config = {
itemid = 1451,
itemid2 = 1451,
itemid3 = 1451,
pos = {x=718, y=1534, z=10},
pos2 = {x= 107, y=1507, z=8},
pos3 = {x= 111, y=1507, z=8},
chance = 50
}
function onTime(interval)
if config.chance >= math.random(1, 100) then
doBroadcastMessage("Os items X Y Z foram spawnados!") --- Caso queira que mande uma mensagem pra todos players online, ja deixei pronto.
doCreateItem(config.itemid, 1, config.pos)
doCreateItem(config.itemid1, 1, config.pos2)
doCreateItem(config.itemid2, 1, config.pos3)
end
return true
end
tag no xml:
<globalevent name="nomedoevento" time="04:05:00" event="script" value="nomedoarquivo.lua"/>
-
Tottin recebeu reputação de Senju uchira em script para arma double hit
Provavelmente ta dando erro pela versão de seu servidor. Se ainda tiver precisando disso, testa desta forma:
Troca esta linha:
target:say("!DOUBLEHIT", TALKTYPE_MONSTER_SAY) ,<<<<<<<<<<<<<<<<<<<<<
por esta:
doCreatureSay(target, "DOUBLE HIT", 19)
-
Tottin recebeu reputação de Senju uchira em script para arma double hit
Vou te mandar a script que uso em meu servidor, com o texto adicionado já, possivelmente deve resolver seu problema, segue a script:
local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_BLOCKARMOR, 1)
setCombatParam(combat, COMBAT_PARAM_BLOCKSHIELD, 1)
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatFormula(combat, COMBAT_FORMULA_SKILL, 1.0, 0, 1.0, 0)
function onUseWeapon(cid, var)
local chance = 20
if chance <= math.random(1,100) then
doCombat(cid, combat, var)
else
doCreatureSay(cid, "DOUBLE HIT", 19)
doCombat(cid, combat, var)
addEvent(doCombat, 500, cid, combat, var)
end
return true
end
-
Tottin recebeu reputação de Senju uchira em preciso de ajuda com um script que tenho
Exatamente, a primeira parte é pra "registrar as posições do efeito" (isso dentro da tabela), na segunda parte é onde a script vai trabalhar em cima dessas posições pra executar o efeito na posição desejada. Basta trocar esta linha do seu script:
addEvent(doAreaCombatHealth, 100, cid, wx.dmg, getThingPos(target), 0, -min, -max, wx.ef) por estas duas:
local pos = {x = getThingPos(target).x + (wx.posx), y = getThingPos(target).y + (wx.posy), z = getThingPos(target).z} -- Aqui vai trabalhar em cima das posições definidas la na tabela. addEvent(doAreaCombatHealth, 100, cid, wx.dmg, pos, 0, -min, -max, wx.ef) -- E aqui vai aplicar o efeito na posição final. -
Tottin recebeu reputação de Lurk em [Ajuda] função onDeath
Se você quer trabalhar somente com o player que pegou o loot você pode utilizar a função da seguinte forma:
function onDeath(cid, corpse, lastHitKiller, mostDamageKiller)
local killer = lastHitKiller[1] --- a atribuição em uma variável do player que pegou o frag é totalmente opcional.
Dai caso queira realizar alguma ação em cima desse player pode fazer da seguinte forma:
if isPlayer(killer) then --- Não lembro ao certo se tem monstros entram na lista (lastHitKiller) então só por precaução eu recomendaria fazer uma checagem se quem fragou é 1 player.
doPlayerAddItem(killer, 13981, 1)
end
-
Tottin recebeu reputação de WooX em [Ajuda] função onDeath
Se você quer trabalhar somente com o player que pegou o loot você pode utilizar a função da seguinte forma:
function onDeath(cid, corpse, lastHitKiller, mostDamageKiller)
local killer = lastHitKiller[1] --- a atribuição em uma variável do player que pegou o frag é totalmente opcional.
Dai caso queira realizar alguma ação em cima desse player pode fazer da seguinte forma:
if isPlayer(killer) then --- Não lembro ao certo se tem monstros entram na lista (lastHitKiller) então só por precaução eu recomendaria fazer uma checagem se quem fragou é 1 player.
doPlayerAddItem(killer, 13981, 1)
end
-
Tottin recebeu reputação de Mor3nao em Resistencia temporaria
Isso, a forma como você vai aplicar a script no jogo vai de sua imaginação, basta por 1 checagem de storage antes desta linha:
if combat == COMBAT_PHYSICALDAMAGE then
e sim é 1 creaturescript, a tag xml seria +ou- isto:
<event type="statschange" name="Nomedoevento" event="script" value="nomedoarquivo.lua"/>
-
Tottin recebeu reputação de LeoTK em [DOAÇÃO] Algumas sprites atualizadas para NTO
Na verdade essas sprites são do meu servidor: NTO Falcon.
Não me importo que postem até por que não dá pra evitar que roubem sprites hoje em dia. Mas coloca os créditos do servidor que foi retirado. Nem todas são sprites originais de meu servidor porém em média de 80% são.