-
Total de itens
3406 -
Registro em
-
Última visita
-
Dias Ganhos
111
Histórico de Reputação
-
Vodkart recebeu reputação de crownzs em Sistema de Reset
pq ta fazendo pelo nome? acessa pelo id do player que não tem erro
local coNdConf = { needPz = true, -- Precisa estar em Pz pra resetar? [true, false] needPa = false, -- Precisa ser Premium Account Pra resetar? [true, false] withe = false, -- Players com Pk Withe podem resetar? [true, false] red = false, -- Players com Pk Red pode resetar? [true, false] battle = false, -- Players precisão estar sem battle pra resetar? [true, false] teleport = true, -- Teleportar Player para o templo após resetar? [true, false] look = true, -- Aparecer Resets no Look do Player? [true, false] resetConf = { Level = 350, -- Level Necessário para Resetar. [Valor] backLvl = 100 -- Level que voltará após o Reset. [Valor] } } function getPlayerReset(cid) local check = db.getResult("SELECT `reset` FROM `players` WHERE `id`= "..getPlayerGUID(cid)) return check:getDataInt("reset") <= 0 and 0 or check:getDataInt("reset") end function onSay(cid, words, param) local resetValue = getPlayerReset(cid) + 1 if getPlayerLevel(cid) < coNdConf.resetConf.Level then doPlayerSendTextMessage(cid,MESSAGE_STATUS_CONSOLE_BLUE, "- Level Necessário Para o Reset ["..coNdConf.resetConf.Level.."]. Faltam "..coNdConf.resetConf.Level-getPlayerLevel(cid).." level's para você Resetar. -") return true elseif coNdConf.needPz and not getTilePzInfo(getCreaturePosition(cid)) then doPlayerSendTextMessage(cid,MESSAGE_STATUS_CONSOLE_BLUE,"- Você Precisa estar em Protection Zone Para Resetar. -") return true elseif coNdConf.needPa == true and not isPremium(cid) then doPlayerSendTextMessage(cid,MESSAGE_STATUS_CONSOLE_BLUE,"- Você Precisa ser Premium Account para Resetar. -") return true elseif not coNdConf.withe and getCreatureSkullType(cid) == 3 then doPlayerSendTextMessage(cid,MESSAGE_STATUS_CONSOLE_BLUE,"- Você não pode resetar em condições de PK Withe. -") return true elseif not coNdConf.red and getCreatureSkullType(cid) == 4 then doPlayerSendTextMessage(cid,MESSAGE_STATUS_CONSOLE_BLUE,"- Você não pode resetar em condições de PK Red. -") return true elseif coNdConf.battle and getCreatureCondition(cid, CONDITION_INFIGHT) then doPlayerSendTextMessage(cid,MESSAGE_STATUS_CONSOLE_BLUE,"- Você Precisa estar sem Battle para Resetar. -") return true end doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid))) doRemoveCreature(cid) db.query("UPDATE `players` SET `reset` = " .. resetValue .. ", `level` = "..coNdConf.resetConf.Level..", `experience` = "..getExperienceForLevel(coNdConf.resetConf.Level)..", `description` = "..(coNdConf.look and "[Resets: "..resetValue.."]" or "").." WHERE `id`= "..getPlayerGUID(cid)) return true end -
Vodkart recebeu reputação de williamserravalle em Double Exp Para Vip
servidos testado 8.54 ~ 8.60
Quando você compra vip você pode aumentar a taxa de exp em percent que ele irá receber a mais,como se fosse um bonus...
a taxa se modifica aqui:
local rate = 1.5 -- 50%
vermelho:representa o quanto irá subir em %
caso fosse 20% seria
local rate = 1.2
e por ai vai....
[ Double exp para o Perfect Vip System ] :
[ Double exp para o Vip System By Account V1.0 ] :
[ Double exp para o Vip System By Mock] :
-
Vodkart recebeu reputação de MonsterB0SS em Broadcasts seguidas
acho que assim tbm dá
function onThink(interval) local mds,msgs = 3435,{ [0] = "Texto1", [1] = "Texto2", [2] = "Texto3", [3] = "Texto4", [4] = "Texto5" } if getGlobalStorageValue(mds) == -1 then setGlobalStorageValue(mds,0) end doBroadcastMessage(msgs[getGlobalStorageValue(mds)]) setGlobalStorageValue(mds, getGlobalStorageValue(mds) < #msgs and getGlobalStorageValue(mds)+1 or 0) return true end
-
Vodkart deu reputação a Bruno em Player.setExhaustion, Player.getExhaustion [TFS 1.x]
function Player.setExhaustion(self, value, time) return self:setStorageValue(value, time + os.time()) end function Player.getExhaustion(self, value) local storage = self:getStorageValue(value) if storage <= 0 then return 0 end return storage - os.time() end Exemplo de uso:
function onUse(player, item, fromPosition, itemEx, toPosition, isHotkey) if player:getExhaustion(1350) <= 0 then player:setExhaustion(1350, 10) else print('Exausted! '..player:getExhaustion(1350)..' segundos restantes.') end return true end Créditos: Printer
-
Vodkart recebeu reputação de sardom em [Encerrado][Age Of War - 10.77] Recruta Mapper/WebMaster
Introdução ao Projeto em pdf: https://drive.google.com/file/d/0B_EVTnZYHOnjdEFJc1d1OUdkaFU/view?usp=sharing
Fala pessoal, estamos desenvolvendo um novo projeto de OTServe na versão 10.77 voltado ao RPG onde diversão é indispensável. Criaremos diversos eventos e sistemas únicos para que seja um servidor dinâmico em que os players sintam aquela vontade de jogar cada vez mais, não a mesmice de todo serve, que só se upa e upa e não tem mais graça.
Estamos abrindo Vagas para:
[*1*] Mapper
[*1*] Web Master
*Caso deseje se candidatar para a equipe, favor preencher o seguinte formulário abaixo:
Nome:
Idade:
Função pretendida:
Formas de contato - Facebook/Skype:
Porque você quer fazer parte do projeto?:
Quanto tempo de experiência você tem no seu ramo?:
Caso tenha algum trabalho feito/postado favor anexar o link ou imagem.
-
Vodkart recebeu reputação de JeanCristian em Arena System Inovador
mas teria que destruir o nexus inimigo?? algumas torres?? ou só mata mata
-
Vodkart recebeu reputação de RigBy em Limite de player por sala
esse código é bom para quem gosta de fazer quest, exemplo a firewalk boots
-
Vodkart deu reputação a zipter98 em Arena System Inovador
Na verdade eu pretendia fazer quando tivesse mais tempo livre (por ser um código grande), mas tudo bem. Se desistir, avise aqui, por gentileza.
Se tiver alguma dificuldade, peço que também informe aqui para podermos ajudá-lo.
-
Vodkart deu reputação a RigBy em Limite de player por sala
Limite de player por sala
Introdução:
Esse script pode ser bem útil para baiak onde as salas tão sempre cheia de player upando ou então para eventos.
O script simplesmente checa a quantidade de player que tem dentro da sala, caso não tenha atingido o limite o player pode entrar caso não, manda uma mensagem falando que a sala esta lotada.
Exemplo de uso: pode servir até para a anihilator ou demon aok, invitando que um segundo time entre na sala antes que o primeiro acabe.
Caso a sala esteja lotada.
Caso não.
Em data/movement/script, crie
LimiteArea.lua e adicione.
Em movement/movement.xml Adicione essa tag
E depois adicionar o actionid no piso ou teleport pelo mapa editor. O script é fácil de se configurar mas caso tenha algum problema pode posta ai que eu vou ajuda. Caso você adicione mais locais você terá que adicione na tag também.
-
Vodkart recebeu reputação de djteteh em TopLevel Effect
Refiz o código de outro jeito, as TAGS são as MESMAS.
Créditos ao Bruno: http://pastebin.com/raw.php?i=pr8G8DQH
-
Vodkart deu reputação a Bruno em TopLevel Effect
HAahhaa, depois vou testar e atualizo no principal.
Esse foi um dos meus primeiros scripts quando comecei mexer com lua, nunca mais alterei ele.
Vlw vod.
-
Vodkart recebeu reputação de Soulviling em TopLevel Effect
Refiz o código de outro jeito, as TAGS são as MESMAS.
Créditos ao Bruno: http://pastebin.com/raw.php?i=pr8G8DQH
-
Vodkart deu reputação a Bruno em [TFS 1.x] Critical System
Introdução
Este script consiste em aumentar uma porcentagem dos ataques de acordo com o critical level.
Exemplo: Suponhamos que o player tenha Critical Skill 100 e a porcentagem de ataque esteja configurado para aumentar 50%, o player terá 30% de chance de au 50% dos ataques.
Instalação
O conteúdo da lib serve para o Critical e Dodge System, se você já fez este procedimento no outro script simplesmente ignore e vá para o próximo passo.
Em data/lib/core/core.lua adicione o seguinte conteúdo em qualquer parte:
dofile('data/lib/core/dclib.lua')Ainda em data/lib/core/core crie um arquivo chamado dclib.lua com o seguinte conteúdo:
Agora em data/actions/actions.xml adicione a seguinte tag:
<action itemid="18415" script="other/critical.lua"/>Depois em data/actions/scripts/other crie um arquivo chamado critical.lua com o seguinte conteúdo:
Pronto, já configuramos o item para atribuir o Critical Skill, vamos configurar a parte dos ataques.
Vá em data/creaturescripts/creaturescripts.xml e adicione a seguinte tag:
<event type="healthchange" name="CriticalSystem" script="criticalSystem.lua"/>Agora em data/creaturescripts/scripts crie um arquivo chamado criticalSystem.lua com o seguinte conteúdo:
Ainda em data/creaturescripts/scripts abra o arquivo login.lua e
Antes de:
return trueAdicione:
player:registerEvent("CriticalSystem") -- Critical System if player:getCriticalLevel() == -1 then player:setCriticalLevel(0) endO sistema está finalizado, agora vamos criar as talkactions para que os players acompanhem seu skill.
Em data/talkactions/talkactions.xml adicione a tag:
<talkaction words="!critical" script="critical.lua"/>E para finalizar, em data/talkactions/scripts crie um arquivo chamado critical.lua com o seguinte conteúdo:
Bom é isso ai!
Créditos:
-
Vodkart deu reputação a Bruno em Surgir um troféu
Em data/movements/movements.xml adicione a tag:
<movevent type="StepIn" actionid="2135" event="script" value="premio.lua"/>Agora em data/movements/scripts, crie um arquivo chamado premio.lua com o seguinte conteúdo:
local config = { storage = 24700, item = 5805, desc = "Premio ao jogador %s por completar um evento." } function onStepIn(cid, item, position, lastPosition, fromPosition, toPosition, actor) if isPlayer(cid) then if getPlayerStorageValue(cid, config.storage) < 1 then local pos = getCreaturePosition(cid) pos.y = pos.y - 1 local thing = doCreateItem(config.item, 1, pos) doItemSetAttribute(thing, "description", string.format(config.desc, getCreatureName(cid))) setPlayerStorageValue(cid, config.storage, 1) doSendMagicEffect(getCreaturePosition(cid), CONST_ME_MAGIC_RED) return true end end return true endPronto, agora coloca a actionid 2135 (ou outra configurada) no piso desejado, e pronto! -
Vodkart deu reputação a Bruno em Npc dando recompensa
Feito:
Tópico movido para a seção de dúvidas e pedidos resolvidos.
-
Vodkart deu reputação a Piabeta Kun em xTibia - Shadowcores Website
pelo o que eu vi no download é para server tfs 1.0!
Edit
kkkk isso é um gesior, shausahusahusa que loucura cara!
-
Vodkart deu reputação a Administrador em xTibia - Shadowcores Website
Visualize o website
Downloads
Download Mega
Scan
Créditos:
Shadowcores
por disponibilizar
@Daniel por postar
-
Vodkart deu reputação a zipter98 em NPC Upgrader
Oi, vi a ideia desse NPC em um lugar por aí e resolvi fazer.
Consiste em um NPC que aprimora seu item (deve estar em uma das mãos - esquerda ou direita) a troco de um outro item (configurável).
A cada nível de aprimoramento, seu item recebe um valor configurável no ataque, defesa e/ou armadura.
Você pode configurar o nível de aprimoramento máximo, chance de falhar, valor adicional que o item receberá a cada aprimoração e, como já dito antes, o item que será cobrado pelo NPC.
Em data/npc, crie um arquivo com extensão .XML, nomeie-o Upgrader, e coloque o seguinte conteúdo:
<?xml version="1.0" encoding="UTF-8"?>
<npc name="Upgrader" script="upgradenpc.lua" walkinterval="3000" floorchange="0" access="5" level="1" maglevel="1">
<health now="150" max="150"/>
<look type="134" head="39" body="113" legs="38" feet="0" addons="3" corpse="2212"/>
<parameters>
<parameter key="message_greet" value="Olá |PLAYERNAME|, voce gostaria de aprimorar o seu equipamento?"/>
</parameters>
</npc>
Em data/npc/scripts, crie um arquivo com extensão .lua, nomeie-o upgradenpc.lua, e coloque o seguinte conteúdo:
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
local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid
local config = {
items = {12343, 10}, --Respectivamente, ID do item que o NPC irá cobrar e quantidade.
maxBoost = 10, --Nível máximo do equipamento.
failChance = 20, --Em porcentagem.
upgradeValue = 1, --Valor adicional que o item receberá a cada aprimoração.
}
if msgcontains(msg:lower(), "yes") then
for slot = 5, 6 do
local item = getPlayerSlotItem(cid, slot)
if item.uid > 0 then
if getItemAttack(item) > 0 or getItemDefense(item) > 0 or getItemArmor(item) > 0 then
if doPlayerRemoveItem(cid, config.items[1], config.items[2]) then
local newUpgrade = (getItemAttribute(item.uid, "upgrade") or 0) + 1
if newUpgrade <= config.maxBoost then
if math.random(1, 100) > config.failChance then
doItemSetAttribute(item.uid, "name", getItemInfo(item.itemid).name.." [+"..newUpgrade.."]")
if getItemAttack(item) > 0 then
setItemAttack(item, getItemAttack(item) + config.upgradeValue)
end
if getItemDefense(item) > 0 then
setItemDefense(item, getItemDefense(item) + config.upgradeValue)
end
if getItemArmor(item) > 0 then
setItemArmor(item, getItemArmor(item) + config.upgradeValue)
end
doItemSetAttribute(item.uid, "upgrade", newUpgrade)
selfSay("Seu equipamento foi aprimorado com sucesso.", cid)
doSendMagicEffect(getThingPos(cid), CONST_ME_MAGIC_BLUE)
else
selfSay("Aah, parece que a aprimoração falhou! Mais sorte na próxima vez.", cid)
end
return true
else
return selfSay("Seu equipamento já alcançou o nível máximo.", cid)
end
else
return selfSay("Você não tem "..config._item[2].."x "..getItemNameById(config._item[1])..(config._item[2] > 1 and "s" or "")..".", cid)
end
end
end
end
selfSay("Parece que você não tem um item para aprimorar.", cid)
elseif msgcontains(msg:lower(), "no") then
selfSay("Tudo bem, então.")
end
return true
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())
Versão testada: 8.54
Bem, é só isso, até mais.
-
Vodkart deu reputação a Bruno em Wand of Elements
Introdução:
É uma wand que ataca vários elementos aleatoriamente, porém não somente isso, você pode travar um único elemento através de uma talkaction.
OBS: Testado em tfs 0.4
Instalação:
Vá até data/weapons/scripts e crie um arquivo chamando wandelementos.lua e coloque o seguinte conteúdo:
local min, max = 1700,1900 --Ataque mínino e ataque máximo local w = { [1] = {ef = 36, sh = 3, dmg = COMBAT_FIREDAMAGE}, [2] = {ef = 42, sh = 28, dmg = COMBAT_ICEDAMAGE}, [3] = {ef = 46, sh = 38, dmg = COMBAT_POISONDAMAGE}, [4] = {ef = 17, sh = 31, dmg = COMBAT_DEATHDAMAGE}, [5] = {ef = 47, sh = 35, dmg = COMBAT_ENERGYDAMAGE}, [6] = {ef = 36, sh = 31, dmg = COMBAT_PHYSICALDAMAGE}, [7] = {ef = 49, sh = 37, dmg = COMBAT_HOLYDAMAGE} } function onUseWeapon(cid, var) local effect = getPlayerStorageValue(cid, 4561) local target = getCreatureTarget(cid) if target ~= 0 then local wx = w[effect] or w[math.random(#w)] doSendDistanceShoot(getThingPos(cid), getThingPos(target), wx.sh) addEvent(doAreaCombatHealth, 100, cid, wx.dmg, getThingPos(target), 0, -min, -max, wx.ef) end return true end Altere o min e max de acordo com sua necessidade.
Agora vá em data/weapons/weapons.xml e coloque o seguinte conteúdo:
<wand id="7424" level="100" mana="30" event="script" value="wandelementos.lua"> <vocation id="1"/> <vocation id="2"/> <vocation id="5" showInDescription="0"/> <vocation id="6" showInDescription="0"/> </wand> Altere o id, level e mana de acordo com sua necessidade.
Agora vamos configurar a talkaction que troca os elementos.
Vá até data/talkactions/scripts e crie um arquivo chamando elementos.lua e coloque o seguinte conteúdo:
local config = { wand_id = 7424, --ID da wand types = { ["all"] = -1, --Ataca os elementos aleatoriamente ["fire"] = 1, ["ice"] = 2, ["poison"] = 3, ["death"] = 4, ["energy"] = 5, ["physical"] = 6, ["holy"] = 7 } } function onSay(cid, words, param) local wand_left = getPlayerSlotItem(cid, CONST_SLOT_LEFT).itemid local wand_right = getPlayerSlotItem(cid, CONST_SLOT_RIGHT).itemid if wand_left ~= config.wand_id and wand_right ~= config.wand_id then doPlayerSendCancel(cid, "Voce deve estar equipado com uma ".. getItemNameById(config.wand_id) .." para usar este comando.") return true end if config.types[param] then setPlayerStorageValue(cid, 4561, config.types[param]) doPlayerSendTextMessage(cid, MESSAGE_EVENT_ORANGE, "Sua wand ira atacar ".. param .. ".") else local str = "" for i, _ in pairs(config.types) do str = str .. ", ".. i end doPlayerSendTextMessage(cid, MESSAGE_EVENT_ORANGE, "Os elementos disponiveis sao: ".. string.sub(str, 3, #str) ..".") end return true end Altere o wand_id conforme configurado em weapons.
Agora vá em data/talkactions/talkactions.xml e coloque o seguinte conteúdo:
<talkaction words="!elemento;/elemento" event="script" value="elementos.lua"/> Exemplo de funcionamento:
Agradeço MaXwEllDeN pela ajuda.
-
Vodkart recebeu reputação de RigBy em Duvida sobre posicionamento do mostro
fiz um movements para mudar a direção dos monstro de acordo com o item.actionid do piso onde eles estão... já que era uma área pré programada para treiners...
-
Vodkart recebeu reputação de AdilsonHacker em Apenas X vocation id pode atacar X monstro
olá amigo, acho q vc está falando besteira.
esse código é simples e pode ser feito com onAttack ou onCombat
-
Vodkart recebeu reputação de RigBy em Apenas X vocation id pode atacar X monstro
KKKKKKKKKKKKKKKKKKKKKKK
toma meu rep pelo owned q levei agr viado
n li msm
enfim, testou?? tenta pelo onTarget ou onAttack que tenho ctz q dá...
-
Vodkart deu reputação a RigBy em Apenas X vocation id pode atacar X monstro
acho que você não leu o topico todo
Bom galera, eu queria saber se é póssivel um script que só permita X vocation id atacar esse X monstro (configurado) e o monstro também só podendo atacar essa X vocation.
pelo oque eu entendi ele pediu para que o mostro não possa ataca outras vocações alem dessa, então...
-
Vodkart recebeu reputação de RigBy em Apenas X vocation id pode atacar X monstro
mas ele pediu só para a tal VOC NÃO atacar o bixo. ele não falou nada sobre o bixo NÃO atacar a tal voc...
-
Vodkart deu reputação a RigBy em Apenas X vocation id pode atacar X monstro
Eu ja tentei fazer um onCombat e coloca um return false mas o Mob continua atacando, vo testar agora onAttack nunca usei
-
Quem Está Navegando 0 membros estão online
- Nenhum usuário registrado visualizando esta página.