Ir para conteúdo

Marco Oliveira

Membro
  • Registro em

  • Última visita

Tudo que Marco Oliveira postou

  1. function onUse(player, item, fromPosition, target, toPosition, isHotkey) if getPlayerVocation(cid) == X then --X = ID da vocation. player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "The chest is empty.") return true end player:addItem(X, 1) --Id do item, quantidade do item. player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "You found a Item.") --Item name. player:setStorageValue(X, 1) --Valor da Storage da quest. return true end
  2. Libs: sudo apt-get install git cmake build-essential liblua5.2-dev libgmp3-dev libmysqlclient-dev libboost-system-dev libboost-iostreams-dev libpugixml-dev libcrypto++-dev Download TFS: git clone --recursive https://github.com/otland/forgottenserver.git Compilando TFS: cd forgottenserver mkdir build && cd build cmake .. make Movendo TFS e executando: mv tfs .. ./tfs
  3. Olá tudo bem, criei um script bem basicão com base em outro que eu tinha. Como eu disse no titulo é um global event que solta um efeito em determinada coordenada com um intervalo de tempo, mas não consegui colocar pra dar dano caso o player esteja na position quando acontece o efeito. Tentei adicionar um match.random com min e max mas não obtive exito. script.lua local positions = { {position = Position(33372, 31343, 5), effect = 7}, } function onThink(interval) for i = 1, #positions do local settings = positions[i] local spectators = Game.getSpectators(settings.position, false, true, 7, 7, 5, 5) if #spectators > 0 then if settings.effect then settings.position:sendMagicEffect(settings.effect) end end end return true end
  4. De uma olhada nesse Tópico AQUI!
  5. Desabilitar botão direito: <script language="javascript"> document.onmousedown=disableclick; status="Right Click Disabled"; Function disableclick(e) { if(event.button==2) { alert(status); return false; } } </script> Desabilitar botão ctrl: <script language = "JavaScript" type = "text/javascript" > // bloqueando a tecla Ctrlif (document.all) { document.onkeydown = function() { var teclaCtrl = event.keyCode ? event.keyCode : (event.which ? event.which : event.charCode); if (teclaCtrl == 17) { event.which = 0; return false; } }}</script>
  6. Olá, tudo bem com vocês? Estou tendo um problema para liberar as missões do rashid em meu servidor, já revirei os scripts e não encontro onde esteja o bug, uma vez que funcionou para as outras quests. Já verifiquei as storages e também a endline das missões, está tudo correto como deveria ser. Este é o error que aparece em meu terminal: 2019-01-13 19:20:21 - Lua Script Error: [Event Interface] 2019-01-13 19:20:21 - data/events/scripts/player.lua:Player@onRequestQuestLine 2019-01-13 19:20:21 - data/lib/core/quests.lua:3276: attempt to compare number with nil 2019-01-13 19:20:21 - stack traceback: 2019-01-13 19:20:21 - [C]: in function '__lt' 2019-01-13 19:20:21 - data/lib/core/quests.lua:3276: in function 'missionIsStarted' 2019-01-13 19:20:21 - data/lib/core/quests.lua:3241: in function 'getMissionsCount' 2019-01-13 19:20:21 - data/lib/core/quests.lua:3382: in function 'sendQuestLine' 2019-01-13 19:20:21 - data/events/scripts/player.lua:1067: in function <data/events/scripts/player.lua:1066>
  7. Marco Oliveira postou uma resposta no tópico em Websites
    Fixed Fixed
  8. Crie duas pastas dentro do www do teu xampp, cada um representará um site diferente do outro.
  9. Primeiro passo é ir na pasta classes no arquivo account.php: Na linha public function setPremiumPoints($value){$this->data['premium_points'] = $value;} public function getPremiumPoints(){return $this->data['premium_points'];} Altere para public function setPremiumPoints($value){$this->data['coins'] = $value;} public function getPremiumPoints(){return $this->data['coins'];} Agora o passo mais difícil que você deve tomar cuidado é mudar tudo que está como premium_points para coins em todos os arquivos do website.
  10. O script nada mais faz que dar um git pull do seu repositório automaticamente quando o servidor recebe reload ou crasha. Na pasta raiz de seu repositório crie um arquivo chamado startserver.sh e uma pasta chamada logs dentro da pasta raiz de seu site. pastaOt="caminho do servidor" comandoBackup="caminho do servidor/backup/backup.sh" echo "Iniciando o programa" cd $pastaOt mkdir -p /logs mkdir -p build while true do cd $pastaOt ./tfs 2>&1 | awk '{ print strftime("%F %T - "), $0; fflush(); }' | tee "/var/www/html/logs/$(date +"%F %H-%M-%S.log")" exitcode=${PIPESTATUS[0]} if [ $exitcode -eq 0 ]; then echo "Clean close" git pull cd build cmake .. make if [$? -ne 0]; then echo "Compilation failed!" else echo "Compilation successful!" mv tfs .. fi cd .. else echo "Server Crash!!! (O arquivo de log está guardado na pasta logs)" fi echo "Server Down, backup database..." $comandoBackup sleep 2 done; Ainda na pasta raiz do seu servidor crie uma pasta chamada backup e dentro dela crie um arquivo chamado backup.sh CAMINHO="caminho do servidor/backup/" NOMEBACKUP="nome do arquivo de backup" USER="usuario do phpmyadmin" SENHA="senha do phpmyadmin" BANCO="nome da database" TEMPO="$(date +'%d-%m-%Y-%H-%M')" if [[ -z "$USER" || -z "$SENHA" || -z "$BANCO" ]]; then echo "Por favor preencha o usuário, senha e banco de dados nas configurações." else mysqldump -u$USER -p$SENHA $BANCO > $CAMINHO"/"$NOMEBACKUP"-"$TEMPO".sql" fi Não se esqueça da permissão 777 em todos os arquivos, e também de ligar o servidor com o comando ./startserver.sh OBS: você deve configurar a chave ssh no seu git para que não peça o e-mail e senha a cada reload, o git clone também deve ser feito atraves de ssh e não https
  11. Marco Oliveira postou uma resposta no tópico em Websites
    Ainda não entendi qual a duvida, seja mais claro
  12. Marco Oliveira postou uma resposta no tópico em Websites
    Opa, desculpa haha! já ta la meninho Só falta mais alguns dias! Obrigado, sempre tentando inovar um pouquinho apesar dos golpes que a gente leva haha! Ultimas Atualizações: 1- fix error on line 14 index.php for php7+ compatibility 2- Upload New Facebook Widget 3- Update .htaccess 4- Update index.php
  13. Marco Oliveira postou uma resposta no tópico em Websites
    Olá, estou deixando minha contribuição para o open-tibia, fornecendo a versão mais recente do meu site. Compatível com a versão mais recente do TFS e OTX. O layout é semelhante ao tibia.com, mas não contém todos os recursos. Conto com a contribuição de todos neste projeto. Algumas funcionalidades: Highscores NEW PagSeguro Lightbox New Tickets NEW Suporte https Créditos: Gesior.pl Felipe Monteiro Marco Oliveira Ricardo Souza Link para download ou contribuição: GITHUB
  14. Recomendo você utilizar as sources do Mattyx14 (OTX), quase que diariamente tem correção de bugs, então facilita bastante. https://github.com/mattyx14/otxserver
  15. Error ocasionado por falta de alguma imagem em seu site! clique com o botão direito do seu mouse em uma areá da pagina busque por inspecionar elemento e em seguida clique em console que irá aparecer a imagem que está em falta. aparentemente é algum efeito de natal ou posso estar enganado!
  16. /i id, quantidade para ver o id dos itens vá até /data/items/items.xml
  17. Marco Oliveira postou uma resposta no tópico em Websites
    Download images: mega.nz Codigo houses.php: pastebin
  18. Entre em contato comigo via wpp 38991863004.
  19. O projeto é meu, testei e está funcionando normalmente! Utilize a database que vem no site e tudo irá ocorrer bem.
  20. Estou usando uma cópia do site tibia e com ela veio a barra de rolagem mesmo que fica no rodapé, mas eu não posso obtê-lo! Alguém poderia me ajudar a removê-lo ... é algo que não faz diferença no corpo do site e acredito que só deixa mais poluído. Pastebin css: http://pastebin.com/raw/YfdCkVyp
  21. Marco Oliveira postou uma resposta no tópico em Formação de Equipe
    Opa, tudo bem com você ? Hoje venho aqui a procura de um WebMaster para o projeto Malvera Global que já está em fase de testes finais para abertura, Porem necessitamos de um WebMaster... Nossa equipe é bem organizada e temos como foco inicial o profissionalismo, o servidor está aberto em malvera.online venha fazer uma visita. Todos os membros da equipe serão remunerados assim que possivel, caso tenha interesse entre em contato via facebook, skype ou WPP. Facebook: fb.com/marcoolivers Skype: marco.olivers Whatsapp: 38991863004
  22. Marco Oliveira postou uma resposta no tópico em Websites
    Removido
  23. Creio eu que o titulo seja auto explicativo, porem não encontro tutorial algum na internet ensinando fazer isso! Achei somente em ot 8.6....... Utilizo TFS 1.3 meu Login.lua local events = { 'ElementalSpheresOverlords', 'BigfootBurdenVersperoth', 'Razzagorn', 'Shatterer', 'Zamulosh', 'The Hunger', 'The Rage', 'Eradicator', 'Eradicator1', 'Rupture', 'World Devourer', 'Tarbaz', 'Shulgrax', 'Ragiaz', 'Plagirath', 'Mazoran', 'Destabilized', 'BigfootBurdenWiggler', 'SvargrondArenaKill', 'NewFrontierShardOfCorruption', 'NewFrontierTirecz', 'ServiceOfYalaharDiseasedTrio', 'ServiceOfYalaharAzerus', 'ServiceOfYalaharQuaraLeaders', 'InquisitionBosses', 'InquisitionUngreez', 'KillingInTheNameOfKills', 'KillingInTheNameOfKillss', 'KillingInTheNameOfKillsss', 'MastersVoiceServants', 'SecretServiceBlackKnight', 'ThievesGuildNomad', 'WotELizardMagistratus', 'WotELizardNoble', 'WotEKeeper', 'WotEBosses', 'WotEZalamon', 'WarzoneThree', 'PlayerDeath', 'AdvanceSave', 'bossesWarzone', 'AdvanceRookgaard', 'PythiusTheRotten', 'DropLoot', 'Yielothax', 'BossParticipation', 'Energized Raging Mage', 'Raging Mage', 'modalMD1', 'VibrantEgg', 'DeathCounter', 'KillCounter', 'bless1' } local function onMovementRemoveProtection(cid, oldPosition, time) local player = Player(cid) if not player then return true end local playerPosition = player:getPosition() if (playerPosition.x ~= oldPosition.x or playerPosition.y ~= oldPosition.y or playerPosition.z ~= oldPosition.z) or player:getTarget() then player:setStorageValue(Storage.combatProtectionStorage, 0) return true end addEvent(onMovementRemoveProtection, 1000, cid, oldPosition, time - 1) end function onLogin(player) local loginStr = 'Welcome to ' .. configManager.getString(configKeys.SERVER_NAME) .. '!' if player:getLastLoginSaved() <= 0 then loginStr = loginStr .. ' Please choose your outfit.' player:sendTutorial(1) else if loginStr ~= '' then player:sendTextMessage(MESSAGE_STATUS_DEFAULT, loginStr) end loginStr = string.format('Your last visit was on %s.', os.date('%a %b %d %X %Y', player:getLastLoginSaved())) end player:sendTextMessage(MESSAGE_STATUS_DEFAULT, loginStr) local playerId = player:getId() -- Stamina nextUseStaminaTime[playerId] = 1 -- STAMINA DEVIDO A QUEDAS START --local stamina_full = 42 * 60 -- config. 42 = horas -- if player:getStamina() >= stamina_full then -- player:sendCancelMessage("Your stamina is already full.") -- elseif player:getPremiumDays() < 1 then -- player:sendCancelMessage("You must have a premium account.") -- else -- player:setStamina(stamina_full) -- player:sendTextMessage(MESSAGE_INFO_DESCR, "Your stamina has been refilled.") -- end -- STAMINA DEVIDO A QUEDAS END -- Promotion --[[ local vocation = player:getVocation() local promotion = vocation:getPromotion() if player:isPremium() then local value = player:getStorageValue(Storage.Promotion) if not promotion and value ~= 1 then player:setStorageValue(Storage.Promotion, 1) elseif value == 1 then player:setVocation(promotion) end elseif not promotion then player:setVocation(vocation:getDemotion()) end--]] -- ABRIR CHANNELS if(not isInArray({1,2,3,5,6,7,8}, player:getVocation():getId()) or player:getLevel() < 6) then -- player:openChannel(7) -- help channel player:openChannel(3) -- world chat player:openChannel(6) -- advertsing rook main else -- player:openChannel(7) -- help channel player:openChannel(3) -- world chat player:openChannel(5) -- advertsing main end -- -- Rewards local rewards = #player:getRewardList() if(rewards > 0) then player:sendTextMessage(MESSAGE_EVENT_ADVANCE, string.format("You have %d %s in your reward chest.", rewards, rewards > 1 and "rewards" or "reward")) end -- Update player id local stats = player:inBossFight() if stats then stats.playerId = player:getId() end -- Events for i = 1, #events do player:registerEvent(events[i]) end if player:getStorageValue(Storage.combatProtectionStorage) <= os.time() then player:setStorageValue(Storage.combatProtectionStorage, os.time() + 10) onMovementRemoveProtection(playerId, player:getPosition(), 10) end return true end
  24. A ideia de formular um servidor global que foca no realismo do Tibia começou quando um servidor "famosinho" começou a sofrer resets constantes e muitos bugs.. Reunindo ex jogadores que são programadores tivemos a ideia de formular um servidor que terá principalmente profissionalismo e transparencia. Vai aqui alguns dados do servidor: Stages do Server: 1 - 10, 50x 11 - 50, 200x 51 - 80, 150x 81 - 100, 100x 101 - 120, 80x 121 - 140, 60x 141 - 160, 40x 161 - 180, 20x 181 - 200, 15x 201 - 220, 10x 221 - 240, 8x 241 - 260, 6x 261 - 280, 4 x 281 - 300, 3 x 301, 2x Skill Rate: 30x Magic Rate: 9x Loot Rate: 4x Kills to RedSkull: 5x Kills to BlackSkull: 10x Sistemas e Ideias: • GM para Rookguardian. • Server Save as 6 da manhã. • War Anti Entrosa e Guild War. • Ancident Ferumbras - Pode matar os bosses a cada 2 dias.. • Respawn do ORC da Dwarven Armor 1 vez na semana. • Reward System. • Espaços reservados para cassino. • Quest's com acessos facilitados. • Store somente com itens de quest's que podem ser conseguidos de forma gratuita no jogo. • Bota Vip com speed da boh e dobro de heal da soft boots. Equipe: • Progradores: • Mappers: • WebMastters: • Gamemasters: • Tutores: (A equipe já possui alguns membros no momento, como um programador e um mapper, mas precisamos de mais gente no momento.) Para participar é simples, deixe seu contato no campo de respostas junto com algum showoff ou fale de algum trabalho recente que teve. (O projeto tera um github onde todos poderão reportar bugs e ajudar a corrigi-los) Conto com o apoio de todos. Att: Marco Oliveira

Informação Importante

Confirmação de Termo