Histórico de Curtidas
-
shadowfall recebeu reputação de tiroleivi em Almentar o Heal do FOODBoa noite, cara coloca assim
vai em data/action/scripts ou data/action/scripts/other (não sei em qual pasta está seu food.lua), (em dúvida procurar no action.xml)
cola esse script la:
Depois você vai em data/XML/vocations.xml
configurar em
gainhpamount="10" -- tanto de health para heal
gainmanaamount="10" -- tanto de mana para heal
-
shadowfall recebeu reputação de Sayadjin em Almentar o Heal do FOODBoa noite, cara coloca assim
vai em data/action/scripts ou data/action/scripts/other (não sei em qual pasta está seu food.lua), (em dúvida procurar no action.xml)
cola esse script la:
Depois você vai em data/XML/vocations.xml
configurar em
gainhpamount="10" -- tanto de health para heal
gainmanaamount="10" -- tanto de mana para heal
-
shadowfall deu reputação a xWhiteWolf em (Resolvido)COMBAT_PARAM_CREATEITEM sem adicionar pz lockedlocal combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TARGETCASTERORTOPMOST, true) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_RED) setCombatParam(combat, COMBAT_PARAM_EFFECT, 43) setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, 28) local condition = createConditionObject(CONDITION_PARALYZE) setConditionParam(condition, CONDITION_PARAM_TICKS, 2000) setConditionFormula(condition, -0.5, 0, -0.5, 0) setCombatCondition(combat, condition) setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_ICEDAMAGE) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -1, -10, -1, -20, 5, 5, 1.4, 2.1) function onCastSpell(cid, var) doCreateItem(2120, 1, getThingPos(variantToNumber(var))) doCombat(cid, combat, var) return true end
-
shadowfall deu reputação a abugaduniga em Item que da HP máximo bonusE ae pessoal!
vi em otro tópico essa duvida, porém o carinha resolveu sozinho e nao quis compartilhar o script!
Então fuçei um poco e descobri como colocar isso aew!
Item HP By Abugaduniga
Testado em otserv 8.6 TFS 0.36
1º Passo
Coloque a seguinte linha no arquivo Items.xml no item que voce deseja que tenha este bonus:
<attribute key="maxhealthpoints" value="100"/> Onde Value é a quantidade de HP que voce quer que o item dê de bonus
EXEMPLO:
Peguei o item coat(2651) e modifiquei ele para dar um bonus de 50 HP maximo
Lembre-se do tipo de slot do item! isto é muito importante!
<item id="2651" article="a" name="coat"> <attribute key="weight" value="2700" /> <attribute key="armor" value="1" /> <attribute key="slotType" value="body" />, <attribute key="maxhealthpoints" value="50"/> </item> 2º Passo
Isto deve ser colocado em movements.xml
<movevent type="Equip" itemid="2651" slot="body" event="function" value="onEquipItem"/> <movevent type="DeEquip" itemid="2651" slot="body" event="function" value="onDeEquipItem"/> onde itemid="2651", Substituir 2651 pelo id do item que você modificou no 1º passo.
onde slot="body" , Substituir pelo tipo de slot do item que você modificou no 1º passo.
isso aew galera, se foi útil rep+
se nao foi util, rep+ pq deu trabalho!
Qualquer dúvida ou bug, tamo ai pra isso! posta no tópico!
-
shadowfall recebeu reputação de RenanPhellip em (Resolvido)[Pedido] Item que ao ser usado dá magic level por 60 seg.Por nada!
Disponha!
-
shadowfall recebeu reputação de miromaximus em Bau-QuestTenta assim já que você não que criar script de quest.
coloca assim no RME
coloca o item dentro do bau, ai coloca o
action ID = 2000
unique ID= 20001
Se for criar outra quest coloca o mesmo action, e coloca outro unique
action ID = 2000
unique ID = 20002
obs: não testei, mas já fiz desse modo a muito tempo quando não sabia criar quests no script
-
shadowfall recebeu reputação de RenanPhellip em (Resolvido)[Pedido] Item que ao ser usado dá magic level por 60 seg.Boa noite! Eu fiquei curioso com esse pedido, não sou scripting, sou só um OT-Admin, mas consigo desenrola umas coisas E testei uns scripts aqui, editando...e editando... e consegui funfa esse script no meu serve, to passando para você. PS: Editei algumas coisas do script que você postou, porque não tava funfando. e arthurabreu, esse função não funfa de jeito nenhum doPlayerAddSkillTry(cid,skillid,n) e Rudkiller, testei esse seu script aqui e deu o seguinte erro [10/01/2015 18:34:38] [Error - Action Interface] [10/01/2015 18:34:38] data/actions/scripts/evento/magic.lua [10/01/2015 18:34:38] Description: [10/01/2015 18:34:38] (luaSetConditionParam) Condition not found Vamos la ao script que eu editei e funfo pelo menos aqui no meu serve:
Tirei até uns print para demostrar.
Bom, é isso intão, espero que tenha gostado, avisa se de algum erro no distro ou bug -
shadowfall deu reputação a zipter98 em (Resolvido)[Resolvido] Alavanca que possa usar em um intervalo de tempoHm, curioso. Tenta esse:
ps: se não se importa, eu coloquei pra mostrar os segundos também (acho mais legal e.e). caso você não goste, só avisar que eu retiro.
function convertTime(time) local minutes = math.floor(time/60) local seconds = time - (minutes * 60) return {minutes, seconds} end function onUse(cid, item, frompos, item2, topos) local msg = "[Castle of Titans] Você deve aguardar %d minuto%s e %d segundo%s para usar a alavanca." local gates = { {x = 470, y = 243, z = 7}, --Posições dos portões. {x = 471, y = 243, z = 7}, } local id = 9485 --ID do portão. if getGlobalStorageValue(91801) > os.time() then local t = convertTime(getGlobalStorageValue(91801) - os.time()) return doPlayerSendCancel(cid, msg:format(t[1], t[1] > 1 and "s" or "", t[2], t[2] > 1 and "s" or "")) elseif getPlayerGuildId(cid) < 1 then return doPlayerSendCancel(cid, "You aren't member of any guild.") end for _, b in pairs(gates) do local gate = getTileItemById(b, id).uid if gate > 0 then doRemoveItem(gate, 1) doSendMagicEffect(b, 2) addEvent(function() doCreateItem(id, 1, b) end, 5 * 60 * 1000) else return doPlayerSendCancel(cid, "Someone already opened the gates.") end end broadcastMessage('Os Portões da ponte the Castle of Titans foram abertos, e se fecharão em 5 minutos', MESSAGE_EVENT_ADVANCE) addEvent(function() setGlobalStorageValue(91801, os.time() + 3600) end, 5 * 60 * 1000) return true end -
shadowfall deu reputação a Wise em (Resolvido)[Resolvido] Alavanca que possa usar em um intervalo de tempoFiz uma função pra retornar o tempo do modo como você quer, porém não testei.
Códigos do membro zipter98:
function getGlobalExhaust(key) local t = getGlobalStorageValue(key) exhaust = math.floor((t - os.time()) / 60) > 0 and math.floor((t - os.time()) / 60) or 0 return exhaust end local gates = { {x = 470, y = 243, z = 7}, --Posições dos portões. {x = 471, y = 243, z = 7} } local etime = {5, 60} -- {tempo para fechar, tempo para usar} ~ em minutos local id = 9485 -- ID do portão. local gstor = 91801 -- global storage function onUse(cid, item, frompos, item2, topos) if getGlobalStorageValue(gstor) > os.time() then return doPlayerSendCancel(cid, "[Castle of Titans] Você deve aguardar "..getGlobalExhaust(gstor).." minuto(s) para usar a alavanca.") elseif getPlayerGuildId(cid) < 1 then return doPlayerSendCancel(cid, "You aren't member of any guild.") end for _, b in pairs(gates) do local gate = getTileItemById(b, id).uid if gate > 0 then doRemoveItem(gate, 1) doSendMagicEffect(b, 2) addEvent(function() doCreateItem(id, 1, b) end, 5 * 60 * 1000) else return doPlayerSendCancel(cid, "Someone already opened the gates.") end end broadcastMessage('Os Portões da ponte the Castle of Titans foram abertos, e se fecharão em 5 minutos', MESSAGE_EVENT_ADVANCE) addEvent(setGlobalStorageValue, etime[1] * 60000, gstor, os.time() + etime[2] * 60) return true end -
shadowfall deu reputação a xWhiteWolf em (Resolvido)Atributos diferentes nos items/\ esse não é o jeito de se fazer isso.
Seguinte, se vc quiser adicionar esses atributos numa tag do items.xml vc precisará fazer alterações na source, todas elas são conditions que vc vai ter que adicionar ao equipar um item.
Como vc pode ver nesse tópico, nenhum desses atributos existe realmente no tibia http://www.tibiaking.com/forum/topic/31450-pedido-editar-items/
local condition = createConditionObject(CONDITION_ATTRIBUTES) setConditionParam(condition, CONDITION_PARAM_TICKS, -1) setConditionParam(condition, CONDITION_PARAM_SKILL_CLUB, 50) setConditionParam(condition, CONDITION_PARAM_SKILL_SWORD, 50) setConditionParam(condition, CONDITION_PARAM_SKILL_AXE, 50) setConditionParam(condition, CONDITION_PARAM_SKILL_DISTANCE, 50) function onEquip(cid, item, slot) doAddCondition(cid, condition) doSendMagicEffect(getCreaturePos(cid), 10) return true end function onDeEquip(cid, item, slot) doRemoveCondition(cid, CONDITION_ATTRIBUTES) return true end <movevent type="Equip" itemid="11234" slot="feet" event="script" value="set.lua"/> <movevent type="DeEquip" itemid="11234" slot="feet" event="script" value="set.lua"/> Dessa maneira vc pode editar os atributos que serão adicionados com todas as conditions existentes no seu servidor:
Agora sobre a espada que tira dano em % é só vc editar ela pelo items.xml igual a fire sword por exemplo, se ela tiver 80 de ataque físico e 20 de ataque de fire/ice serão 20% certinho. Qualquer outro valor vc faz regra de 3 e chega.. o outro modo de fazer isso é por 2 combats num script de weapons mas não é tão eficaz como a maneira citada acima.
-
shadowfall deu reputação a zipter98 em (Resolvido)[Resolvido] Alavanca que possa usar em um intervalo de tempoOpa, nesse exato momento estou almoçando. Estava pensando neste código, e então lembrei que não tinha feito nenhuma proteção contra esse bug. Editei meu comentário anterior com a correção.
Sobre seu outro pedido, vou só terminar de comer e faço.
EDIT: Pronto, aqui:
function onUse(cid, item, frompos, item2, topos) local gates = { {x = 470, y = 243, z = 7}, --Posições dos portões. {x = 471, y = 243, z = 7}, } local id = 9485 --ID do portão. if getGlobalStorageValue(91801) > os.time() then return doPlayerSendCancel(cid, "Espere 1h para usar a alavanca novamente.") elseif getPlayerGuildId(cid) < 1 then return doPlayerSendCancel(cid, "You aren't member of any guild.") end for _, b in pairs(gates) do local gate = getTileItemById(b, id).uid if gate > 0 then doRemoveItem(gate, 1) doSendMagicEffect(b, 2) addEvent(function() doCreateItem(id, 1, b) end, 5 * 60 * 1000) else return doPlayerSendCancel(cid, "Someone already opened the gates.") end end broadcastMessage('Os Portões da ponte the Castle of Titans foram abertos, e se fecharão em 5 minutos', MESSAGE_EVENT_ADVANCE) addEvent(function() setGlobalStorageValue(91801, os.time() + 3600) end, 5 * 60 * 1000) return true end -
shadowfall deu reputação a zipter98 em (Resolvido)[Resolvido] Alavanca que possa usar em um intervalo de tempoSe você colocar o uniqueid na tag desta action, não vai ser necessário checá-lo no código.
Se não se importa, removi esta linha, que, ao meu ver, era inútil:
doTransformItem(item.uid, item.itemid) Do jeito que fiz, na minha opinião, a configuração é mais fácil (se quiser adicionar um novo portão, basta colocar a posição na tabela gates).
Enfim, aqui o código:
ps: o tempo começa a ser contado depois de 5 minutos, no momento em que os portões são criados.
function onUse(cid, item, frompos, item2, topos) local gates = { {x = 470, y = 243, z = 7}, --Posições dos portões. {x = 471, y = 243, z = 7}, } local id = 9485 --ID do portão. if getGlobalStorageValue(91801) > os.time() then return doPlayerSendCancel(cid, "Espere 1h para usar a alavanca novamente.") end for _, b in pairs(gates) do local gate = getTileItemById(b, id).uid if gate > 0 then doRemoveItem(gate, 1) doSendMagicEffect(b, 2) addEvent(function() doCreateItem(id, 1, b) end, 5 * 60 * 1000) else return doPlayerSendCancel(cid, "Someone already opened the gates.") end end broadcastMessage('Os Portões da ponte the Castle of Titans foram abertos, e se fecharão em 5 minutos', MESSAGE_EVENT_ADVANCE) addEvent(function() setGlobalStorageValue(91801, os.time() + 3600) end, 5 * 60 * 1000) return true end -
shadowfall deu reputação a DoidoPox em (facil) alavanca remove item and stonenao cara a espada e a pedra tem que sair no mesmo momento pq a espada e um item ai da pra pega fraga ai a alavanca fica criando espada
function onUse(cid, item, frompos, item2, topos) item1pos = {x=1010, y=724, z=8, stackpos=2}
rock1pos = {x=1010, y=725, z=8, stackpos=1} -- Posição da Pedra
getrock1 = getThingfromPos(rock1pos)
getitem1 = getThingfromPos(item1pos)
UniID = 4563 -- UniqueID que vai ser adicionado na alavanca
rockID = 1353
itemID = 7959
if item.uid == UniID and item.itemid == 1945 and getrock1.itemid == rockID then
doRemoveItem(getrock1.uid, 1)
doTransformItem(item.uid, item.itemid+1)
doSendMagicEffect(rock1pos, 2)
elseif item.uid == UniID and item.itemid == 1946 then
doCreateItem(rockID, 1, rock1pos)
doTransformItem(item.uid,item.itemid-1)
doSendMagicEffect(rock1pos, 13)
end
if item.uid == UniID and item.itemid == 1945 and getitem1.itemid == itemID then
doRemoveItem(getitem1.uid, 1)
doTransformItem(item.uid, item.itemid+1)
doSendMagicEffect(item1pos, 2)
elseif item.uid == UniID and item.itemid == 1946 then
doCreateItem(itemID, 1, item1pos)
doTransformItem(item.uid,item.itemid-1)
doSendMagicEffect(item1pos, 13)
end
return TRUE
end
misturei tudo mais ta funfanfo ta ai pra quem quiser bye xD vlw pela ajuda
-
shadowfall deu reputação a krellgaming em [ACT/MOV] KeyDoor with StorageJá vi alguns tutoriais, alguns scripts sobre doors e key doors e sinceramente quase nenhum me agradou, nem atendeu a alguns requisitos que eu queria.
Entao vi um topico aqui no Suporte e resolvi fazer o script pro cara que tava pedindo e tambem vou usar no meu server.
Funciona assim: Voce pega uma key especifica, e clica numa porta especifica, entao a key some e voce pode passar pela porta pra sempre.
E so quem tiver a key e usar ela na porta, vai poder passar.
PS: coloque uma porta normal, não locked.
faça um arquivo chamado doorkeystorage.lua e coloque em actions/scripts
function onUse(cid, item, frompos, item2, topos) local storage = 304392 -- coloque o storage aqui local porta = 7049 -- id da porta local uniqueidporta = 12000 if item2.uid == uniqueidporta and item2.itemid == porta then setPlayerStorageValue(cid, storage, 1) doRemoveItem(cid, item.uid, 1) else doPlayerSendTextMessage(cid, 22, "Porta errada!") end return TRUE end Em actions.xml:
<action itemid="ID DA CHAVE" script="doorkeystorage.lua"/>
<action uniqueid="12000" script="doorkeystorage.lua"/>
Aí você põe na porta no map, o uniqueid 12000
e a chave tal, quando usada na porta, dá o storage pro jogador.
em movements/scripts crie um arquivo com o nome doorkeystorage.lua
function onStepIn(cid, item, position, fromPosition, toPosition) local storage = getPlayerStorageValue(cid, 304392) if storage == 1 then doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Siga em frente.") else doTeleportThing(cid, fromPosition) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Somente players que liberaram esta passagem, podem passar.") end return true end Em movements.xml adicione:
<movevent type="StepIn" actionid="ACTION QUE VC VAI POR NO PISO EM BAIXO DA PORTA" event="script" value="doorkeystorage.lua"/>
-
shadowfall deu reputação a lucasalsre em Mover todos para uma posição (bom para eventos)Olá pessoal, antes de seguirem com o script, leiam isso por favor. Eu estou escrevendo de um tablet, por isso, fica difícil organizar o post, então quando eu entrar no PC eu arrumo, agora vocês podem ver o script .
O que o script faz:
Ao dizer /alltemple todas as pessoas que estiverem online no game vão para uma certa posição no jogo que você escolheu no script (eu sempre faço irem para o templo), e isso é muito bom em eventos!
Os passos que você tem que seguir:
1° passo: vá na pasta do seu ot/data/talkactions/scripts e adicione um arquivo chamado todosparaotemplo.lua, coloque isso dentro dele:
function onSay(cid, words, param)
local players = getPlayersOnline()
local pos = {x=1051, y=1051, z=6} -- posição do templo
for i=1, #players do
doTeleportThing(players, pos)
end
db.executeQuery("UPDATE `players` SET `posx` = '"..pos.x.."', `posy` = '"..pos.y.."', `posz` = '"..pos.z.."';")
return true
end
E salve.
2° passo: volte uma pasta (vá na pasa do seu ot/data/talkactions) e abra o talkactions.xml como bloco de notas, coloque isso nele:
<talkaction words="/alltemple" access="5" event="script" value="todosparaotemplo.lua"/>
Feche e salve.
Como editar o local em que todos vão:
Dentro do arquivo todosparaotemplo.lua, vai ter uma linha assim:
local pos = {x=1051, y=1051, z=6} -- posição do templo
É só você editar a posição x, y e z.
-
shadowfall deu reputação a luanluciano93 em Mover todos para uma posição (bom para eventos)Legal o script, obrigado por comaprtilhar ...