Líderes
Conteúdo Popular
Exibindo conteúdo com a maior reputação em 10/29/15 em %
-
Conteúdo: Imagens Mapa não incluso Downloads: Removendo Bugs de itens (como order, fishing, etc) Sistemas feitos para o PDE: Tutoriais feitos para o PDE: Bugs reportados:5 pontos
-
[8.6 ~ 9.x ] Gesior WebGesiorMudrocK 100%
JustinnoTibianno e um outro reagiu a Mudrock por um tópico no fórum
Opa pessoal do XTIBIA tudo bem, tava editando um Gesior para o meu servidor a um tempo mais o projeto acabo dando errado por problemas técnicos, e eu fiquei com meu gesior pronto porem sem utilidade então resolvi trazer para vocês OBSERVAÇÃO : esse gesior erá de um projeto meu, finalizei ele hoje quando peguei uma base que um amigo meu me passo para ajuda-lo, e acabei implementando alguns sistemas e funções, ESSE GESIOR FOI FEITO APARTIR DOS MEUS GOSTOS, ESTOU SOMENTE DISPONIBILIZANDO-O PARA VOCÊS, PORTANTO FIQUEM A VONTADE PARA EDITAR NOMES, IMAGENS, CORES. Bugs arrumados Compatibilidade TFS 0.3 TFS 0.3.8 TFS 0.4 Download em anexo DATABASE : http://www.mediafire.com/download/w3n1nnw0gtmc2k0/mudrock.sql GESIOR : http://www.mediafire.com/download/frfgq96jawas214/mudrockwebgesior.rar Créditos MudrocK Archez Aleh Hollister Matheus ( for top level )2 pontos -
Ta na mão amigo, testado em TFS 0.3.7: local TeleportLocal = {pos = {x = 984, y = 914, z = 6}, toPos = {x = 987, y = 912, z = 6}} -- Pos de Onde vai ser criado o teleport/e onde vai ser teleportado local from,to = {x = 981, y = 913, z = 6},{x = 987, y = 920, z = 6} local function getPlayersInRange(pos1, pos2) local creaturesList = {} for px = pos1.x, pos2.x do for py = pos1.y, pos2.y do if not (x == 0 and y == 0) then local creature = getTopCreature({x = px, y = py, z = pos1.z}) if creature.type == 1 then table.insert(creaturesList, creature.uid) end end end end return creaturesList end function onUse(cid, item, frompos, item2, topos) if item.itemid == 1945 then player1pos = {x = 983, y = 912, z = 6, stackpos=253} -- piso 1 que tem que ter player player1 = getThingfromPos(player1pos) player2pos = {x = 985, y = 912, z = 6, stackpos=253} -- piso 2 que tem que ter player player2 = getThingfromPos(player2pos) if isPlayer(player1.uid) and isPlayer(player2.uid) then if #getPlayersInRange(from, to) >= 1 then doPlayerSendCancel(cid,"Tem alguém nessa quest.") return TRUE end nplayer1pos = {x = 984, y = 915, z = 6, stackpos=253} -- piso onde sera levado o player do piso 1 nplayer2pos = {x = 984, y = 918, z = 6, stackpos=253} -- piso onde sera levado o player do piso 2 doSendMagicEffect(player1pos,2) doSendMagicEffect(player2pos,2) doTeleportThing(player1.uid,nplayer1pos) doTeleportThing(player2.uid,nplayer2pos) doSendMagicEffect(nplayer1pos,4) doSendMagicEffect(nplayer2pos,4) local t = getTileItemById(TeleportLocal.pos, 5023).uid if t then return t > 1 and doRemoveItem(t) and doSendMagicEffect(TeleportLocal.pos, CONST_ME_POFF) end doTransformItem(item.uid,1946) else doPlayerSendCancel(cid,"Voce prescisa de 2 pessoas para fazer éssa quest.") return TRUE end elseif item.itemid == 1946 then doTransformItem(item.uid,1945) end return TRUE end2 pontos
-
Compilando TFS 1.3 com vídeo-aula
JapaSuetsugu reagiu a Bruno por um tópico no fórum
Compilando TFS 1.3 no Windows 1. Baixe os softwares requeridos Para compilar o The Forgotten Server no Windows, você vai precisar: Visual Studio 2015 (Compilador) TFS SDK v3.2 (libs) Libs do Boost C++ (32-bits, 64-bits) 2. Instale os softwares requeridos Após ter baixado os softwares listados na etapa acima, comece instalando o Visual Studio e Boost C++. Extraia o TFS SDK v3.2 em qualquer pasta do seu computador e execute o arquivo "register_tfssdk_env.bat" para setar a variável de ambiente do local onde está o TFS SDK, assim nosso compilador irá encontrar as libs quando começar a compilar. Mova o arquivo "register_boost_env.bat" da pasta do TFS SDK para a pasta onde você instalou as libs do Boost C++ e execute-o (se você seguiu os passos do instalador, está esta na pasta chamada boost_1_62_0). 3. Baixe as sources Se você possuir o Git Client instalado, você poderá clonar a última cópia com este comando: > git clone https://github.com/otland/forgottenserver.git Se você não possuir o Git Client instalado, você poderá baixar a última cópia do The Forgotten Server através do link: https://github.com/otland/forgottenserver/archive/master.zip 4. Compilando Procure o diretório vc14 na pasta do The Forgotten Server que você baixou, e abra o arquivo "theforgottenserver.sln". Isso deverá iniciar o Visual Studio 2015 e você estará pronto para continuar. Para configurar a compilação, navegue para Build -> Configuration Manager no menu superior. Um popup deverá aparecer onde você poderá escolher entre "Release" ou "Debug" para compilar, escolha também para qual Platadorma você irá compilar: 32-bits (Win32) ou 64-bits (x64). Para iniciar a compilação, abra o menu Build novamente e clique em Build Solution (Ctrl + Shift + B). 5. Vídeo-aula 6. Créditos Mark - Autor do tutorial e do projeto The Forgotten Server Bruno Minervino - Tradução e gravação do vídeo1 ponto -
[Fechado] Lista de servidores derivados (SERVIDORES NOVOS, PFV, MANDEM MP OU MANDEM O TÓPICO DO SERVIDOR)
Silveira Crtba reagiu a FlamesAdmin por um tópico no fórum
Bom dia, postarei uma Lista de Servidores Derivados encontrados aqui na comunidade xT. Não colocarei todos, e sim, aqueles que serão úteis para algumas pessoas. Então vamos lá! Derivado Poketibia Derivado Dragon Ball, Naruto, Biohazard Peço à quem postar servidor novo, para que me mande uma MP ou comentar até mesmo aqui no tópico para que eu possa fixar o tópico aqui. Obrigado!1 ponto -
Galera seguinte meu TFS é 0.3.6 cliente 8.54 Gostaria da ajuda de vocês para uma TALKACTION que troca-se o outifit do meu char, mas que caso ele se mova o outifit volta-se ao normal... ex: ele fala: !Transform - e seu outifit que antes era o CITIZEN muda para o de um arbusto - mas caso o player se mova o outifit novo eh cancelado e ele volta ao normal.. obs: ao se transformar nao tem tempo para voltar ao normal somente deslogando, ou se movendo. - caso ele gire no lugar o outifit nao mude ( ctrl + Setas) obrigado aguardo um apoio e prometo meu REP+1 ponto
-
1 ponto
-
As sources são vários codigos que juntos fazem o servidor tibia, todas funções estão lá. Para editar eu aconselho ao menos uma noção de C++, pode ser com vários programas, tipo o Code::Blocks, DevCpp, etc1 ponto
-
Bepo, para não ficarmos lotando esse tópico de menssagens, me passe um contato seu, (skype ou qualquer coisa) para resolvermos isto o mais rápido possível, pode passar por MP ou por aqui, você quem sabe.1 ponto
-
Mudar Nomes No Entergame Do Otclient
Developer Berg reagiu a Deadpool por uma questão
Bem, ainda não parei para mexer nisso. Mas em breve postarei, pode ficar sussa haha, caso tenha mais alguma duvida, é só criar um topico ai que a gente te ajuda ^^1 ponto -
Mudar Nomes No Entergame Do Otclient
Developer Berg reagiu a Deadpool por uma questão
vai no seu entergame.otui, procura nas primeiras linhas isso: EnterGameButton < Button e subistitui por isso: EnterGameButton < Button image-source: botao.png image-clip: 0 0 20 20 image-border: 2 image-color: #ffffffff $hover: image-clip: 0 20 20 20 $pressed: image-clip: 0 40 20 20 $disabled: image-color: #ffffff661 ponto -
1 ponto
-
Mudar Nomes No Entergame Do Otclient
Developer Berg reagiu a Deadpool por uma questão
Faz a mesma coisa, só que você apaga contexto e edita pra isso olha: Desce lá no fim, e vai ter às propriedades do OK: Adiciona isto: margin-bottom: 8 margin-right: 10 Segue o mesmo procedimento acima.1 ponto -
Mudar Nomes No Entergame Do Otclient
Developer Berg reagiu a Deadpool por uma questão
Faz assim, cópia do lassword com espaço. Daí você vai no account, da um enter. Apaga até o fim da linha. E cola hah1 ponto -
NPC não atacando
cleitonhip reagiu a Antharaz por uma questão
Seguinte amigo, me passa o link do tópico com o sever base do seu ot para que eu teste lá, porque eu testei no tfs 0.3.7 (baiak) e funcionou 100%, aguardo retorno EDITED Peço desculpas amigo, eu tenho um péssimo hábito de copiar e colar rápido e as vezes fica faltando código, no seu caso, faltou as 3 primeiras linhas, eu já editei o primeiro post meu arrumando o código, basta substituir o do seu ot por este.1 ponto -
Mudar Nomes No Entergame Do Otclient
Developer Berg reagiu a Deadpool por uma questão
Adiciona o maegin top embaixo do account, igual a opção do password.. To pelo cell:/1 ponto -
Demora para analisarem e aprovar um tutorial
Deadpool reagiu a FlamesAdmin por um tópico no fórum
realmente, colocam uns caras de estagiário mais nunca fizeram o que vc disse.1 ponto -
Demora para analisarem e aprovar um tutorial
FlamesAdmin reagiu a Deadpool por um tópico no fórum
Kissy. Eu acho que deveriam rever todos os estagiários. Achei vários estagiários que entram. Porém, nunca vi eles postando algo ou ajudando a galera.1 ponto -
Vamos lá, em relação a mudar para 500 e não voltar a outfit não aconteceu comigo, testei agora com 500, 700, 200 e 300 e em todos casos voltou ao normal, talvez seja problema no host. Em relação a usar 2 vezes a mesma talkaction eu resolvi acrescentando uma linha que remove a condição ao usar o comando. Editei o primeiro post com o código novo.1 ponto
-
O tempo delay para verificar se saiu da posição está nessas duas linhas: addEvent(ver, 1000, cid, getCreaturePosition(cid)) addEvent(ver, 1000, cid, npos) O 1000 representa 1 segundo, basta diminuir este valor, se quiser a cada meio segundo coloque 500 e assim por diante.1 ponto
-
Desculpe a demora, achei que havia postado o script e só quando dei F5 para ver se você havia respondido que vi que não. Crie um arquivo chamado transform.lua no diretório data\talkactions\scripts com este conteúdo: local outfit = {lookType = 399} local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_EFFECT, 42) setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, 0) local condition = createConditionObject(CONDITION_OUTFIT) setConditionParam(condition, CONDITION_PARAM_TICKS, 99999999999) addOutfitCondition(condition, outfit) setCombatCondition(combat, condition) local combat2 = createCombatObject() setCombatParam(combat2, COMBAT_PARAM_DISPEL, CONDITION_OUTFIT) setCombatParam(combat2, COMBAT_PARAM_EFFECT, 42) setCombatParam(combat2, COMBAT_PARAM_AGGRESSIVE, 0) function ver(cid,pos) local onl = getOnlinePlayers() for i=1,#onl do if getPlayerByName(onl[i]) == cid then local npos = getCreaturePosition(cid) if pos.x == npos.x and pos.y == npos.y and pos.z == npos.z then addEvent(ver, 500, cid, npos) else doCombat(cid, combat2,numberToVariant(cid)) end end end end function onSay(cid, words, param) doCombat(cid, combat2,numberToVariant(cid)) doCombat(cid, combat,numberToVariant(cid)) addEvent(ver, 500, cid, getCreaturePosition(cid)) return true end Em local outfit = {lookType = 399} no lugar de 399 você coloca o looktype que deseja que fique. Em setCombatParam(combat, COMBAT_PARAM_EFFECT, EFEITO_INICIAR) e em setCombatParam(combat2, COMBAT_PARAM_EFFECT, EFEITO_TERMINAR) no lugar de EFEITO_INICIAR e EFEITO_TERMINAR você coloca o combat effect que deseja que fique ao ativar a talkaction e ao voltar ao normal respectivamente. Caso não queira nenhum efeito, basta deletar estas linhas. Coloque a linha XML abaixo no arquivo talkactions.xml da pasta data\talkactions antes de </talkactions>: <talkaction words="!transform" event="script" value="transform.lua"/> ========== EDIT =========== Como conversamos em privado, para o seu servidor é um caso especial, então use o script abaixo: local outfit = {lookType = 222 , lookHead = 0, lookBody = 0, lookLegs = 0, lookFeet = 0, lookAddons = 0} local function isOnline(cid) local onl = getOnlinePlayers() for i=1,#onl do if getPlayerByName(onl[i]) == cid then return true end end return false end local function ver(cid,pos) if isOnline(cid) then local npos = getCreaturePosition(cid) if pos.x == npos.x and pos.y == npos.y and pos.z == npos.z then addEvent(ver, 500, cid, npos) else doSetCreatureOutfit(cid, outfit, 0) end end end function onSay(cid, words, param) doSetCreatureOutfit(cid, outfit, -1) addEvent(ver, 500, cid, getCreaturePosition(cid)) return true end No lugar de 222 você coloca o looktype que deseja para a magia.1 ponto
-
Criar guild
douglascolorado reagiu a Antharaz por uma questão
Manda link do teu site para ter uma idéia do que pode ser...1 ponto -
1 ponto
-
Vamos por parte, primeiro iremos fazer com que fique escrito "Player with this name already exist." quando usado o mesmo nome que um vip embaixo da box de onde se digita o nome. Para isto você irá abrir o arquivo check_name.php localizado na pasta htdocs\ajax do seu site e substituir esta parte: if($server_config['sqlType'] == "mysql") $ots->connect(POT::DB_MYSQL, array('host' => $mysqlhost, 'user' => $mysqluser, 'password' => $mysqlpass, 'database' => $mysqldatabase) ); elseif($server_config['sqlType'] == "sqlite") $ots->connect(POT::DB_SQLITE, array('database' => $config_ini['server_path'].$sqlitefile)); $name_db = new OTS_Player(); $name_db->find($name); if($name_db->isLoaded()) echo '<font color="red"><b>Player with this name already exist.</b></font>'; else echo '<font color="green">Good. Your name will be:<br />"<b>'.ucwords($name).'</b>"</font>'; ?> Por esta: if($server_config['sqlType'] == "mysql") $ots->connect(POT::DB_MYSQL, array('host' => $mysqlhost, 'user' => $mysqluser, 'password' => $mysqlpass, 'database' => $mysqldatabase) ); elseif($server_config['sqlType'] == "sqlite") $ots->connect(POT::DB_SQLITE, array('database' => $config_ini['server_path'].$sqlitefile)); $name_db = new OTS_Player(); $name_db->find($name); $name_db2 = new OTS_Player(); $name_db2->find('[VIP] '.$name); if(($name_db->isLoaded()) or ($name_db2->isLoaded())) echo '<font color="red"><b>Player with this name already exist.</b></font>'; else echo '<font color="green">Good. Your name will be:<br />"<b>'.ucwords($name).'</b>"</font>'; ?> Só isto não basta, pois esta é uma menssagem temporária que o site passa para o visitante, se ele clicar em "submit" ele conseguirá criar o char. Para evitarmos isto, vá na pasta htdocs e abra o arquivo accountmanagement.php, lá você substituirá esta parte: if(empty($newchar_errors)) { $check_name_in_database = $ots->createObject('Player'); $check_name_in_database->find($newchar_name); if($check_name_in_database->isLoaded()) $newchar_errors[] .= 'This name is already used. Please choose another name!'; $number_of_players_on_account = $account_logged->getPlayersList()->count(); if($number_of_players_on_account >= $config['site']['max_players_per_account']) $newchar_errors[] .= 'You have too many characters on your account <b>('.$number_of_players_on_account.'/'.$config['site']['max_players_per_account'].')</b>!'; } Por esta: if(empty($newchar_errors)) { $check_name_in_database = $ots->createObject('Player'); $check_name_in_database->find($newchar_name); if($check_name_in_database->isLoaded()) $newchar_errors[] .= 'This name is already used. Please choose another name!'; $check_name_in_database->find('[VIP] '.$newchar_name); if($check_name_in_database->isLoaded()) $newchar_errors[] .= 'This name is already used. Please choose another name!'; $number_of_players_on_account = $account_logged->getPlayersList()->count(); if($number_of_players_on_account >= $config['site']['max_players_per_account']) $newchar_errors[] .= 'You have too many characters on your account <b>('.$number_of_players_on_account.'/'.$config['site']['max_players_per_account'].')</b>!'; } Assim o player ficará impossibilitado de criar um char com o nome de algum vip e evitará todos seus problemas. Para finalizar, basta remover todos os players que já tem nome de vips da sua database, para isto fiz uma query que você irá executar apenas uma vez, visto que após modificar o site não terá como eles abusarem disto novamente, porém eu necessitaria saber qual seu sistema de vip para fazer isto, se é por database, por storage e quais as tabelas com colunas ou storages que se usa. Aguardo retorno.1 ponto
-
Qual erro com esse monster?
danitero15 reagiu a Night Wolf por uma questão
tinha uma barra encerrando a primeira linha testa assim1 ponto -
Estou fazendo as modificações no site para não conseguirem criar chars com mesmo nome de quem já tem "[VIP]", mas gostaria de saber qual sistema do seu site, gesior, modernacc, ou qual?1 ponto
-
O problema deste é que só funciona se o vip estiver online né... provavelmente você tem uma table somente com os vips ou então uma coluna na table players que indica se é vip ou não, a partir daí, vc manda filtrar todos que estão marcados como vip na tabela, depois manipula a string do nome retirando o [VIP] e deleta quando achar alguém com esse nome. Para evitar futuros problemas como este, você poderia criar uma regra no gesior que quando procura se já existe alguém com este nome, verifica também se existe alguém com "[VIP] " + o nome, eu não posso fazer isto agora, mas te dei um caminho, lá para as 22h entro denovo aqui e boto a mão na massa se ainda estiver aberto o tópico. Qualquer coisa me manda PM.1 ponto
-
Não sei não jovem, não testei com poketibia1 ponto
-
[Website]Colocando Imagens No Shop Do Gesior
maelzinhoo reagiu a CoLoRaDo por um tópico no fórum
você tem que mudar o id do item lá no phpmyadmin, na database tem a coluna shop_offer ai tu vai la clica no lápiz pra editar e no id vai ta números pequenos como 1,2,3,4,5,6,7,8,9 e tu tem que mudar este número para o id do item!! segue as fotos: 1° 2° 3° 4° 5°1 ponto
