Ir para conteúdo

Kydrai

Visconde
  • Total de itens

    250
  • Registro em

  • Última visita

  • Dias Ganhos

    13

Kydrai venceu a última vez em Janeiro 3

Kydrai had the most liked content!

Sobre Kydrai

  • Rank
    "Keep Your Mind Wide Open"

Informações

  • Forma que conheci o xTibia
    Sites de Busca
  • Sou
    Programador

Últimos Visitantes

11.523 visualizações
  1. Ta dizendo que não existe a coluna language na tabela accounts, deve ter o sistema de multi linguagem no seu servidor. Você pode remover o sistema do seu servidor ou executar esse comando SQL no seu banco de dados para inserir a coluna: ALTER TABLE `accounts` ADD `language` INT(11) NOT NULL DEFAULT '0'
  2. @dalvorsn Não recomendo dessa forma, assim os players poderiam burlar fácil editando o html, precisando de outras formas de verificação. Você precisa tirar o select, como já disseram, e editar a função create_character no arquivo system\application\controllers\character.php. La tem um comando assim (ou parecido): $this->form_validation->set_rules('sex', 'Sex', 'required|integer|callback__checkSex');, ele verifica o sexo do personagem. Antes desse comando você pode fazer algo assim (não testei): if (in_array($_POST['vocation'], array(1, 2, 3, 4))) { $_POST['sex'] = 0; } else if (in_array($_POST['vocation'], array(5, 6, 7, 8))) { $_POST['sex'] = 1; } else { $_POST['sex'] = -1; } Dessa forma, se a vocação escolhida for 1, 2, 3 ou 4 terá o sex 0 (feminino), se for 5, 6, 7, 8 terá o sex 1 (masculino). Caso não seja nenhum desses dará erro de sexo inválido e não criará o personagem.
  3. O cid não altera a cada ação, ele é gerado quando a criatura é "colocada no mapa" (login, /m, /s, etc). E nesse caso dele o cid é um monstro, o erro é porque não localiza o monstro. Não da pra saber exatamente tudo que ocorre no serv só com essas linhas, mas supondo que nada influencie no dano após esse script, você poderia trocar tudo isso por algo similar a isso: if isSummon(cid) and isPlayer(getCreatureMaster(cid)) then local hp = getCreatureHealth(cid) if type == STATSCHANGE_HEALTHLOSS then hp = hp - value elseif type == STATSCHANGE_HEALTHGAIN then hp = hp + value end doPlayerSendCancel(getCreatureMaster(cid), "%[email protected]" .. hp .. "@" .. getCreatureMaxHealth(cid)) end Isso é só um exemplo, vai depender do que tem no seu serv.
  4. O erro é pq a criatura (cid) não existe (morreu ou foi removida) quando executa a função dentro do addEvent. Teria que passar o getCreatureMaster(cid) como parâmetro pro addEvent, ao invés de somente o cid. Ainda sim, se o cid não existe no momento que executa o addEvent você não vai conseguir executar as funções getCreatureHealth e getCreatureMaxHealth dentro do addEvent, teria que ter outra forma de pegar o hp dele. Seria algo como: if isSummon(cid) and isPlayer(getCreatureMaster(cid)) then addEvent(function(cid, master) if isCreature(master) then if isCreature(cid) then doPlayerSendCancel(master, "%[email protected]" .. getCreatureHealth(cid) .. "@" .. getCreatureMaxHealth(cid)) else -- outro comando para pegar o hp end end end, 100, cid, getCreatureMaster(cid)) end Sobre o hp, se o max health não muda, você pode passar ele como parâmetro junto com o cid e o master. Já o health, por ser onStatsChange, dependendo dos scripts do servidor, da pra saber o hp após executar este script somando o valor do dano com o hp. Caso contrário, imagino que você tenha algum comando pra pegar o hp da criatura que não existe (direto da pokeball, por exemplo).
  5. Na verdade as storages são utilizadas nas criaturas em geral, tanto que a função original é doCreatureSetStorage/getCreatureStorage (na versão 0.3.6 e 0.4). A única diferença de colocar no player é que salva no banco de dados no save, já no monstro/npc não salva quando ele morre ou desaparece. E também não tem como uma storage no monstro sobrescrever uma no player, como você disse a storage vai estar vinculada a um uid. No máximo, em alguns casos, você vai precisar checar se a criatura é um monstro, npc ou player nos scripts.
  6. Precisa remover o break da função luaDoCreatureSetNick para o nome ser enviado para todos os jogadores na tela. E também tem que arrumar o que a função lua irá retornar, no caso acho que seria bom um false ou true. O certo seria assim: int32_t LuaScriptInterface::luaDoCreatureSetNick(lua_State* L) { //doCreatureSetNick(cid, nick) ScriptEnviroment* env = getEnv(); std::string nick = popString(L); Creature* creature = env->getCreatureByUID(popNumber(L)); if (creature) { SpectatorVec list; g_game.getSpectators(list, creature->getPosition()); Player* player = NULL; creature->Nick = nick; for (SpectatorVec::const_iterator it = list.begin(); it != list.end(); ++it) { if (player = (*it)->getPlayer()) { player->sendCreatureNick(creature); } } lua_pushboolean(L, true); } else { lua_pushboolean(L, false); } return 1; }
  7. Nunca vão te dar proteção pra DDOS, é mais fácil cancelarem seu dedicado ou vps lá. O fato de ser 1gbps até melhora, mas pode facilmente ser derrubado também. As vezes nem chega a 1gbps, dependendo do ataque eles desativam seu ip até antes, já passei muito por isso lá e proteção DDOS não é com eles, cansei de ver eles dizendo que não podiam fazer nada. A ****** só é menos pior. Mas se quer mesmo proteção DDOS é melhor comprar direto como da softlayer e pagar por firewall físico. E cuidado com quem oferece proteção DDOS por software, na maioria das vezes, se não sempre, é enganação, pois o fato do ataque chegar ao servidor já pode ser considerado para desativarem seu ip, a não ser que você entre em algum acordo direto com o fornecedor.
  8. Vou dizer o modo como descobri (no cliente atual do pstorm ainda não tem), mas só estarei repassando o conhecimento que me repassaram Quem deu as dicas foi o Baxnie, mesmo desenvolvedor que participa do otclient e fez isso para o PO na época. Basicamente você vai na parte onde o cliente lê o packet com 0x83, e substitui a função pra pegar uin8 pela uin16. Pra achar o endereço dessas funções seria por comparação. Você já tem a ordem dos packets no OT, então no cliente seria a mesma coisa. Pra quem não sabe usar o ollydbg ou fazer isso aí, no tpforums tem ótimos tutoriais. joinu sempre visitando o forum, também deve ser capaz de fazer isso rs Mas pra ser sincero, se tudo der certo, acho que logo o otclient vai predominar nos otservs.
  9. Pra poder usar um item a distância precisa usar allowfaruse na action: <action itemid="id" event="script" allowfaruse="1" value="script.lua" /> Claro que precisa ter a opção de "use with" no item, caso não tenha aí precisa editar no Tibia.dat, nesse caso é só baixar um item editor.
  10. O Xtibia tem ótimos tutoriais, mas você não vai achar tudo em um só lugar, quem realmente quer aprender corre atrás e busca quem sabe, já ajudei e vi muita gente aprendendo com esse fórum e nunca me importei de tirar dúvidas, mas também não da pra ficar ensinando tudo que pedem. Também sei que tem muita gente que não quer ajudar com o seu conhecimento como você mesmo disse. Algumas delas apenas passam dicas de como fazer ou arrumar e muitas vezes são criticadas por isso, já que o que eles querem mesmo é o script funcionando. Um dos problemas com os pedidos é que a maioria que tenho visto é de pokemon, muitos nem tem como fazer ou as pessoas precisam baixar um servidor específico para tentarem fazer. Sobre os bugs graves em servidores como o TFS eu concordo, praticamente ninguém ajuda mesmo. E um dos motivos é claro, a maioria ta nas sources, coisa que a equipe do TFS tem deixado privada, ou ainda as pessoas pegam editam e não passam as sources aí o tempo passa e eles perdem esses arquivos, e quando o motivo é esse muitas vezes não tem o que fazer mesmo. Pior que isso foi a um tempo quando postaram as sources do TFS aqui e os admins da otland vieram ameaçar e acabaram retirando do fórum, assim não vai pra frente mesmo.
  11. Tenho 2 dev aqui pra você testar, só pra facilitar não use no pc mais de um dev instalado ou um codeblocks, nesse caso é melhor desinstalar ele, deixando só o dev. E use a pasta C:/Dev-cpp, que é a padrão se você já instalou alguma vez. Pois é muito fácil ter conflitos caso tenha mais de um. Não cheguei a testar, mas sei que são pra 0.4, se der erro mostre o erro, se não fica difícil saber o que pode ser. Os devs foram postados pelo Luke e pelo Alikarbam em outro fórum. Luke -> http://www.mediafire...6273zfgdd5n3qbg Alikarbam -> http://www.mediafire...idztgdt31313ms7
  12. É -S (maiúsculo), se não funciona então não sei o motivo, tenta dar man screen ou ver o help dele. No tópico você colocou ctrl + A, faltou o [ pra rolar. Na verdade é CTRL + A pra ativar a escolha de opções, aí depois pode apertar o D pra fechar ou o [ pra rolar.
  13. Boa. Eu prefiro usar screen -S NOME pra dar um nome pra screen, assim fica mais prático usando screen -r NOME. Outro comando útil é Ctrl + A [ que deixa você "rolar" (scrollback) a screen.
  14. As maiores dificuldades que tivemos foram relacionadas a servidores, coisas como estabilidade, save, segurança e ataques. Isso é fundamental para se manter um servidor online. São ótimas dicas e é um assunto que está em falta nos fóruns de open tibia.
  15. Esse script não usa storage, só usar o isVip ao invés de storage. O site é somente pra demonstração já que não é a versão atual. O sistema não é de vip automática, pra isso teria que adicionar o sistema do pagseguro no site. Quem tiver dúvidas sugiro usar a área de pedidos ou dúvidas de scripts, porque não to dando mais suporte pra esse sistema, visto que a maioria das dúvidas não são relacionadas a ele e sim a scripts, e lá tem mais chances de alguém responder.
  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×
×
  • Criar Novo...