Ir para conteúdo

Forged

Administrador
  • Registro em

  • Última visita

Tudo que Forged postou

  1. Forged postou uma resposta no tópico em Ferramentas OpenTibia
    Cara adorei o programa, são poucas as funções, porém elas sāo muito úteis... Tópico reputado e fixado... (;
  2. Forged postou uma resposta no tópico em Ouvidoria
    A estética do fórum não é feia, muito pelo ao contrario, o visual padrão do IPB 3.2 é lindo, simples e eficaz, como o resto do fórum. Mas é claro que existem melhores, que sairão daqui alguns dias, aguardem...
  3. Forged postou uma resposta no tópico em Portal
    Vamos tentar arrumar a questão da dimensão do avatar.
  4. Forged postou uma resposta no tópico em TibiaBot NG
    Na minha opinião, o TibiaBot NG vai ser abandonado e eles seguirão atualizando o GhostBot NG.
  5. Forged postou uma resposta no tópico em Portal
    Então galera, Atualizamos o IPB para a versão mais recente, ou seja, o fórum está cheio de novidades e muito mais tecnológico, explore ele e saberá mais! (: Porém, ainda contém muitos bugzinhos no fórum, mas iremos arrumando aos poucos. Eu e o Renato estamos fazendo várias mudanças na template para a melhor adaptação. Espero que tenham gostado... (:
  6. Perfect VIP System 2.0 Galera, esse é o melhor sistema de VIP que eu já vi, ele foi criado pelo meu antigo parceiro, nicekid (vodkart), estou apenas divulgando ele. Sistema atualizado dia 22 de setembro de 2010 Versão Testada: TFS 0.3.6 Creditos pelas modificações: Kydrai, Nicekid (Vodkart) e Marcryzius Explicação do Novo sistema: O sistema de vip agora ele conta com a função ''os.time()'', uma function que retorna o tempo atual do CPU em segundos, sendo contado desde a criação da linguagem LUA. Ou sejá, ele conta o tempo da VIP a partir do instante que o player adquiriu ela. O que contém no VIP Sistem 2.0? God Adicionando e Removendo dias de VIP Comprando VIP e Checkando dia da sua VIP Primeiro passo Vá até talkactions/scripts, crie um arquivo.lua e renomeie para systemvip.lua, dentro coloque: -- Script SYtem vip 2.0 -- function onSay(cid, words, param) if(words == "!buyvip") then local price = 5000000 if doPlayerRemoveMoney(cid, price) == TRUE then local days = 30 local daysvalue = days * 24 * 60 * 60 local storageplayer = getPlayerStorageValue(cid, 13540) local timenow = os.time() if getPlayerStorageValue(cid, 13540) - os.time() <= 0 then time = timenow + daysvalue else time = storageplayer + daysvalue end if string.find(tostring(getCreatureName(cid)),"[[Vip]]") then doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Foram adicionados ".. days .." dias de VIP no seu character.") setPlayerStorageValue(cid, 13540, time) local quantity = math.floor((getPlayerStorageValue(cid, 13540) - timenow)/(24 * 60 * 60)) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você tem ".. quantity .." dias de VIP restantes.") else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Foram adicionados ".. days .." dias de VIP no seu character.") setPlayerStorageValue(cid, 13540, time) local name = getCreatureName(cid) db.executeQuery("UPDATE `players` SET `name` = '[Vip] "..name.."' WHERE `id` = "..getPlayerGUID(cid)..";") doRemoveCreature(cid) end else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você precisa de "..price.." gp's para colocar vip.") end elseif(words == "!vipdays") then local timenow = os.time() local quantity = math.floor((getPlayerStorageValue(cid, 13540) - timenow)/(24 * 60 * 60)) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você tem ".. (quantity < 0 and 0 or quantity) .." dias de VIP no seu character.") elseif(words == "/checkvip") then if getPlayerAccess(cid) == 5 then if not param then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Invalid param specified.") end local player = getPlayerByName(param) if not isPlayer(player) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Player "..player.." not found.") end local timenow = os.time() local quantity = math.floor((getPlayerStorageValue(player, 13540) - timenow)/(24 * 60 * 60)) doPlayerPopupFYI(cid, "O jogador tem ".. (quantity < 0 and 0 or quantity) .." dias de VIP no character.") return TRUE end elseif(words == "/addvip") then if getPlayerAccess(cid) == 5 then local t = string.explode(param, ",") if not t[2] then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Invalid param specified.") end local player = getPlayerByName(t[1]) local name = getCreatureName(player) local days = t[2] local pid = getPlayerByNameWildcard(t[1]) if(not pid or (isPlayerGhost(pid) and getPlayerGhostAccess(pid) > getPlayerGhostAccess(cid))) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Player with this name doesn\'t exist or is offline.") return TRUE end local daysvalue = days*3600*24 local storageplayer = getPlayerStorageValue(player, 13540) local timenow = os.time() local time = storageplayer <= 0 and (timenow + daysvalue) or (storageplayer + daysvalue) if string.find(tostring(getCreatureName(pid)),"[[Vip]]") then doPlayerSendTextMessage(player, MESSAGE_INFO_DESCR, "Foram adicionados "..days.." dias de VIP no seu character.") setPlayerStorageValue(player, 13540, time) local quantity = math.floor((getPlayerStorageValue(player,13540) - timenow)/(3600*24)) doPlayerSendTextMessage(player, MESSAGE_INFO_DESCR, "Você tem "..quantity.." dias de VIP restantes.") else setPlayerStorageValue(player, 13540, time) db.executeQuery("UPDATE `players` SET `name` = '[Vip] "..name.."' WHERE `id` = "..getPlayerGUID(player)..";") doRemoveCreature(player) end end elseif(words == "/delvip") then if getPlayerAccess(cid) == 5 then local dec = MESSAGE_INFO_DESCR if(param == "") then return TRUE,doPlayerSendTextMessage(cid,18,"Command param required.")end local C,t = {},string.explode(param, ",") C.pos = getPlayerPosition(cid) C.uid = getCreatureByName(t[1]) C.time = ((tonumber(t[2]) == nil) and 1 or tonumber(t[2]))*3600*24 --Tempo da vip por dia. C.days = (tonumber(t[2]) == nil) and 1 or tonumber(t[2]) --Dias de vip. if(getPlayerStorageValue(C.uid,13540) < C.time)then doPlayerSendTextMessage(cid,dec,'O jogador '..t[1]..' não possui '..C.days..' dias de vip.') else doPlayerSendTextMessage(cid,dec,'Você removeu '..C.days..' dias de vip do player '..t[1]..'.') setPlayerStorageValue(C.uid,13540,getPlayerStorageValue(C.uid,13540)-C.time) end doSendMagicEffect(C.pos, math.random(28,30)) end end return TRUE end price = é o quanto a vip vai custar em gps days = quantos dias de vip serão adicionados ao player Em talkactions.xml adicione a tag: <talkaction words="!vipdays;!buyvip;/checkvip;/addvip;/delvip" script="systemvip.lua"/> Pronto primeiro passo terminado. Sistema vip sem o !buyvip abra a spoiler Use este sistema: -- Script SYtem vip 2.0 -- function onSay(cid, words, param) if(words == "!vipdays") then local timenow = os.time() local quantity = math.floor((getPlayerStorageValue(cid, 13540) - timenow)/(24 * 60 * 60)) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você tem ".. (quantity < 0 and 0 or quantity) .." dias de VIP no seu character.") elseif(words == "/checkvip") then if getPlayerAccess(cid) == 5 then if not param then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Invalid param specified.") end local player = getPlayerByName(param) if not isPlayer(player) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Player "..player.." not found.") end local timenow = os.time() local quantity = math.floor((getPlayerStorageValue(player, 13540) - timenow)/(24 * 60 * 60)) doPlayerPopupFYI(cid, "O jogador tem ".. (quantity < 0 and 0 or quantity) .." dias de VIP no character.") return TRUE end elseif(words == "/addvip") then if getPlayerAccess(cid) == 5 then local t = string.explode(param, ",") if not t[2] then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Invalid param specified.") end local player = getPlayerByName(t[1]) local name = getCreatureName(player) local days = t[2] local pid = getPlayerByNameWildcard(t[1]) if(not pid or (isPlayerGhost(pid) and getPlayerGhostAccess(pid) > getPlayerGhostAccess(cid))) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Player with this name doesn\'t exist or is offline.") return TRUE end local daysvalue = days*3600*24 local storageplayer = getPlayerStorageValue(player, 13540) local timenow = os.time() local time = storageplayer <= 0 and (timenow + daysvalue) or (storageplayer + daysvalue) if string.find(tostring(getCreatureName(pid)),"[[Vip]]") then doPlayerSendTextMessage(player, MESSAGE_INFO_DESCR, "Foram adicionados "..days.." dias de VIP no seu character.") setPlayerStorageValue(player, 13540, time) local quantity = math.floor((getPlayerStorageValue(player,13540) - timenow)/(3600*24)) doPlayerSendTextMessage(player, MESSAGE_INFO_DESCR, "Você tem "..quantity.." dias de VIP restantes.") else setPlayerStorageValue(player, 13540, time) db.executeQuery("UPDATE `players` SET `name` = '[Vip] "..name.."' WHERE `id` = "..getPlayerGUID(player)..";") doRemoveCreature(player) end end elseif(words == "/delvip") then if getPlayerAccess(cid) == 5 then local dec = MESSAGE_INFO_DESCR if(param == "") then return TRUE,doPlayerSendTextMessage(cid,18,"Command param required.")end local C,t = {},string.explode(param, ",") C.pos = getPlayerPosition(cid) C.uid = getCreatureByName(t[1]) C.time = ((tonumber(t[2]) == nil) and 1 or tonumber(t[2]))*3600*24 --Tempo da vip por dia. C.days = (tonumber(t[2]) == nil) and 1 or tonumber(t[2]) --Dias de vip. if(getPlayerStorageValue(C.uid,13540) < C.time)then doPlayerSendTextMessage(cid,dec,'O jogador '..t[1]..' não possui '..C.days..' dias de vip.') else doPlayerSendTextMessage(cid,dec,'Você removeu '..C.days..' dias de vip do player '..t[1]..'.') setPlayerStorageValue(C.uid,13540,getPlayerStorageValue(C.uid,13540)-C.time) end doSendMagicEffect(C.pos, math.random(28,30)) end end return TRUE end Em talkactions.xml adicione a tag: <talkaction words="!vipdays;/addvip;/delvip;/checkvip" script="systemvip.lua"/> ---------------------------------------------------------------------------------------------------------------------------- Tile VIP Segundo passo. Vá até movements/scripts crie um arquivo.lua e renomeie para vipe.lua dentro coloque: -- Script Vip Sytem 1.0 -- function onStepIn(cid, item, position, fromPosition) local config = { msgDenied = "Você não e vip ,fale com Administrador do Server.", msgWelcome = "Seja Bem Vindo a Area vip." } if getPlayerStorageValue(cid, 13540) - os.time() <= 0 then doTeleportThing(cid, fromPosition, true) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, config.msgDenied) doSendMagicEffect(getThingPos(cid), CONST_ME_MAGIC_BLUE) return TRUE end doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, config.msgWelcome) return TRUE end Em movements.xml adicione a tag: <movevent type="StepIn" uniqueid="13700" event="script" value="vipe.lua"/> FIM DA VIP Em creaturescript/script Crie um arquivo.lua e renomeie para endvip.lua --[[ by vodkart ]]-- function onLogin(cid) if getPlayerStorageValue(cid, 13540) - os.time() > 0 then setPlayerStorageValue(cid, 9898, 1) end local pos = {x = 157, y = 50, z = 7} -- posiçao do templo. function Vodka(cid) if isPlayer(cid) then db.executeQuery("UPDATE `players` SET `name` = '"..string.sub(getCreatureName(cid), 7).."' WHERE `id` = "..getPlayerGUID(cid)..";") doRemoveCreature(cid) end end if getPlayerStorageValue(cid, 9898) == 1 and getPlayerStorageValue(cid, 13540) - os.time() < 1 or getPlayerStorageValue(cid, 13540) - os.time() == 0 then doTeleportThing(cid, pos) doPlayerPopupFYI(cid, "Sua vip Account acabou.") setPlayerStorageValue(cid, 9898, -1) if string.find(tostring(getCreatureName(cid)),"[[Vip]]") then addEvent(Vodka, 3*1000, cid) end end return TRUE end Em creaturescript.xml adicione a tag: <event type="login" name="CheckVip" script="endvip.lua"/> Pronto Seu sistema Vip está terminado. Você gostou deste conteúdo!? Este conteúdo te ajudou!? Isso será realmente útil pra você!? Então, se possível, faça uma doação (de qualquer valor) que estará me ajudando também!
  7. Cara eu só conhecia o SQLite Studio, mas esse Lita é simplesmente perfect man. Tópico reputadíssimo! (:
  8. Posta o script aqui para eu analisar...
  9. Opa bacana cara, depois eu ponho alguns emoticons desses aqui no forum... (:
  10. Forged postou uma resposta no tópico em Ferramentas OpenTibia
    Muito bom, esse é o primeiro IP Changer 9.1 né? REP+
  11. Nada com o bom e velho OTServer SVN... (:
  12. Essa talk dará o item que você citar para todos os players do server, sem necessitar editar no banco de dados. Em /data/talkactions/talkactions.xml adicione: <talkaction words="/additem" acces="5" event="script" value="additem.lua"/> Em /data/talkactions/scripts/additem.lua adicione: function onSay(cid, words, param, channel) -- Script by Dubler, written for megaevo.net local t = string.explode(param, ",") if t[1] ~= nil and t[2] ~= nil then local list = {} for i, tid in ipairs(getPlayersOnline()) do -- Script by Dubler, written for megaevo.net list[i] = tid end for i = 1, #list do doPlayerAddItem(list[i],t[1],t[2]) end -- Script by Dubler, written for megaevo.net doBroadcastMessage(getPlayerName(cid) .. " has given reward: " .. t[2] .." ".. getItemNameById(t[1]) .. " for all players!") else doPlayerPopupFYI(cid, "No parm...\nSend:\n /itemadd itemid,how_much_items\nexample:\n /itemadd 2160,10") end return true end -- Script by Dubler Créditos: Dubler. Você gostou deste conteúdo!? Este conteúdo te ajudou!? Isso será realmente útil pra você!? Então, se possível, faça uma doação (de qualquer valor) que estará me ajudando também!
  13. Forged postou uma resposta no tópico em Ferramentas OpenTibia
    OTServ Restarter Fala galera, eu sei que vocês sofrem quando seu otserv caí e você não está no computador para religar ele, pois bem, seus problemas acabaram... Aqui está um OTServ Restarter para vocês! O que é um restarter? É um reinicializador para seu OTServ, ou seja, quando o seu OTServ caí, ele inicia novamente o OTServ sem você precisar estar presente. ■ Instruções: Primeiramente, para o OTServ Restarter funcionar você terá que "desativar o relatório de erros do windows". → Desativar no Windows: Vá em Iniciar > Painel de Controle e dê um clique duplo no ícone: "Sistema" > Na guia "Avançado", clique em "Relatório de erros" > Selecione a opção "Desativar relatório de erros." É recomendável manter a opção "Notificar quando houver erros críticos" marcada, mas se seu OTServ tiver erros críticos lembre-se de desativar. Se você tiver outro sistema operacional, cheque no Google para ver como desativar o "relatório de erros" do seu sistema. → Feito isto, renomeie o executável do seu servidor para Servidor.exe, ficará assim (Servidor.exe). Observação: O executável do servidor, é o distro por onde você abre seu OTServ (Exemplo: Yourots, Alissow, lembre-se de renomear para Servidor). ■ Download e Informações Finais: OTRestarter.rar SCAN → Ok, após fazer o download do arquivo OTRestarter, você deverá abrir seu otserv através do OTRestarter e não abrir seu distro. Feito isso, poderá ficar tranquilo com o seu servidor, sem se preocupar com os kicks ou erros propriamente do Windows ou do servidor, pois se caso ele fechar ele abrirá novamente. Espero que gostem... Você gostou deste conteúdo!? Este conteúdo te ajudou!? Isso será realmente útil pra você!? Então, se possível, faça uma doação (de qualquer valor) que estará me ajudando também!
  14. Forged postou uma resposta no tópico em Playground (Off-topic)
    só tem punheteiro nesse fórum pqp! kkkkkkk
  15. Forged postou uma resposta no tópico em Playground (Off-topic)
    Eu e o renato conversando sobre assuntos importantes do fórum: maaaaasssss surgiu algo mais interessante.. kkkkkkkkkkkkkkkkkkkk Safadinhas:
  16. Forged postou uma resposta no tópico em Websites
    Novo Gesior, com o novo layout do Tibia.com! Download: http://www.speedyshare.com/files/29333172/tibiacom.7z Scan: http://www.virustotal.com/file-scan/report.html?id=130371001801d1f551cc6d91e2181df698d51557c0781eabfe16e8422511388d-1310065344 Créditos: Gesior, fireelement Você gostou deste conteúdo!? Este conteúdo te ajudou!? Isso será realmente útil pra você!? Então, se possível, faça uma doação (de qualquer valor) que estará me ajudando também!
  17. Este é a versão oficial do OTServ 9.1, realizada por alguns developers da otfans. O distro é completamente estável e contém todas as features 9.1 funcionando. OTServ: (Download) - (Scan) Sources: (Download) - (Scan) Você gostou deste conteúdo!? Este conteúdo te ajudou!? Isso será realmente útil pra você!? Então, se possível, faça uma doação (de qualquer valor) que estará me ajudando também!
  18. Muito bom, facinho de mais.. (: Toty, no TFS 0.2 o auto save vem na config.lua ou é lá no globalevents?
  19. Forged postou uma resposta no tópico em Playground (Off-topic)
    fiquei com medo, vai que ele é um alienígena?
  20. Forged postou uma resposta no tópico em Playground (Off-topic)
    PARA DE FALAR ASSIM DA MINHA GOSTOSA!
  21. Forged postou uma resposta no tópico em Playground (Off-topic)
    O avatar dele é randômico, atualiza acada F5 seu...
  22. Forged postou uma resposta no tópico em Remere's Map Editor
    Já sábia disso mesmo sendo péssimo em mapping. kkkkk Mas o tutorial ficou bacana, muitos não sabem! REP+
  23. Cara, simplesmente perfeito! Obrigado pelo conteúdo...
  24. porra descobriram que eu era canibal, oh shit!
  25. Quando eu tinha 11 anos já comia mulher e não sabia nem o que era um computador... =o

Informação Importante

Confirmação de Termo