NPC ou script de reset
-
Quem Está Navegando 0 membros estão online
Nenhum usuário registrado visualizando esta página.
-
Conteúdo Similar
-
Por Linus
Você pode configurar se quer que o preço aumente a cada reset, se quer que o level pra resetar aumente e se vc quer que a vida resete junto (e quanto % da vida atual será a vida após resetar).
Testado em tfs 1.1, Versão 10.77
Vá em data/npc/lib/ crie npc_resets.lua :
Você pode editar mexendo aqui. no script acima :
config = { minlevel = 150, --- Level inical para resetar price = 10000, --- Preço inicial para resetar newlevel = 20, --- Level após reset priceByReset = 0, --- Preço acrescentado por reset percent = 30, ---- Porcentagem da vida/mana que você terá ao resetar (em relação à sua antiga vida total) maxresets = 50, ---- Maximo de resets levelbyreset = 0 --- Quanto de level vai precisar a mais no próximo reset } agora em data/npc/ crie reseter.XML :
Agora em data/npc/scripts crie reseter.lua :
Img :
-
Por gpedro
Testado: MySQL & SQLite
Distro: TFS 0.4_SVN & TFS 0.3.6
MySQL
ALTER TABLE `players` ADD `resets` INT(11) NOT NULL DEFAULT "0"; SQLite ALTER TABLE players ADD resets INTEGER not null default 0 Adicionando nas sources player.h procure por: uint32_t level; logo abaixo, adicione: uint32_t resets; iologindata.cpp procure por query << "SELECT `id`, `account_id`, `group_id`, `world_id`, `sex`, `vocation`, `experience`, `level`," substitua por: query << "SELECT `id`, `account_id`, `group_id`, `world_id`, `sex`, `vocation`, `experience`, `level`, `resets`, " procure por player->level = std::max((uint32_t)1, (uint32_t)result->getDataInt("level")); logo abaixo adicione: player->resets = (uint32_t)result->getDataInt("resets"); procure por query << "`maglevel` = " << player->magLevel << ", "; logo abaixo adicione: query << "`resets` = " << player->resets << ", "; players.cpp procure por: s << " (Level " << level << ")"; substitua por: s << " (Level " << level << ") [Reset " << resets << "]"; players.h procure por: void setPromotionLevel(uint32_t pLevel); logo abaixo adicione: uint32_t getResets() { return resets;} void setResets(int32_t amount) { resets += amount; if (resets < 0) {resets = 0;} } luascript.cpp para 0.3.6 static int32_t luaDoPlayerSetIdleTime(lua_State* L); logo abaixo adicione: static int32_t luaGetResets(lua_State* L); static int32_t luaSetResets(lua_State* L); talkactions.xml <talkaction words="!rank;/rank" event="script" value="ranks.lua"/> <talkaction words="!reset;/reset" script="reset.lua"/> ranks.lua
Créditos: Dark Skyllen, Marcryzius, Mock, Kydrai, Cykotitan, gpedro*.
* adaptação para 0.4
-
Por xWhiteWolf
Fala galera do TK, hoje vim pra trazer pra vocês um npc criado por mim e pelo Nogard numa madrugada aí para solucionar a dúvida de um cara no suporte. Eu dei uma melhorada no script original, tirei umas coisas repetidas e adicionei novas funções;
Você agora pode configurar se quer que o preço aumente a cada reset, se quer que o level pra resetar aumente e se vc quer que a vida resete junto (e quanto % da vida atual será a vida após resetar).
Testado em TFS 0.3.6, Versão 8.45
Sem mais delongas, vamos ao script.
Antes de tudo crie um arquivo chamado reseter.lua na pasta data\npc\scripts\ e coloque isso daqui dentro dele:
Você pode editar tudo mexendo aqui:
local config = {
minlevel = 150, --- level inical para resetar
price = 10000, --- preço inicial para resetar
newlevel = 20, --- level após reset
priceByReset = 0, --- preço acrescentado por reset
percent = 100, ---- porcentagem da vida/mana que você terá ao resetar (em relação à sua antiga vida total)
levelbyreset = 0 --- quanto de level vai precisar a mais no próximo reset
}
Feito isso, crie agora o npc que irá utilizar esse script.. em data\npc crie um arquivo.xml chamado Reseter.xml e coloque isso dentro dele:
Agora é só colocar o seu npc no mapa pelo mapa editor e curtir
OBS 1: Se seu server for 8.6 ou maior troque no script.lua as funções db.executeQuery por db.query
OBS 2: Esse script dava pra ser diminuido ainda mais mas por hora deixa ele assim, se vc tiver alguma proposta melhor por favor poste nos comentários que eu testo a sua versão e edito o tópico se for o caso.
OBS 3: Não remova os créditos, isso é a coisa mais baixa e suja que alguém pode fazer.. eu scripto pra ajudar a comunidade do Tibia a evoluir e libero 99% doque eu faço, se vocês não removerem os créditos e não postarem em outros fórums sem minha permissão isso pode continuar assim.
--- EDIT: Coloquei algumas imagens pra vcs verem como fica no server
EDIT: Arrumei o problema de o npc não dar bye automáticamente qnd o player se afasta, bugando em algumas versões e impedindo de conversar com outros npcs. Apenas substituam o arquivo em scripts pela versão atualizada, grato.
EDIT2: Novos erros arrumados, agora o NPC dá bye automaticamente e não buga qnd te reseta.
EDIT3: Resolvido bug de dar hi, reset, yes várias vezes e derrubar o servidor (troque tanto o xml qnt o script do npc)
O script também foi identado.
-
Por Marjer
Ola! Eu tenho uma duvida!
Eu tenho 1 mapa 9.60 e ficou 1 tempo online, e assim foi crecendo.. (accs, players, etc..)
E eu consegui passar para 10.10
E gostaria de saber se tem como passa a database do 9.60 pro 10.10 ?
Tem algum jeito que eu possa fazer isso ?
Eu fiz uns test..
Quando eu coloquei a database do 9.60 na pasta do 10.10
Eu abri o executer e aparece isso de primeiro :
(Uso Distro : The Forgotten Server, version 0.3.7_7_SVN)
Updating Database Manager
Updating Database to version 37...
Updating has been updated to version: 37.
Updating Database to version 38...
Updating has been updated to version: 38.
Optimized database.
E abriu normalmente...
Nessa database tem as contas, e depois que abril certinho o mapa.
Eu tento entra e fala que o password ou o login estao errados.
E quando eu logo no account manager da esse erro :
Error during getDataInt(offinetraining_time)
Error during getDataInt(offinetraining_skill)
sqlite3_prepare_v2(): SQILITE ERRO: no such table? player_inboxitems (SELECT "pid, "sid", "itemtype", "count", "attributes" FROM "player_inboxitems" WHERE "player_id" = 1 ORDEN BY "Sid Desc;)
Toda vez que entro no jogo, com personagem, ou account manager, no Server Log aparece isso :
00:32 You must be logged out for more than 10 minutes to start offline training.
E quando entro eu ando um pouco, depois eu relogo, vai para o templo, e com a mesma mensagem acima!
E quando logo, no executer, da 1 erro muitoo grande!
Irei postar uma foto!
Foto :
Entao.. Tem como ?
---------------------------
(Uso Distro : The Forgotten Server, version 0.3.7_7_SVN)
Entao...
Eu peguei outra database, porque a da versão 9.60 dava erro!
Eu fiz varios tests com a database.
Pelo o que eu procurei e testei, essa database funcionou 100%
Massss.....
Meu mapa é Radbr, então tem o sistema de resets.
Já tentei falar, /installreset, é mesma coisa que nada!
E quando o player reseta nessa database, da 1 erro!
Mas sera que é erro no Script ? ( Mas na outra versão 8.60 ea 9.60 funcionava!.... )
E o player volta pro level 20, e com vida e mana de antes.
Mas não aparece no look, e da erro no executer :
Error during get DataInt (reset) "4 vezes aparece esse erro" e depois...
Tabela de Resets: Intalada ... [success]
Error during get DataInt (reset)
Ai desloga o char.. E quando desloga da esse erro :
sqlite3_prepare_v2(): SQLITE ERROR: no such column: reset (UPDATE "players" SET "reset" = 1 WHERE "id"=3;)
Ai loga o char... E da esse erro :
sqlite3_prepare_v2(): SQLITE ERROR: no such column: reset (SELECT "ID", "reset" FROM "players" ORDEN BY DESC;)
Tem algum jeito de arruma isso ?
Eu procurei algumas coisas mas não achei! Talvez alguma SQL query possa ajuda nisso! Talvez..
Se alguém souber... Por favor me ajuda.
Irei colocar meu servidor online, e preciso de uma database boa! Nem que não de a do 9.60
Mas uma que funcione...! E não de erro do sistema de reset!
Por favor se alguém puder me ajuda, eu agradeço!
Atenciosamente, Marjer!
EDIT : Foto postada
-
Por Cleiton Felipi
Bom dia galera!
Bom eu gostaria de saber se existe algum comando para mysql que reseta o level e mana o life e os skill dos players, sem deletar os char, e o comando que manda todos para o templo.
Não sei se estou na area correta, se não tiver desculpa.
Desde já obrigado.
-
Posts Recomendados
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.