m método diferente de agir. Escolhas diferentes, um projeto surpreendente, e o melhor é open source. Sim, você pode ter acesso a este servidor que estou desenvolvendo em parceria com a Serversoft para você.
Um servidor com uma mega estrutura para suportar seus jogadores online sem nenhum problema como: debug, bug de clonagem, instabilidade entre diversos outros dos servidores free's disponíveis para download nessa vasta internet tibiana.
Uma inovação no ramo de OTservers, distribuindo não só a datapack como as sourcers e os sistemas, absolutamente tudo que você procura. Basta baixar, compilar... Mas eu não sei compilar. Não há problema nisso, o OTPanel da Serversoft faz tudo isso para você. Basta clicar num botão de "play" e ver a mágica acontecer.
O projeto Vanaheim, foi criado com o intuito de ser inteiramente grátis para toda a comunidade. Um servidor no qual a diversão é o fator principal, um projeto com viabilidade absoluta por todos os tibianos.
O projeto conta com uma área exclusiva no GitHub para que todos possam acompanhar a evolução do mesmo, dia a dia, diversas atualizações estarão disponíveis a todos. Desde uma action até uma modificação na source vocês terão acesso.
O servidor conta com um mapa Global Full, quando eu digo full, quero dizer que está 99.99% do mapa completo, sem bugs entre outros. Um servidor que você escolhe a rate experience/skill que desejar, ele vai se adaptar! Você pode escolher se quer ou não que as quests tenham as missões originais 100%!
GITHUB
Para acompanhar e baixar o servidor atualizado, segue o link do nosso projeto no GitHub:
decidi hoje disponibilizar a versão do TFS 1.1 compatível com o Tibia 10.77, onde estão os novos efeitos, correção da velocidade das animações, todos addons e mounts. Agora também a opção de utilização do Cast System.
Death System
Introdução:
Vamos pessoal participar da oms, esse sistema faz com que quando um player mate o outro apareça um ceifeiro vindo pega a alma dele.
Vamos la começar a add a script
Em creaturescript/script, crie
DeathSystem.lua
-- Do not remove the credits --
-- [CREATURESCRIPT] Death System --
-- developed by Rigby to help DuuhCarvalho --
-- Especially for the Xtibia.com --
function onDeath(cid, corpse, killer)
local pos = getCreaturePosition(cid)
local monster = 'ceifeiro'
local timer = 3 -- quanto tempo vai demorar pra sumir
function removeMonster()
for _, pid in ipairs(getCreatureSummons(killer[1])) do
doRemoveCreature(pid)
end
return true
end
if isPlayer(cid) and isPlayer(killer[1]) then
doConvinceCreature(killer[1], doCreateMonster(monster, pos))
doSendAnimatedText(getThingPos(cid), "DEATH!", 125)
doSendMagicEffect(getThingPos(cid), 65)
addEvent(removeMonster, timer*1000)
end
return true
end
Creaturescript.xml tag
<event type="death" name="DeathSystem" event="script" value="DeathSystem.lua"/>
Login.lua antes do ultimo return true
registerCreatureEvent(cid, "DeathSystem")
Agora vamos criar o ceifeiro
em monster crie um
ceifeiro.xml
<?xml version="1.0" encoding="UTF-8"?>
<monster name="Ceifeiro" nameDescription="a ceifeiro" race="blood" experience="0" speed="0" manacost="220">
<health now="9999999999999" max="9999999999999"/>
<look type="300" corpse="5971"/>
<targetchange interval="2000" chance="0"/>
<strategy attack="100" defense="0"/>
<flags>
<flag skull="5"/>
<flag summonable="1"/>
<flag attackable="1"/>
<flag hostile="0"/>
<flag illusionable="1"/>
<flag convinceable="1"/>
<flag pushable="1"/>
<flag canpushitems="0"/>
<flag canpushcreatures="0"/>
<flag targetdistance="1"/>
<flag staticattack="90"/>
<flag runonhealth="8"/>
</flags>
<defenses armor="1" defense="2"/>
<immunities>
<immunity physical="0"/>
<immunity energy="0"/>
<immunity fire="0"/>
<immunity poison="0"/>
<immunity lifedrain="0"/>
<immunity paralyze="0"/>
<immunity outfit="0"/>
<immunity drunk="0"/>
<immunity invisible="0"/>
</immunities>
<voices interval="2000" chance="100">
<voice sentence="HAHAHAHA"/>
</voices>
</monster>
em monsters.xml adicione essa tag antes do ultimo </monsters>
<monster name="Ceifeiro" file="ceifeiro.xml"/>
Espero que gostem.
Mais um 07 de fevereiro no RadBR, neste ano de 2014 estamos concluindo 6 anos de muita diversão. Na data de hoje podemos refletir toda nossa grande evolução desde a criação do servidor, somos um dos poucos ou único servidor de tanto tempo online sem nenhum reset no database, isso tudo porque o RadBR é diferente de qualquer servidor, vocês jogadores fazem parte de toda essa história e teremos o prazer de continuar seguindo com vocês essa jornada.
Agradecemos à confiança de todos os jogadores, pois vocês são a vitalidade do servidor, Hail RadBR!
É hora de comemorar! Eventos:
Double exp no dia do aniversário, entre 07/02 às 06:00 até 08/02 às 06:00. Todos os jogadores que entrarem no servidor entre 07/02 às 06:00 até 08/02 às 06:00 ganharão 7 dias de VIP. Evento bolo gigante às 18:00 todos poderão comer uma fatia do bolo de aniversário do RadBR em um divertido evento; o principal objetivo é comer um bolo gigante com 4 camadas, o servidor que comer o bolo primeiro ganhará double exp até 09/02 às 06:00. Ao comer o bolo o jogador ganha pontos de experiência além de encher a barriga do personagem. A entrada do evento será no templo de Wisland. Evento invasão de monstros: logo após o evento do bolo gigante teremos evento de invasão de monstros na ilha nostalgia, o acesso também será no templo de Wisland.
Importante:
Non-pvp ativado enquanto estiver ocorrendo evento no servidor.
Não morre de verdade na arena nostalgia, onde acontecerá o evento de invasão de monstros.
No evento bolo gigante o tunnel do RadBR estará desativado para evitar abuso de MC. Quem usar MC ou qualquer outro tipo de cheater terá a conta e IP banido.
E mais!
Mudanças e correções:
Party exp funciona apenas para jogadores com diferença menor ou igual a 20 resets.
Anti-anti-push reativado.
Não é possível subir em algumas casas em Wisland que estavam sendo usadas para trancar jogadores.
Alguns erros arrumados.
Mudanças na vocação knight:Magias exori gran e exori tiveram suas fórmulas alteradas, agora influencia no dano: level, skill e ataque da arma, com isso a magia exori gran foi melhorada.
Utito tempo não zera skill shielding ao usar.
Mudanças no site:Possibilidade de ver todos os jogadores envolvidos na morte de um jogador, além de saber quem deu o último dano e quem deu mais dano.
Possibilidade de ver quais jogadores foram mortos pelo jogador, se foi uma morte injusta ou não.
Novo sistema de frags para guilds:Jogador de guild ao matar outro jogador de guild, ganha um ponto de frag.
Jogador ao ser morto por outro jogador de guild, ganha um ponto de morte.
Essa pontuação pode ser visualizada individualmente de cada membro da guild na página da guild, estes pontos influenciarão no ranking das melhores guilds na página que lista todas as guilds.
Atenciosamente, Equipe RadBR
Confira esta notícia em nosso fórum:
http://forum.radbr.com/index.php?/topic/70780-6-anos-radbr/
Ola pessoal do ekstibiana.
Versões para cima de 9.x foi retirado o sistema de banimento que e muito necessario em ots.
Então resolvi desenvolver uma versão "beta" para vocês
O sistema ta bem limitadinho mais e funcional.
Para banir uma pessoa diga /ban(nome da pessoa,dias,comentario) depois a personagem sera banida e seu ip sera banido.
Para ver a lista de banidos fale /banidos
Limitações do sistema
Vamos a instalar o sistema.
GO!
Execute o seguinte comando na sua database:
CREATE TABLE "ban" (
"player" INT NOT NULL,
"ip" INT NOT NULL,
"time" INT NOT NULL
);
Agora vá em lib e crie um arquivo lua chamado de ban e coloque isto:
function doPlayerBan(cid, time, coment)
exhaustion.set(cid, 24546, time*3600*24*1000)
db.executeQuery("INSERT INTO `ban` VALUES (".. getPlayerGUID(cid) ..", ".. getPlayerIp(cid) ..", ".. time ..")")
setPlayerStorageValue(cid, 42622, tostring(coment))
doBroadcastMessage(""..getPlayerName(cid).." foi banido em "..time.." dia(s) por "..coment.."")
end
function getPlayerBan(cid)
return exhaustion.check(cid, 24546)
end
function getPlayerIPbyBan(cid)
local ban = db.getResult("SELECT * FROM `ban` WHERE `player` = ".. getPlayerGUID(cid) ..";")
return ban:getDataInt("ip")
end
function getBanTimeByIp(cid)
local ban = db.getResult("SELECT * FROM `ban` WHERE `ip` = ".. getPlayerIp(cid) ..";")
return ban:getDataInt("time")
end
function getPlayerBanDb(cid)
local ban = db.getResult("SELECT * FROM `ban` WHERE `player` = ".. getPlayerGUID(cid) ..";")
if ban:getID() == -1 then
return true
end
return false
end
function getPlayerBanIpDb(cid)
local ban = db.getResult("SELECT * FROM `ban` WHERE `ip` = ".. getPlayerIp(cid) ..";")
if ban:getID() == -1 then
return true
end
return false
end
function getPlayerTimeBan(cid)
local ban = db.getResult("SELECT * FROM `ban` WHERE `player` = ".. getPlayerGUID(cid) ..";")
return ban:getDataInt("time")
end
function getPlayerIpBan(cid)
local ban = db.getResult("SELECT * FROM `ban` WHERE `player` ORDER BY `time`")
if ban:getID() == -1 then
return false
end
while true do
local ips = ban:getDataInt("ip")
if getPlayerIp(cid) == ips then
return true
end
if not ban:next() then
return false
end
end
end
function doShowTextBans(cid)
local ban = db.getResult("SELECT * FROM `ban` WHERE `player` ORDER BY `time`")
str = "Players Banidos:\n\n"
if ban:getID() == -1 then
doShowTextDialog(cid, 1387, "Não existe nenhum player Banido")
return true
end
while true do
local name = ban:getDataInt("player")
local time = ban:getDataInt("time")
local player = getPlayerNameByGUID(name)
str = str .. player .. " - Banido por "..time.." dia(s) \n\n"
if not ban:next() then
doShowTextDialog(cid, 1397, str)
break
end
end
end
function doShowTextBansForGroupUp(cid)
local ban = db.getResult("SELECT * FROM `ban` WHERE `player` ORDER BY `time`")
str = "Players Banidos:\n\n"
if ban:getID() == -1 then
doShowTextDialog(cid, 1387, "Não existe nenhum player Banido")
return true
end
while true do
local name = ban:getDataInt("player")
local time = ban:getDataInt("time")
local ip = ban:getDataInt("ip")
local player = getPlayerNameByGUID(name)
local ip = doConvertIntegerToIp(ip)
str = str .. player .. " - Banido por "..time.." dia(s) Ip "..ip.." \n\n"
if not ban:next() then
doShowTextDialog(cid, 1397, str)
break
end
end
end
Agora vá em talkactions e crie um arquivo lua chamado de ban e coloque este codigo:
function onSay(cid, words, param, channel)
local t = string.explode(param, ",")
if param == " " or param == "" or not param or isNumeric(param) then
return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Coloque o nome do player dizendo /ban(nome do player,dias de ban,por que ele foi banido)")
end
if t[2] == " " or t[2] == "" or not t[2] then
return doPlayerSendCancel(cid, "Coloque os dias de ban para o player dizendo /ban(nome do player,dias de ban,por que ele foi banido)")
end
if t[3] == " " or t[3] == "" or not t[3] then
return doPlayerSendCancel(cid, "Coloque os comentarios do player dizendo /ban(nome do player,dias de ban,por que ele foi banido)")
end
local player = getPlayerByNameWildcard(t[1], false)
if not player then
return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Este player "..t[1].." não existe")
end
doPlayerBan(player, t[2], t[3])
doRemoveCreature(player)
return true
end
Continue em talkactions e crie outra arquivo lua chamado de banidos:
function onSay(cid, words, param, channel)
if getPlayerGroupId(cid) >= 3 then
return doShowTextBansForGroupUp(cid)
end
doShowTextBans(cid)
return true
end
Coloque as seguintes tags em talkactions.xml:
Agora vá em creaturescripts e crie um arquivo lua chamado de ban e coloque isto:
function onLogin(cid)
if getPlayerBan(cid) then
doPlayerPopupFYI(cid, "Você esta banido")
return addEvent(doRemoveCreature, 180, cid)
end
if getPlayerIpBan(cid) then
doPlayerPopupFYI(cid, "Foi dectado um ip banido character banido")
return addEvent(doRemoveCreature, 180, cid)
end
return true
end
Registre o evento em login.lua colocando isto antes do ultimo RETURN:
registerCreatureEvent(cid, "ban")
Terminado coloque esta tag em creaturescripts.xml:
- Resets agora armazenados diretamente na 'DataBase', acabando com o sistema de Storages, e com o problema dos resets atrasados no look;
- Opções para Abilitar e Desabilitar Condições como por exemplo: 'look = true' , [true,false] configurando como achar melhor;
- E agora '[sTAGES]', para 'premmy' (Premium Account) e 'free' (Free Account);
- Instala o System e cria a Tabela de Resets com o comando "/installreset";
OBS: Sistema testado em 'Mysql' não tenho certeza si funciona em 'sql';
e Testando em: 8.50 (TFS 0.3.6) e 8.6 (TFS 0.4.0)
__________________________________________________________________________________________________________________________________
Vá em data/Talkactions, e crie um arquivo .lua e nomeie para
advancedResetSystem.lua e Adicione Isso:
--[[ <(Advanced Reset System 2.0)>
Autor: MarcelloMkez. Contato: (marcello_dirt@hotmail.com)
Versão: 2.0
Testado em: 8.50 e 8.60
TFS: 0.3.6 and 0.4.0
Fórum: http://www.xtibia.com/forum/topic/142463-advanced-reset-system-20/
-=[Características]=-
~( Versão 2.0 )~
- Resets agora Armazenados na DataBase; (Sem Valor de Storage)
- Instala o System e cria a Tabela de Resets com o comando "/installreset";
- Resets no Look do jogador ex: 22:10 You see Marcello [Reset 2] (Level 8). He is an elder druid.;
- [sTAGES] para "Premium Account" e "Free Account"; ]]
--=[Functions]=--
-- installReset()' [instala o Sistema.]
-- tableResetInstall()' [Verifica Se o Sistema ja foi instaladao.]
-- nowReseting()' [Verifica, retorna o erro ou reseta.]
-- getPlayerReset(cid)' [Pega numero de resets do player.]
-- checLevelStageReset(cid)' [Verifica o Level para Resetar.]
-- newReset(cid)' [Verifica todas as Condições de Reset.]
-- addValue(value)' [Adiciona numero de resets.]
--=[Comandos de Jogadores]=--
-- "/installreset" -- Só será usado uma vez, para instalar o sistema.
-- "!resetar" -- Para Resetar.
function onSay(cid, words, param)
if words =="!resetar" then
--[ Condições de Reset ] --
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 = false, -- Aparecer Resets no Look do Player? [true, false]
pid = getPlayerGUID(cid), -- Não Mexer.
--[ Configurações do Reset ] --
resetConf = {
Level = 350, -- Level Necessário para Resetar. [Valor]
backLvl = 8, -- Level que voltará após o Reset. [Valor]
time = 5, -- Tempo para o Player deslogar ao resetar, em segundos. [Valor]
},
}
--[[>> STAGES <<]]--
x=true;X=true -- Não Mexer.
local stage = {Abilitar = {x}, Desabilitar = {}, --<< Abilitar Stages?? >>-- [{x};{}]
-- [RESETS] | [PREMMY] | [FREE]
stage1= {resets= 4, premmy= 330, free= 350},
stage2= {resets= 9, premmy= 340, free= 355}, -- EXPLICANDO e Configurando stages. (Se estiver Abilitado [Abilitar = {x}])
stage3= {resets= 14, premmy= 355, free= 360}, -- resets = Número de resets para o Stage;
stage4= {resets= 19, premmy= 360, free= 365}, -- premmy = Level necessário para Premium Accounts;
stage5= {resets= 24, premmy= 370, free= 380}, -- free = Level necessário para Free Accounts;
stage6= {resets= 29, premmy= 380, free= 390}, -- Coloque em Ordem...
stage7= {resets= 35, premmy= 400, free= 410}, -- [OBS: MARQUE UM "X" PARA ABILITAR OU DESABILITAR OS STAGES]
stage8= {resets= 40, premmy= 410, free= 440}, -- EX: para desabilitar mude: Abilitar = {}, Desabilitar = {x}
stage9= {resets= 45, premmy= 450, free= 450},
stage10={resets= 50, premmy= 465, free= 465},
}
--[[>> FIM STAGES <<]]--
--=[Pega Valor de Resets]=--
function getPlayerReset(cid)
local qr = db.getResult("SELECT `reset` FROM `players` WHERE `id`= "..coNdConf.pid..";")
rss = qr:getDataInt("reset", coNdConf.pid)
if rss < 0 then
rss = 0
end
return rss
end
local success = " ~~ Sucesso! ~~ \nVocê tem agora "..(getPlayerReset(cid)+1).." resets. \nVocê será deslogado em "..coNdConf.resetConf.time.." segundos." ;err = doPlayerSendTextMessage
local qrt = db.getResult("SELECT `reset` FROM `players` WHERE `id`= "..coNdConf.pid..";");rss_db = qrt:getDataInt("reset", coNdConf.pid)
local lvl_query = "UPDATE `players` SET `level` = "..(coNdConf.resetConf.backLvl)..", `experience` = 0 WHERE `id`= " .. coNdConf.pid .. ";"
local reset_query = "UPDATE `players` SET `reset` = "..(getPlayerReset(cid)+(1)).." WHERE `id`= " .. coNdConf.pid .. ";"
local nolook_query = "UPDATE `players` SET `description` = '' WHERE `players`.`id`= " .. coNdConf.pid .. ";"
local look_query = "UPDATE `players` SET `description` = ' [Reset "..(getPlayerReset(cid)+(1)).."]' WHERE `players`.`id`= " .. coNdConf.pid .. ";"
--=[Reseta]=--
function addValue(value)
if coNdConf.look == false then
doRemoveCreature(cid)
db.executeQuery(lvl_query);db.executeQuery(reset_query);db.executeQuery(nolook_query)
else
doRemoveCreature(cid)
db.executeQuery(lvl_query);db.executeQuery(reset_query);db.executeQuery(look_query)
return LUA_NO_ERROR
end
end
function nowReseting()
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
end
if getPlayerLevel(cid) >= coNdConf.resetConf.Level and (coNdConf.teleport == false) then
doPlayerPopupFYI(cid, success)
addEvent(addValue, coNdConf.resetConf.time*1000, value)
else
doPlayerPopupFYI(cid, success)
addEvent(doTeleportThing, coNdConf.resetConf.time*900, cid, getTownTemplePosition(getPlayerTown(cid)))
addEvent(addValue, coNdConf.resetConf.time*1000, value)
return true
end
end
--[sTAGES Nao mexer em nada.]--
function checkLevelStageReset(cid)
local stages = {
{resets= stage.stage1.resets, premmy= stage.stage1.premmy, free= stage.stage1.free},
{resets= stage.stage2.resets, premmy= stage.stage2.premmy, free= stage.stage2.free},
{resets= stage.stage3.resets, premmy= stage.stage3.premmy, free= stage.stage3.free},
{resets= stage.stage4.resets, premmy= stage.stage4.premmy, free= stage.stage4.free},
{resets= stage.stage5.resets, premmy= stage.stage5.premmy, free= stage.stage5.free},
{resets= stage.stage6.resets, premmy= stage.stage6.premmy, free= stage.stage6.free},
{resets= stage.stage7.resets, premmy= stage.stage7.premmy, free= stage.stage7.free},
{resets= stage.stage8.resets, premmy= stage.stage8.premmy, free= stage.stage8.free},
{resets= stage.stage9.resets, premmy= stage.stage9.premmy, free= stage.stage9.free},
{resets=stage.stage10.resets, premmy=stage.stage10.premmy, free=stage.stage10.free},
}
local resets = getPlayerReset(cid)
for i, tab in ipairs(stages) do
if resets <= tab.resets then
coNdConf.resetConf.Level = isPremium(cid) and tab.premmy or tab.free
break
end
end
if (getPlayerLevel(cid) < coNdConf.resetConf.Level) then
err(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
end
if getPlayerLevel(cid) >= coNdConf.resetConf.Level and (coNdConf.teleport == false) then
doPlayerPopupFYI(cid, success)
addEvent(addValue, coNdConf.resetConf.time*1000, value)
else
doPlayerPopupFYI(cid, success)
addEvent(addValue, coNdConf.resetConf.time*1000, value)
addEvent(doTeleportThing, coNdConf.resetConf.time*900, cid, getTownTemplePosition(getPlayerTown(cid)))
return true
end
end
function newReset(cid)
if(coNdConf.needPz == true) and (getTilePzInfo(getCreaturePosition(cid)) == LUA_ERROR) then
err(cid,MESSAGE_STATUS_CONSOLE_BLUE,"- Você Precisa estar em Protection Zone Para Resetar. -") return TRUE end
if(coNdConf.needPa == true) and not isPremium(cid) then
err(cid,MESSAGE_STATUS_CONSOLE_BLUE,"- Você Precisa ser Premium Account para Resetar. -") return TRUE end
if(coNdConf.withe == false) and (getCreatureSkullType(cid) == 3) then
err(cid,MESSAGE_STATUS_CONSOLE_BLUE,"- Você não pode resetar em condições de PK Withe. -") return TRUE end
if(coNdConf.red == false) and (getCreatureSkullType(cid) == 4) then
err(cid,MESSAGE_STATUS_CONSOLE_BLUE,"- Você não pode resetar em condições de PK Red. -") return TRUE end
if(coNdConf.battle == true) and (getCreatureCondition(cid, CONDITION_INFIGHT) == TRUE) then
err(cid,MESSAGE_STATUS_CONSOLE_BLUE,"- Você Precisa estar sem Battle para Resetar. -") return TRUE end
local xy = {true,false}
table.insert(stage.Abilitar, false)
table.insert(stage.Desabilitar, false)
if stage.Abilitar[1] == xy[1] and stage.Desabilitar[1] == xy[2] then
checkLevelStageReset(cid)
elseif stage.Abilitar[1] == xy[2] and stage.Desabilitar[1] == xy[1] then
nowReseting()
else
doPlayerPopupFYI(cid, "LUA_ERROR; Configure corretamente o Sistema de STAGES!")
end
return true
end
function tableResetInstall()
print(not rss_db and LUA_ERROR or "Tabela de Resets: Instalada ... [success] ")
addEvent(newReset, 1000, cid)
return false
end
if tableResetInstall() then
end
end
--=[install System]=--
function installReset()
if db.executeQuery("ALTER TABLE `players` ADD reset INT(11) NOT NULL DEFAULT 0;") then
print("[MarcelloMkez] -= Advanced Reset System 2.0 por DataBase =- Instalado com sucesso!")
return TRUE
end
print('[Advanced Reset System/MarcelloMkez] Não foi possível instalar o Sistema.')
return FALSE
end
local tt = {
"Preparando Instalação...",
"Instalando: TableReset Db...",
"Instalando: getPlayerReset()...",
"Instalando: addValue()...",
"Instalando: checkLevelStageReset()...",
"Instalando: newReset() and nowReseting()...",
"Finalizando Instalação...",
"...",
success = {
"Iniciando...",
"function: TableReset Db... [success]",
"function: getPlayerReset()... [success]",
"function: addValue(value)... [success]",
"function: checkLevelStageReset()... [success]",
"function: newReset() and nowReseting()... [success]",
"Fim da Instalação. ",
"by: ~~ MarcelloMkez ~~ \nContato: marcello_dirt@hotmail.com",
inst = {"MarcelloMkez","Advanced Reset System 2.0 por DataBase"
},
},
}
if words == "/installreset" and getPlayerAccess(cid) >= 3 then
function install()
if installReset() then
print(""..tt.success[7].."")
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,""..tt.success[8].."")
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "["..tt.success.inst[1].."] -="..tt.success.inst[2].."=- Instalado com sucesso!")
else
print("["..tt.success.inst[1].."] FALHA NA INSTALAÇÃO! [O sistema ja foi instalado].")
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "["..tt.success.inst[1].."] FALHA NA INSTALAÇÃO! [O sistema ja foi instalado].")
end
return 1
end
function concl(cid)
local typetx = MESSAGE_STATUS_CONSOLE_BLUE
print(""..tt.success[7].."")
print(""..tt[8].."")
doPlayerSendTextMessage(cid, typetx,""..tt.success[7].."")
doPlayerSendTextMessage(cid, typetx,""..tt[8].."")
addEvent(install, 1000,cid)
end
function finall(cid)
local typetx = MESSAGE_STATUS_CONSOLE_BLUE
print(""..tt.success[6].."")
print(""..tt[7].."")
doPlayerSendTextMessage(cid, typetx,""..tt.success[6].."")
doPlayerSendTextMessage(cid, typetx,""..tt[7].."")
addEvent(concl, 3000,cid)
end
function installDd(cid)
local typetx = MESSAGE_STATUS_CONSOLE_BLUE
print(""..tt.success[5].."")
print(""..tt[6].."")
doPlayerSendTextMessage(cid, typetx,""..tt.success[5].."")
doPlayerSendTextMessage(cid, typetx,""..tt[6].."")
addEvent(finall, 1000,cid)
end
function installCc(cid)
local typetx = MESSAGE_STATUS_CONSOLE_BLUE
print(""..tt.success[4].."")
print(""..tt[5].."")
doPlayerSendTextMessage(cid, typetx,""..tt.success[4].."")
doPlayerSendTextMessage(cid, typetx,""..tt[5].."")
addEvent(installDd, 1000,cid)
end
function installBb(cid)
local typetx = MESSAGE_STATUS_CONSOLE_BLUE
print(""..tt.success[3].."")
print(""..tt[4].."")
doPlayerSendTextMessage(cid, typetx,""..tt.success[3].."")
doPlayerSendTextMessage(cid, typetx,""..tt[4].."")
addEvent(installCc, 1000,cid)
end
function installAa(cid)
local typetx = MESSAGE_STATUS_CONSOLE_BLUE
print(""..tt.success[2].."")
print(""..tt[3].."")
doPlayerSendTextMessage(cid, typetx,""..tt.success[2].."")
doPlayerSendTextMessage(cid, typetx,""..tt[3].."")
addEvent(installBb, 1000,cid)
end
function toInstall()
local typetx = MESSAGE_STATUS_CONSOLE_BLUE
print(""..tt.success[1].."")
print(""..tt[2].."")
doPlayerSendTextMessage(cid, typetx,""..tt.success[1].."")
doPlayerSendTextMessage(cid, typetx,""..tt[2].."")
addEvent(installAa, 1000,cid)
end
function preparation()
local typetx = MESSAGE_STATUS_CONSOLE_BLUE
print(""..tt[1].."")
doPlayerSendTextMessage(cid, typetx,""..tt[1].."")
addEvent(toInstall, 3000,cid)
end
if preparation() then
end
end
return 1
end
--=[by: MarcelloMkez]=--
- Após adicionar o script em TalkActions e em Talkactions.xml
Use o comando "/installreset" em jogo,
OBS: o System so pode ser Instalado pelo GOD!
A a instalação será mostrada no default, e no Distro!
Apos isso, Sistema Instalado!
'Explicando stages:
Stage 1:
stage1= {resets= 4, premmy= 330, free= 350},
resets: ---- Quantidade de Resets para o stage.
premmy: ---- Level que Premmium Accounts podera Resetar. (no caso ate 4 resets)
free: ------ Level que Free Accounts podera Resetar. (no caso ate 4 resets)
--- Bom como vcs pode ver, vai ate o 'Stage 10':
stage10={resets= 50, premmy= 465, free= 465},
--- Intao irei explicar, caso queiram adicionar mais stages...
Use 'Ctrl + G' com o script aberto, e digite 71, e aperte enter,
logo ira direcionar para linha 71 que no caso é esta:
stage10={resets= 50, premmy= 465, free= 465},
- Abaixo dela adicione uma exatamente igual, so modificando o numero do stage ficando assim: