Postado Março 12, 2017 8 anos Autor 5 horas atrás, wevertonvrb disse: man vamos la eu fiz pra voce um por movement sendo assim vc n precisa de comando nem nada para fazer este script eu usei uma bota crocodile boots para testar e ficou 100% modo de usar. quando voce equipar a bota vai sair um efeito do personagem ou seja se vc tiver com esta bota no pé do teu personagem o efeito acontece e caso vc tire a bota o efeito para vamos la vá em data/movements abre o movements.xml e cole isso<movevent type="DeEquip" itemid="3982" slot="feet" event="script" value="botas.lua"/> <movevent type="Equip" itemid="3982" slot="feet" event="script" value="botas.lua"/> salve e fecha lenbrando que o 3982 é o id da crocodile boots caso queira usar outro item basta trocar pelo id do item que queira outra coisa o feet significa pés ou seja isso so server para botas caso queira por uma armadura ou outro item deixarei como mudar abaixo Ocultar conteúdo [capacetes] = "Head" [colar] = "Neck"''necklace'' [mochila] = "Back"''backpack'' [armadura] = "Body" [mão direita] = "Right"''two-handed'' [mão esquerda] = "Left"''two-handed'' [calças] = "Leg"''legs'' [botas] = "Feet" [dedos, aneis] = "Finger" "ring'' [munição] = "Ammo" caso queria que o item a dar o efeito seja uma armadura coloque body onde esta feet e coloque o id da armadura no ludar do id da crocodile boots e assim vai agora vamos ao script vá em data/movements/scripts copie e cole um arquivo qualquer e renomeie para botas.lua Ocultar conteúdo local config = { tempo = 3, --tempo em segundos, voce pode colocar de quanto em quanto tempo o efeito vai aparecer eu deixei 3 segundos mas pode deixar o quanto quizer efeito = 15, --aqui voce coloca o eveito que tu quer eu deixei 15 mas voce pode alterar como quizer para ver os efeitos disponiveis abra o object builder e vá em effects e seja feliz } function AURA(cid) if getPlayerStorageValue(cid, 554466) == 1 then doSendMagicEffect(getCreaturePosition(cid), config.efeito) addEvent(AURA, config.tempo*1000, cid) end end function onEquip (cid, item, slot) setPlayerStorageValue(cid, 554466, 1) AURA(cid) return true end function onDeEquip(cid, item, slot) setPlayerStorageValue(cid, 554466, -1) return true end Então funcionou não .-. Voce vez a creaturescripts da aura antes? pq aqui não quis da certo
Postado Março 12, 2017 8 anos creaturescripts/scripts/aura.lua local config = { tempo = 1, -- tempo em segundos efeito = 15, -- efeito q vc quer } local stor = 25950 function aura(cid) doSendMagicEffect(getCreaturePosition(cid), config.efeito) addEvent(aura, config.tempo*1000, cid) end function onThink(cid, interval) if getPlayerStorageValue(cid, stor) == 1 then aura(cid) end return true end creaturescripts.xml <event type="think" name="AuraS" event="script" value="aura.lua"/> e registra isso no login.lua registerCreatureEvent(cid, "AuraS") GitHub: https://github.com/s3kk Conteúdo: [SERVER] Heromassa[GESIOR] Gesior 2012 modificado por Sekk[GESIOR] Shop Addons & Mounts - TFS 1.x[GESIOR] Outfitter para Characters e Rank[SISTEMA] Castle 24h[TALKACTION] Multi Element Wand[ACTION] Multi Elemental Arrow & Shield[PROGRAMAÇÃO] Compilar TFS 0.4 no Linux[PROGRAMAÇÃO] Compilando TFS 0.4 no MSVC(x64 e x32) [INFRAESTRUTURA] Configuração COMPLETA Google VM + Tibia 11.x
Postado Março 12, 2017 8 anos 16 horas atrás, samuel.show disse: Então funcionou não .-. Voce vez a creaturescripts da aura antes? pq aqui não quis da certo é movement não creaturescript você fez algo errado! era algum erro? se sim me mande e vefifique isso pois é movement Editado Março 12, 2017 8 anos por wevertonvrb (veja o histórico de edições)
Postado Março 14, 2017 8 anos Autor Em 11/03/2017 ás 16:56, Sekk disse: é o mesmo principio do item, só pode usar a talk se tiver x storage, so fazer o npc vender ela: npc/scripts/aura.lua Ocultar conteúdo local storage = 191029 local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local talkState = {} function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end function onThink() npcHandler:onThink() end function creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end msg = msg:lower(); local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid if msgcontains(msg, 'aura') or msgcontains(msg, 'buy') then if getPlayerStorageValue(cid, storage) >= 1 then selfSay("Você já tem permissão.", cid) else doSendMagicEffect(getPlayerPosition(cid), CONST_ME_MAGIC_BLUE) selfSay("Pronto, agora você já pode usar a aura a vontade!", cid) setPlayerStorageValue(cid, storage, 1) end end end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) npc/Aura.xml <?xml version="1.0" encoding="UTF-8"?> <npc name="Aura Seller" script="data/npc/scripts/aura.lua" walkinterval="2000" floorchange="0"> <health now="100" max="100"/> <look type="149" head="57" body="59" legs="40" feet="76" addons="0"/> <parameters> <parameter key="message_greet" value="Olá |PLAYERNAME|, deseja ter permissão para usar a sua {aura}?"/> </parameters> </npc> O que eu devo colocar na TalkAction? segue abaixo a Script da TalkAction Obrigado -- CONFIGURAÇÕES aurastr = 25950 -- storage da aura estr = 25951 -- storage para o exhaust porcentagem = 40 -- chance de curar em cada volta da aura, em porcentagem quantheal = 10 -- porcentagem do hp máximo que cada cura irá curar. (No caso, irá curar 10% do hp máximo cada cura) tempo = 1180 -- tempo para dar uma volta no player (este tempo foi o que achei mais agradável visualmente, é recomendável não mudar) tipoaura = 30 -- número do efeito da aura (efeito de distância, pode ser identificado com /x no jogo) efeitocura = 49 -- número do efeito quando a cura chega ao player (efeito de posição fixa, pode ser identificado com /z no jogo) -- Função que chama a aura function efeitosAura(i,tm,cid) if(isCreature(cid)) then local atual = getCreaturePosition(cid) local posaura = { {x=(atual.x)-1, y=(atual.y)-1, z=atual.z}, {x=atual.x, y=(atual.y)-1, z=atual.z}, {x=(atual.x)+1, y=(atual.y)-1, z=atual.z}, {x=(atual.x)+1, y=atual.y, z=atual.z}, {x=(atual.x)+1, y=(atual.y)+1, z=atual.z}, {x=atual.x, y=(atual.y)+1, z=atual.z}, {x=(atual.x)-1, y=(atual.y)+1, z=atual.z}, {x=(atual.x)-1, y=atual.y, z=atual.z}, } local chances = math.random(100) if(chances<=porcentagem/8 and getCreatureHealth(cid)<getCreatureMaxHealth(cid)) then doCreatureAddHealth(cid, getCreatureMaxHealth(cid)/quantheal) if(i<=8 and i>1) then doSendDistanceShoot({x=posaura.x, y=posaura.y, z=posaura.z}, atual, tipoaura) else doSendDistanceShoot({x=posaura[1].x, y=posaura[1].y, z=posaura[1].z}, atual, tipoaura) end doSendMagicEffect(atual, efeitocura) end if(i==8) then doSendDistanceShoot({x=posaura.x, y=posaura.y, z=posaura.z}, {x=posaura[1].x, y=posaura[1].y, z=posaura[1].z}, tipoaura) elseif(i<8) then doSendDistanceShoot({x=posaura.x, y=posaura.y, z=posaura.z}, {x=posaura[i+1].x, y=posaura[i+1].y, z=posaura[i+1].z}, tipoaura) end if(i<=8 and getPlayerStorageValue(cid, aurastr)==2) then i = i+1 tm = tempo/8 return addEvent(efeitosAura,tm,i,tm,cid) elseif(i>8 and getPlayerStorageValue(cid, aurastr)==2) then return efeitosAura(1,0,cid) else return TRUE end else return TRUE endend -- Função principalfunction onSay(cid, words, param, channel) if(param=="on") then if getPlayerStorageValue(cid, estr) > os.time() then doPlayerSendCancel(cid, "Espere "..(getPlayerStorageValue(cid, estr) - os.time()).." segundos para poder habilitar aura novamente.") else if(getPlayerStorageValue(cid, aurastr)==2) then doPlayerSendCancel(cid,"Sua aura já está habilitada.") elseif(getPlayerStorageValue(cid, aurastr)==-1) then doPlayerSendCancel(cid,"Aura ligada!") setPlayerStorageValue(cid, aurastr, 2) efeitosAura(1,tempo/8,cid) end end elseif(param=="off") then if(getPlayerStorageValue(cid, aurastr)==2) then setPlayerStorageValue(cid, estr, os.time()+2) setPlayerStorageValue(cid, aurastr, -1) doPlayerSendCancel(cid,"Aura desligada!") end else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Digite '!aura on' para ligar sua aura, e '!aura off' para desligá-la.") end return TRUEend @Sekk @KotZletY Editado Março 14, 2017 8 anos por samuel.show (veja o histórico de edições)
Participe da conversa
Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.