IrapuanPuan 3 Postado Janeiro 5, 2010 Share Postado Janeiro 5, 2010 A idéia é o seguinte: Quando a pessoa utilizar um dos itens do portal gem, criará um efeito em sua frente e todos os jogadores que entrarem serão teleportados para um local pré-determinado. na pasta data/actions, coloque isso no arquivo actions.xml: <action itemid="2156" script="gems.lua"/> <action itemid="2158" script="gems.lua"/> <action itemid="2155" script="gems.lua"/> <action itemid="2153" script="gems.lua"/> depois, na pasta data/actions/script, crie um arquivo lua novo, renomeie para gems.lua, e coloque isso dentro: local mensagens = { ['blocked'] = "Você não pode usar esse item.", ['pzed'] = "Você não pode usar esse item em protection zone.", ['usingInCreature'] = "Você não pode usar esse item.", ['alreadUsing'] = "Você já está usando um elemental gate.", ['noMana'] = "Você não tem mana points suficientes para usar esse item.", ['noSoul'] = "Você não tem soul points suficientes para usar esse item." } local config = { dist = 1, intervalo = 750, efeito = {[2156] = 6, [2153] = 41, [2158] = 37, [2155] = 45}, vezes = 15, mana = 300, soul = 30, actionID = {[2156] = 3001, [2153] = 3002, [2158] = 3003, [2155] = 3004}, storage = 3001 } function onUse(cid, item, fromPosition, itemEx, toPosition) local pos = getThingPos(cid) local dir = getPlayerLookDir(cid) local p = {math.fmod(dir,2)*(-(dir-2)),(dir-1)*(dir-1-(dir-1)*math.abs(dir-2))} local newPos = {x=pos.x+(p[1])*config.dist,y=pos.y+(p[2])*config.dist,z=pos.z} newPos.stackpos = 0 local aid = getThingFromPos(newPos).actionid -- Verificar Erros if getCreatureMana(cid) < config.mana then doPlayerSendCancel(cid, mensagens['noMana']) return FALSE end if getPlayerSoul(cid) < config.soul then doPlayerSendCancel(cid, mensagens['noSoul']) return FALSE end if isCreature(getTopCreature(newPos).uid) == 1 and getPlayerAccess(cid) < 2 then doPlayerSendCancel(cid, mensagens['usingInCreature']) return FALSE end if isWalkable(newPos) == FALSE and getPlayerAccess(cid) < 2 then doPlayerSendCancel(cid, mensagens['blocked']) return FALSE end if (getTilePzInfo(newPos) == TRUE or getTilePzInfo(getThingPos(cid)) == TRUE) and getPlayerAccess(cid) < 2 then doPlayerSendCancel(cid, mensagens['pzed']) return FALSE end if getPlayerStorageValue(cid, config.storage) > 0 and getPlayerAccess(cid) < 2 then doPlayerSendCancel(cid, mensagens['alreadUsing']) return FALSE end doCreatureAddMana(cid, config.mana * (-1)) doPlayerAddSpentMana(cid, config.mana * (-1)) doPlayerAddSoul(cid, config.soul * (-1)) doRemoveItem(item.uid) if doTileQueryAdd(cid, newPos) == 1 then setPlayerStorageValue(cid, config.storage, 1) doSetItemActionId(getThingFromPos(newPos).uid, config.actionID[item.itemid]) doLoopEffect(cid, newPos, aid, config.efeito[item.itemid], 1) end return TRUE end function doLoopEffect(cid, pos, aid, effect, times) doSendMagicEffect(pos, effect) times = times + 1 if times < config.vezes then addEvent(doLoopEffect, config.intervalo, cid, pos, aid, effect, times) else doSetItemActionId(getThingFromPos(pos).uid, aid) setPlayerStorageValue(cid, config.storage, 0) end end function isWalkable(pos) -- Version by Pivigu local thing = getTileThingByPos({x=pos.x, y=pos.y, z=pos.z, stackpos = 0}) local points = 0 if thing.uid ~= 0 and hasProperty(thing.uid, 3) == FALSE and hasProperty(thing.uid, 7) == FALSE then for i = 1, 2 do thing = getTileThingByPos({x=pos.x, y=pos.y, z=pos.z, stackpos = i}) if thing.uid == 0 or (hasProperty(thing.uid, 3) == FALSE and hasProperty(thing.uid, 7) == FALSE) then points = points + 1 end end end if points > 1 then return TRUE end return FALSE end logo apos em data/movements, coloque isso no arquivo movements.xml: <movevent event="StepIn" actionid="3001" script="gems.lua"/> <movevent event="StepIn" actionid="3002" script="gems.lua"/> <movevent event="StepIn" actionid="3003" script="gems.lua"/> <movevent event="StepIn" actionid="3004" script="gems.lua"/> logo após entre na pasta data/movements/scripts, crie um arquivo lua novo, renomeie para gems.lua, e coloque isso dentro local area = { [color="#800080"][3001] = {x=152,y=100,z=7}, [3002] = {x=292,y=218,z=6}, [3003] = {x=593,y=297,z=5}, [3004] = {x=578,y=796,z=8}[/color] } function onStepIn(cid, item, position, fromPosition) if isPlayer(cid) == TRUE then doSendMagicEffect(position, CONST_ME_POFF) doTeleportThing(cid, area[item.actionid], FALSE) doSendMagicEffect(area[item.actionid], CONST_ME_TELEPORT) end return TRUE end Ali aquela parte roxa, é o lugar que ira ser teletransportado. continuando... abra data/spells/spells.xml, e coloque isso lá: <conjure name="Red Gem" words="exeta gam flam" lvl="20" mana="20" prem="0" conjureId="2156" exhaustion="1000" needlearn="0" function="conjureItem"> <vocation name="Sorcerer"/> <vocation name="Master Sorcerer"/> <vocation name="Druid"/> <vocation name="Elder Druid"/> <vocation name="Paladin"/> <vocation name="Royal Paladin"/> <vocation name="Knight"/> <vocation name="Elite Knight"/> </conjure> <conjure name="Blue Gem" words="exeta gam frigo" lvl="20" mana="20" prem="0" conjureId="2158" exhaustion="1000" needlearn="0" function="conjureItem"> <vocation name="Sorcerer"/> <vocation name="Master Sorcerer"/> <vocation name="Druid"/> <vocation name="Elder Druid"/> <vocation name="Paladin"/> <vocation name="Royal Paladin"/> <vocation name="Knight"/> <vocation name="Elite Knight"/> </conjure> <conjure name="Green Gem" words="exeta gam pox" lvl="20" mana="20" prem="0" conjureId="2155" exhaustion="1000" needlearn="0" function="conjureItem"> <vocation name="Sorcerer"/> <vocation name="Master Sorcerer"/> <vocation name="Druid"/> <vocation name="Elder Druid"/> <vocation name="Paladin"/> <vocation name="Royal Paladin"/> <vocation name="Knight"/> <vocation name="Elite Knight"/> </conjure> <conjure name="Purple Gem" words="exeta gam vis" lvl="20" mana="20" prem="0" conjureId="2153" exhaustion="1000" needlearn="0" function="conjureItem"> <vocation name="Sorcerer"/> <vocation name="Master Sorcerer"/> <vocation name="Druid"/> <vocation name="Elder Druid"/> <vocation name="Paladin"/> <vocation name="Royal Paladin"/> <vocation name="Knight"/> <vocation name="Elite Knight"/> </conjure> Gostou? Use minha FanBar! Créditos: 5% Pivigu (outro fórum) / ele botou no outro fórum todo errado, nada a ver, faltando partes... 95% Mim, SirAvatar, Readaptei, corrigi os bugs, coloquei o que faltava, e postei no xtibia... Beijo Nas Mulheres e um Abraço nos Homens, flw! PS: QUALQUER BUG EU CORRIJO DPS, QUE AGR EU VOU ESTUDAR PARA A PROVA FINAL QUE EU FIQUEI Link para o comentário https://xtibia.com/forum/topic/126379-investiga%C3%A7%C3%A3o-actions-gemas-of-power/ Compartilhar em outros sites More sharing options...
satan666 12 Postado Janeiro 6, 2010 Share Postado Janeiro 6, 2010 5%? eu num dava nem 1% pra ele concerteza ele nem se quer colocou o nome messagen. você quem fez tudo e mais um pouco eu acho até que foi ele quem ripou e não você. link do post do pivigu Link para o comentário https://xtibia.com/forum/topic/126379-investiga%C3%A7%C3%A3o-actions-gemas-of-power/#findComment-836657 Compartilhar em outros sites More sharing options...
rockstar96 4 Postado Janeiro 6, 2010 Share Postado Janeiro 6, 2010 Anyway, a idéia é do Pivigu e os créditos devem ser mantidos. Link para o comentário https://xtibia.com/forum/topic/126379-investiga%C3%A7%C3%A3o-actions-gemas-of-power/#findComment-836659 Compartilhar em outros sites More sharing options...
IrapuanPuan 3 Postado Janeiro 6, 2010 Autor Share Postado Janeiro 6, 2010 é..., eu so coloquei os créditos, por causa da idéia que foi dele... Link para o comentário https://xtibia.com/forum/topic/126379-investiga%C3%A7%C3%A3o-actions-gemas-of-power/#findComment-836765 Compartilhar em outros sites More sharing options...
u n d e r 110 Postado Janeiro 6, 2010 Share Postado Janeiro 6, 2010 O tópico foi reportado e será investigado pela nossa equipe. Link para o comentário https://xtibia.com/forum/topic/126379-investiga%C3%A7%C3%A3o-actions-gemas-of-power/#findComment-836844 Compartilhar em outros sites More sharing options...
Posts Recomendados