Tudo que Godfather postou
-
Amuleto do Caçador (reduz dano proveniente de monstros)
Mas funciona também para as magias...
-
Amuleto do Caçador (reduz dano proveniente de monstros)
Hmm ok, vou trocar aqui em todo caso, vlw!
-
Amuleto do Caçador (reduz dano proveniente de monstros)
@xWhiteWolf, olá, obrigado pela resposta Sobre essa parada de defesa, ela só funciona contra o ataque físico dos bichos (o dano "elemental" não é descontado na armadura, só no absorbPercentElement). Pensando nisso, criei um monstro com dano físico fixo de 100. Com o amuleto protegendo 40%, o dano era fixo de 60 (sem defesa alguma). Adicionei um demon helmet. Dano médio: 55. Adicionei um demon shield. Dano médio: 48. Adicionei uma demon armor. Dano médio: 40. Adicionei uma demon legs. Dano médio: 30. Dá pra concluir que sua primeira teoria não é aplicada realmente, pois o dano não ficou extremamente baixo (considerando que era apenas 100 de dano e era um demon set) Portanto, acho que não há problema nessa parte. Sobre as linhas de texto: removi a doPlayerSendTextMessage e pus a linha do doPlayerSendCancel abaixo da linha do doTargetCombatHealth para que a mensagem seja exibida ao invés da mensagem padrão do tfs Sobre o doAreaCombatHealth: ("o correto seria"?!?! Mas a minha linha já funciona o_O). O parâmetro não precisa de uma área em array, dá pra usar 0 para que fique somente em um SQM, ou 1 para que fique um círculo de 9, e assim por diante Além disso, o -1 significa que efeito nenhum será mostrado, deixando apenas o efeito do melee ou das magias que já seriam mostrados normalmente, pra ficar algo natural e não um efeito aparecendo toda hora que você perde 1 de hp. (E funciona) (/\ tudo baseado no tfs 0.4) --- // --- De qualquer forma, modifiquei um pouco o script, acho que ficou melhor (aceito que ponham do pastebin pra cá com identação, pois não sei como hehe)
-
Amuleto do Caçador (reduz dano proveniente de monstros)
AMULETO WHOHOOO É um amuleto que, quando está equipado, nega x% do dano provido de monstros. (data/creaturescripts/scripts/amulet.lua) http://pastebin.com/w5wzaXyL(revisão - recomendado) http://pastebin.com/LW3Z34v9 (versão inicial) (data/creaturescripts/scripts/login.lua) Adicione esta linha: registerCreatureEvent(cid, "Amulet") (data/creaturescripts/creaturescripts.xml) Adicione esta linha: <event type="statschange" name="Amulet" event="script" value="amulet.lua"/> E pronto! No script a variável "porcentagem" possui o valor 40 como padrão, que é a porcentagem do dano que será BLOQUEADA. Ou seja, receberá ainda 60% do dano Na variável pt_br = false, troque false por true para que a mensagem seja exibida em português obs. o ID do amuleto é o 2218
-
Aura System
[Criado em TFS 0.4 (tibia 8.6), talvez não funcione em outras versões - não darei suporte] Eaí! Este mod consiste em dizer !aura para ver uma lista de auras compráveis, que, após compradas, podem ser escolhidas por "!aura nomedaaura" para que saia um efeito no jogador a cada 1 segundo. [mods/Aura.xml]: http://pastebin.com/qVayLc3m ss's e como usar: Como adicionar outros efeitos? Na 4ª linha, nesta parte: auras = { ["fogo"] = {36,1500000,11350}, ["gelo"] = {41,1500000,11351}, ["pedras"] = {44,1250000,11352}, ["energia"] = {37,1250000,11353}, ["tornado"] = {42,15000000,11354}, } Continue seguindo o padrão, que é: ["Nome"] = {Efeito, Preço, Storage}, Sendo que Storage não pode repetir, então sempre ponha um número a mais que o anterior. É isso Vlw
-
[CreatureEvents] Ganhar novas wands e staffs conforme upa
O script é simples: você normalmente começa com a wand of vortex nos servidores. Daí, quando pega nível suficiente pra usar a próxima wand (wand of dragonbreath), ganha ela automaticamente. Assim por diante até a wand of voodoo. Funciona em druids tbm. [data/creaturescripts/scripts/evoluirwand.lua] http://pastebin.com/rHBqt3Sd (ou clique em Spoiler para ver o script aqui) [data/creaturescripts/creaturescripts.xml] Adicione a seguinte linha: <event type="advance" name="EvoluirStaff" event="script" value="evoluirwand.lua"/> [data/creaturescripts/scripts/login.lua] Adicione a seguinte linha após onLogin(cid): registerCreatureEvent(cid, "EvoluirStaff")
- setCreatureName(cid, name, description)
-
getStringBar(Vr,Vm,quant) - Barra em string
Eaí. Estava criando um sistema de pet por channels, daí senti que seria legal fazer com que tivesse uma barrinha de experiência Ficará tipo assim: (40 quadradinhos) O legal é que dá pra você modificar a largura da barrinha, mas manter os mesmos valores, como na foto: (60 quadradinhos) Daí você pode modificar os valores, como por exemplo, 7 de 10 em 20 quadradinhos: A função é a seguinte: function getStringBar(Vr,Vm,quant) local retorno = {barra,min=Vr,max=Vm,porcentagem=math.floor((Vr/Vm)*100)} local Q = quant/Vm Vr = Vr*Q Vm = Vm*Q str = "[" local trigger = false for i = 1, Vm do if i <= Vr then str = str .. "=" else if not trigger then str = str .. "|" trigger = true end str = str .. "-" end end retorno.barra = str.."]" return retorno end Ela retornará o seguinte array: retorno = { barra (que será a barrinha inteira, tipo [=====|----------] min (que é o valor usado, como o 7 da terceira foto) max (o valor máximo usado, como o 10 da terceira foto) porcentagem (que é a porcentagem do 7 para o 10, no caso 70%) } Exemplo de uso: local gsb = getStringBar(10,20,50) doPlayerSendTextMessage(cid, "4", gsb.min.." "..gsb.barra.." "..gsb.max.." ("..gsb.porcentagem.."%)") Que dará o seguinte resultado: Daí vai de sua imaginação! Esclarecendo: > getStringBar(valor,valor máximo,quantidade de quadradinhos) Esta função não é muito simples de se usar, mas quis deixar retornando o array mesmo, até pra aumentar as possibilidades de uso. Talvez ela seja uma função daquelas que você usa uma vez a cada vinte códigos, mas sempre é bom deixá-la por perto. Valeu!
-
Magic Wall com timer (igual magebot)
Opa, se já tinha foi mal. De qualquer forma, este daí fui eu quem fiz e, pelo que parece, pode ser implantado mais facilmente... @Dennyz use o script do fireelement que funcionará, o outro esqueceu de por em string
-
Magic Wall com timer (igual magebot)
Oi. Esse script vai fazer com que sua MW mostre os segundos que faltam para que ela desapareça. Só. Abra o script da magic wall (data/spells/script/support/magic wall rune.lua) Troque tudo que estiver lá dentro por: local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_ENERGY) setCombatParam(combat, COMBAT_PARAM_CREATEITEM, 1497) function countPos(pos,tempo) if tempo > 0 then doSendAnimatedText(pos,tempo,TEXTCOLOR_RED) addEvent(countPos,1000,pos,tempo-1) else doSendMagicEffect(pos,2) end end function onCastSpell(cid, var) countPos(var.pos,20) return doCombat(cid, combat, var) end E a MW está pronta! Agora vamos querer mudar a Wild Growth também, correto? Abra o script da wild growth (data/spells/script/support/wild growth rune.lua) local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_EARTH) setCombatParam(combat, COMBAT_PARAM_CREATEITEM, 1499) function countPos(pos,tempo) if tempo > 0 then doSendAnimatedText(pos,tempo,TEXTCOLOR_RED) addEvent(countPos,1000,pos,tempo-1) else doSendMagicEffect(pos,2) end end function onCastSpell(cid, var) countPos(var.pos,45) return doCombat(cid, combat, var) end Tudo pronto, agora é só relaxar e gozar!!!
-
[NPC] Mensageira - Players deixam mensagens num bloco de notas
Oi. Eu fiz esse NPC para que ele possa deixar mensagens em um bloco de notas para que os administradores vejam. É uma forma de comunicação com os jogadores. [data/npc/Mensageira.xml] <npc name="Mensageira" script="data/npc/scripts/messenger.lua" walkinterval="0" floorchange="0" access="5" level="1" maglevel="1"> <health now="150" max="150"/> <look type="347" head="20" body="100" legs="50" feet="99" corpse="2212"/> <parameters> <parameter key="message_greet" value="Ola |PLAYERNAME|. Eu tenho a função de deixar mensagens para que o administrador possa ler mais tarde, como críticas, ou simplesmente um bom dia. Gostaria de deixar uma {mensagem}?"/> </parameters> </npc> [data/npc/scripts/messenger.lua] local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local talkState = {} local moneyTo = {} local playerTo = {} 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 if talkState[cid] == 1 then selfSay("A mensagem \""..msg.."\" foi deixada. Obrigado pela contribuicao! Sua mensagem sera revisada por um administrador.", cid) local texto = "" local read = io.open("mensagens.txt", "r") texto = read:read("*all") read:close() local write = io.open("mensagens.txt", "w") write:write(texto.."["..getPlayerName(cid)..", "..os.date("%c").."]: \""..msg.."\"\n") write:close() talkState[cid] = 0 elseif msgcontains(msg, 'mensagem') then selfSay("Escreva a mensagem que voce gostaria de deixar. Pede-se rever o texto e escrever claramente o que deseja. Spam causa banimento por IP.", cid) talkState[cid] = 1 end return TRUE end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Aí você deixa ele no templo, sei lá, faz qualquer coisa Só pra avisar, o mensagens.txt fica na pasta raiz do servidor, lá onde tem config.lua
-
[V1.0] Hunger System
se o player relogar em menos de 1 segundo cai 2x mais rapido e se ele der logout vai ficar dando bug '-'
-
Passagem Secreta
Verdade, a tag está errada, arrumado, obrigado. Sim, sou o 20cm Aliás perdão também por não dar atenção ao tópico, tava vendo o meu canal do youtube e vi o vídeo que tinha o link, enfim... Pra configurar deve ser meio chato mesmo, apesar de que tentei por as cores e tal... Obrigado por orientá-los Kimoszin enquanto eu não estava \o
- Biohazard Online - Can You Survive ?
-
!fly (Igual ao GlobalWar)
Se esse script for do globalwar, que merda hein '-'
-
Premium Por Param
se eu falar !comando 17 (que nao tá na table) vai dar erro no console dizendo q n existe o valor na table pra checar isso vc poe um if: if a ~= nil then fora isso bom script
-
!fly (Igual ao GlobalWar)
Legal cara, mas dava pra fazer seu script muito mais configurável pra quem vai usar: Aí só precisa adicionar o lugar na table: ["nomedolugar"] = {x=posx, y=posy, z=posz}, O seu está legal mas se eu adicionasse 50 lugares cada um ocuparia 4 linhas, ocupando 200 linhas Aí, cara lugar ocupa uma linha, 1/4 do que seria...
-
Passagem Secreta
É só não por uma placa dizendo: DA USE NO BAGUI AI PRA ABRIR A PASSAGEM FERA xD Só dei a base, agora usem a imaginação
-
Passagem Secreta
Por que você não posta o erro e o seu script aqui pra nós resolvermos isso?
-
Passagem Secreta
Versão testada: 8.60 TFS testado: 0.4 Vídeo Demonstrativo Script Configurando Vermelho: PosiÇão da estante esquerda Verde: PosiÇão da estante direita Rosa: ID do item que a parede esquerda vai se transformar (na foto: 1207) Azul-claro: ID do item que a parede direita vai se transformar (na foto: 1208) Amarelo: ID da parede da foto (parede amarela - na foto 1026) Azul: ID da parede da foto (parade azul - na foto 1026) Verde-bosta: Tempo em segundos que a passagem fica aberta. LEMBRANDO QUE O ID NãO É EDITáVEL, É A BOOKCASE E PRONTO! PS²: LEMBRE-SE DE QUE A BOOKCASE NãO É UM ID, ELA É 1718 NA ESQUERDA E 1719 NA DIREITA Lembrando que caso você não tenha gostado ou caso você queira alguma mudança, reclame com Deus.
-
[Action] Temple Cleaner Automático
Espero que tenha conseguido , vc nao me avisou mais .-.
- [Resolvido] Can't connect to MySQL database.Help
-
[Action] Temple Cleaner Automático
-- script by Eitor Laba -- bot cleaner v1.0 local c = {x=0,y=0,z=0} function onUse(cid, item, frompos, item2, topos) function newEffect() local lock = 0 local timeto = 30 local random = math.random(1,4) local effects = {47} local delay = 0.8 local msgs = {"Oops!","Bloqueado","Epa!"} if random == 1 then c.x = c.x + 1 elseif random == 2 then c.x = c.x - 1 elseif random == 3 then c.y = c.y + 1 elseif random == 4 then c.y = c.y - 1 end if math.random(1,8) == 5 then local saudacoes = {"Tudo bom?","Limpando!","Olá!","","Passando!"} doSendAnimatedText(c,saudacoes[math.random(0,#saudacoes)],160) end if lock < 1 then if getThingFromPos(c).itemid > 0 then if isItemMovable(getThingFromPos(c).itemid) then c.stackpos = 253 if not isCreature(getThingFromPos(c).uid) then doSendAnimatedText(c,"Limpo!",TEXTCOLOR_YELLOW) doCleanTile(c) c.stackpos = 1 else doSendAnimatedText(c,"Licença!",160) c.stackpos = 1 end else if random == 1 then c.x = c.x - 1 elseif random == 2 then c.x = c.x + 1 elseif random == 3 then c.y = c.y - 1 elseif random == 4 then c.y = c.y + 1 end doSendAnimatedText(c,msgs[math.random(0,#msgs)],TEXTCOLOR_YELLOW) doSendMagicEffect(c,effects[math.random(1,#effects)]) addEvent(newEffect,delay * 1000) end end else doSendAnimatedText(c,"Acabou o tempo.",TEXTCOLOR_YELLOW) end end function finish() lock = 1 end addEvent(finish,timeto * 1000) c = getPlayerPosition(cid) c.stackpos = 1 newEffect() return TRUE end[/code] [b]Tente isso, eu não testei pois estou indo dormir Se não funcionar eu arrumo mais tarde e te mando Abraços[/b]
-
Primeira Quest
Cara, esse script é bastante simples, e eu também desenvolvi um Chest Generator (http://www.mediafire...adsmn2q1bev2y70), que facilita a criação de quests. Mas de qualquer forma, você está começando, então parabéns Mas tente criar coisas mais complexas, não se limite em pequenos scripts por ser um scripter iniciante. REP+
-
#11 - Super evento relâmpago!
Poisé, não dá mais pra mim também kk Amanhã talvez, abraços.