Ir para conteúdo

mihaf

Campones
  • Total de itens

    5
  • Registro em

  • Última visita

Sobre mihaf

mihaf's Achievements

  1. Fala galera do xTibia, Eu gostária de pedir a ajuda de vocês, para tentar resolver um erro, que estou tendo com meu otserv... O problema reside no seguinte, eu estou sendo atacado por Nuckers, que ficam derrubando o servidor, eu sei que nucker é um problema e tudo mais, más o real problema, é que meu servidor não esta REGISTRANDO, o ERRO antes de cair ... Ou seja, o LOG deveria registrar pelo menos, o MOTIVO pelo qual o servidor CAIU, fazendo então, com que eu chegasse a "como ele esta nuckando" e acabar resolvendo o problema. Eu utilizo o New Slayer Yurots Versão 8.57. Meu Config.lua na parte de LOGS esta configurado desta maneira: Config.lua -- Logs -- NOTE: This kind of logging does not work in GUI version. -- For such, please compile the software with __GUI_LOGS__ flag. adminLogsEnabled = true displayPlayersLogging = true prefixChannelLogs = "" runFile = "" outLogName = "server/out.log" errorLogName = "server/error.log" truncateLogsOnStartup = true E ele não registra, NEM SEQUER edita ou cria o arquivo error.log ou out.log.... Tem algo mal configurado ai ? Algo que esqueci de fazer ? Pesso ajuda de vocês que conhecem mais do ramo ai ... E outra... Vocês conhecem alguma vunerabilidade no New Slayer Yursot 8.57 ? Algo como algum BUG em portas, algo do genero, que pode estar abrindo oportunidade para este Nucker ? Espero soluções, realmente, é muito ruim, perder players para Nuckers ... Desde já, Grato! UP! Alguem me ajuda pow, estou esperando até agora, preciso mesmo parar os ataques de Nuker ao meu servidor ... Como faço para ele registrar um LOG com o motivo de ele ter caido ? ...
  2. PERFEITO. Cara... Em 5 anos, nunca vi um Sistema tão perfeito quanto o seu, no começo tive alguns problemas, fui olhando os erros no Console do Servidor, e arrumando aos poucos, depois tudo funcionou, então resolvi incrementar coisas, como efeito no player ao entrar na Área VIP, quando ele entra manda um aniamtedText escrito: Area VIP com cor Random encima da POS dele, A única coisa que não é defeito nem erro, más sim um "incômodo", é que, ao entrar na porta que você passou o ID (para utilizar como vipDoor [id 1227]) a porta manda uma menssagem: Only the worthy may pass. Essa menssagem acaba atrapalhando, porque eu adaptei o Script, para mandar uma menssagem também, ao PLAYER, de "Welcome to VIP AREA", quando ele entra, más como esta menssagem da porta, é executada após a execução do Script, a menssagem acaba ficando por cima, e o player não enxerga a menssagem de boas-vindas. Se você tiver alguma solução, fico no agurado ... Más de resto, esta de parabéns, e realmente, gostei das suas habilidades com Script, com certeza, você tem futuro no ramo, Boa Sorte, Obrigado por compartilhar.
  3. Fala galera, eu estou com um probleminha aqui, em um VIP System que estou criando (na verdade, adaptando), Eu utilizei como BASE este tutorial: Perfect Vip System Bem, vamos la, é o seguinte, eu segui o tutorial, más o script deu alguns erros, então fui adaptando até que deixei ele "QUASE 100% FUNCIONAL". Como assim ? Primeiro que o Script, checava o Vocation dentro do addvip.lua, eu fiz direto pelo talkactions.xml más até ai tudo bem, adaptei também mais 2 novos comandos, que são eles: /remvip - Remove TODOS os dias de VIP de um determinado player. /checvip - Mostra a você, quantos dias de VIP, o player em questão possui. Porém, estou tento um problema com o /addvip. O comando é basiado nisto: /addvip NOME, DIAS Exemplo: /addvip João, 30 no caso eu adicionei 30 dias de VIP para o João, más estou tendo um erro, que é ele: Quando eu adiciono VIP à um player pela PRIMEIRA VEZ, ou DEPOIS DE TER REMOVIDO A VIP DELE COM O /remvip, A VIP SIMPLISMENTE NÃO FUNCIONA. Ou seja, você acaba de criar um Character de nome "João", você nunca teve vip, digamos que vou lhe dar 30 dias de vip, eu escrevo: /addvip João, 30 Ele dá a menssagem de que os dias foram adicionados com sucesso, tanto para o João, quando para o ADMIN que executou o comando, funciona tudo certinho, porém, quando você da /checvip João, ele fala que tem 0 VIP DAYS. E caso eu execute o comando novamente, ai sim, desta vez funciona. Ou seja, se eu utilizar 2x o comando de adicionar, na segunda vez o João recebe os dias de VIP. É como se fosse um BUG na variavel que armazena o tempo de VIP, como se ela tivesse que receber um valor para desbugar, e só então, valores depois do primeiro, fazem efeito. Ja resolvi dar um /checvip antes de adicionar nenhuma vip no Player, e o player aparece com o numero -14784 na variavel de DIAS de VIP, ou seja, como se todos characters criados, ja começacem com "-14784 dias de vip", fazendo com que isso, bugue o primeiro comando de /addvip, e não impota o quanto você coloque de vip, no primeiro comando, que não funciona, e o vip reseta pra zero, ai sim, depois ele funciona. Estou utilizando isto, para Alterar e Pegar o valor da VIP: getPlayerStorageValue(player, 14540) setPlayerStorageValue(player, 14540, time) Vou postar o script do /addvip, para vocês que conhecem melhor do assunto, possam localizar o possivel erro, que esta bugando a variavel em seu primeiro valor. function onSay(cid, words, param) -- explodindo parametros local t = string.explode(param, ",") -- final parametro -- Você colocou os Parâmetros corretos ? if t[1] == '' or t[2] == '' or param == '' then --Não ? Então receba esta menssagem: doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Utilize: /addvip Nome, Dias") return true -- Sim ? Então execute o comando: else player = getPlayerByName(t[1]) if (not isPlayer(player)) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Vip GOLD: Player não encontrado!") return true else daysvalue = tonumber(t[2])*24*60*60 storageplayer = getPlayerStorageValue(player, 14540) timenow = os.time() if storageplayer <= 0 then time = timenow+daysvalue else time = storageplayer+daysvalue end doPlayerSendTextMessage(player, MESSAGE_INFO_DESCR, "Foram adcionados ".. tonumber(t[2]) .." dia(s) de VIP GOLD no seu character.") doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Vip GOLD: Voce adicionou ".. tonumber(t[2]) .." dia(s) de VIP GOLD para ".. t[1]) setPlayerStorageValue(player, 14540, time) local quantity = math.floor((getPlayerStorageValue(player,14540) - os.time())/(24*60*60)) doPlayerSendTextMessage(player, MESSAGE_INFO_DESCR, "Digite !vip para saber quanto tempo de VIP GOLD voce possui.") doPlayerSendTextMessage(player, MESSAGE_INFO_DESCR, "Você tem ".. quantity .." dia(s) de VIP restantes.") return true end end return TRUE end E o erro não esta localizado no /checvip, nem no /remvip, porque ja retirei os 2 do servior, e testei só com o addvip, e sempre que adiciono pela primeira vez a vip para um jogador, ele buga, e só então na segunda vez, funciona. Obrigado pela atenção de todos, Esperando ancioso *.*
  4. Obrigado por mover, eu realmente postei meio perdido... Mais enfim, Ninguém com habilidade o suficiente para me ajudar ?
  5. Olá, eu gostária de saber, Como eu Adapto o TalkAction: !online para mostrar também, a Quantidade de Player VIP e se a pessoa é ou Não VIP. Vou citar um Exemplo de !online normal: 21:13 2 player(s) online: 21:13 Homem Sem Vip [100], Homem Com Vip [200]. Agora, Como eu queria meu Script: 21:13 2 player(s) online: 21:13 1 player(s) VIP online: 21:13 Homem Sem Vip [100], (VIP) Homem Com Vip [200]. Gostária que algum Pró em Script, me ajudasse a fazer isto. Segue meu Script do TalkAction !online: local config = { showGamemasters = getBooleanFromString(getConfigValue('displayGamemastersWithOnlineCommand')) } function onSay(cid, words, param, channel) local players = getPlayersOnline() local strings = {""} local i, position = 1, 1 local added = false for _, pid in ipairs(players) do if(added) then if(i > (position * 7)) then strings[position] = strings[position] .. "," position = position + 1 strings[position] = "" else strings[position] = i == 1 and "" or strings[position] .. ", " end end if((config.showGamemasters or getPlayerCustomFlagValue(cid, PlayerCustomFlag_GamemasterPrivileges) or not getPlayerCustomFlagValue(pid, PlayerCustomFlag_GamemasterPrivileges)) and (not isPlayerGhost(pid) or getPlayerGhostAccess(cid) >= getPlayerGhostAccess(pid))) then strings[position] = strings[position] .. getCreatureName(pid) .. " [" .. getPlayerLevel(pid) .. "]" i = i + 1 added = true else added = false end end doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, (i - 1) .. " player(s) online:") for i, str in ipairs(strings) do if(str:sub(str:len()) ~= ",") then str = str .. "." end doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, str) end return true end OBS: Eu utilizo o Sistema de VIP DO MOCK! Segue a LIB do meu VIP System: vip sys.lua vip = { name = "Vip system"; author = "Mock"; version = "1.0.0.0"; query="ALTER TABLE `accounts` ADD `vip_time` INTEGER"; query2="ALTER TABLE `accounts` ADD `vip_time` INT(15) NOT NULL" } function vip.setTable() dofile('config.lua') if sqlType == "sqlite" then db.executeQuery(vip.query) else db.executeQuery(vip.query2) end end function vip.getVip(cid) assert(tonumber(cid),'Parameter must be a number') if isPlayer(cid) == FALSE then error('Player don\'t find') end; ae = db.getResult("SELECT `vip_time` FROM `accounts` WHERE `name` = '"..getPlayerAccount(cid).."';") if ae:getID() == -1 then return 0 end local retee = ae:getDataInt("vip_time") or 0 ae:free() return retee end function vip.getVipByAcc(acc) assert(acc,'Account is nil') local a = db.getResult("SELECT `vip_time` FROM `accounts` WHERE `name` = '"..acc.."';") if a:getID() ~= -1 then return a:getDataInt("vip_time") or 0, a:free() else error('Account don\'t find.') end end function vip.setVip(cid,time) dofile("config.lua") assert(tonumber(cid),'Parameter must be a number') assert(tonumber(time),'Parameter must be a number') if isPlayer(cid) == FALSE then error('Player don\'t find') end; db.executeQuery("UPDATE `"..sqlDatabase.."`.`accounts` SET `vip_time` = '"..(os.time()+time).."' WHERE `accounts`.`name` ='".. getPlayerAccount(cid).."';") end function vip.getVipByAccount(acc) assert(acc,'Account is nil') return db.getResult("SELECT `vip_time` FROM `accounts` WHERE `name` = '"..acc.."';"):getDataInt("vip_time") or 0 end function vip.hasVip(cid) assert(tonumber(cid),'Parameter must be a number') if isPlayer(cid) == FALSE then error('Player don\'t find') end; local t = vip.getVip(cid) or 0 if os.time(day) < t then return TRUE else return FALSE end end function vip.accountHasVip(acc) assert(acc,'Account is nil') if os.time() < vip.getVipByAccount(acc) then return TRUE else return FALSE end end function vip.getDays(days) return (3600 * 24 * days) end function vip.addVipByAccount(acc,time) assert(acc,'Account is nil') assert(tonumber(time),'Parameter must be a number') local a = vip.getVipByAcc(acc) a = os.difftime(a,os.time()) if a < 0 then a = 0 end; a = a+time return vip.setVipByAccount(acc,a) end function vip.setVipByAccount(acc,time) dofile("config.lua") assert(acc,'Account is nil') assert(tonumber(time),'Parameter must be a number') db.executeQuery("UPDATE `accounts` SET `vip_time` = '"..(os.time()+time).."' WHERE `accounts`.`name` ='"..acc.."';") return TRUE end function vip.returnVipString(cid) assert(tonumber(cid),'Parameter must be a number') if isPlayer(cid) == TRUE then return os.date("%d %B %Y %X ", vip.getVip(cid)) end end Espero que alguem me ajude, Obrigado. Eu estava pensando em fazer algo como um FOr, Que dentro deste for eu epgo os players online: getPlayersOnline() e dpois, eu mandava um if, perguntando se o Player é vip: if vip.getVip(cid) > 0 then Ai colocava o (VIP) na frente do nick do player, e o VIP pegava outro player... e assim até acabar... Só que não sei ao certo, como fazer isto.. Só dei esta ideia para ver se abro a mente de vocês Obrigado, Again!
  6. Hail for US! Estou aqui para anunciar a todos um grande TIBIA LOADER ! Ele vem com um sistema, que atravez dele vocês podem baixar qualquer tibia, 7.8, 8.1, 8.4, 8.41, 8.42, TUDO! Ele vem com a Opção Favoritos, aonde você adiciona um servidor com um NOME, e basta dar um Duplo-Clique que ele já acessa... Para que ficar abrindo o TIBIA, Depois o Change, depois colocar o IP, Depois dar Change-IP ?!?!?!?!?!?! Pra que isso ? Basta colocar o Servidor nos favoritos, clicar nele que ele ABRE SOZINHO O TIBIA JÀ CONECTADO AO IP ! Espero que gostem... Download: http://otserv list.org/ipc/93208 (OBS: tire o Espaço entre o Otserv e o LIst do LINK! Quer testar ? Conecta no meu Servidor intaum ='D IP: masterwar.no-ip.info Vers.: 8.42 PVP ENFORCED! :withstupidsmiley: :smile_positivo: EDIT: LINK ARRUMADO
  7. Eu fiz tudo certinho so que quando abro o baú ele apenas abre como se fosse um bau comum sem nada dentro ! ! ! ajuda aew please
  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...