-
Total de Posts
207 -
Registro em
-
Última visita
-
Dias Ganhos
36
Tipo de Conteúdo
Fóruns
Downloads
Galeria
Perfis
Tudo que Wang postou
-
local M = { [1] = {"Rattata",{x=1050, y=1050, z=7}}, [2] = {"Oddish",{x=1052, y=1053, z=7}}, [3] = {"Paras",{x=1051, y=1050, z=7}}, [4] = {"Charmander",{x=1050, y=1051, z=7}} } local storage = 14678 -- n mexa local time_summon = 1 -- tempo em minutos if not isPlayer(cid) then return false elseif getGlobalStorageValue(storage) >= os.time() then return false end r = math.random(1, #M) doCreateMonster(M[r][1], M[r][2]) doCreatureSay(cid, "Oh my god, a trap!", 19) setGlobalStorageValue(storage, os.time()+time_summon*60) return TRUE end movements.xm <movevent type="StepIn" uniqueid="14500" event="script" value="summontile.lua"/>
-
jovem acho que tenho algo semelhante
-
venda Venda Servidor PokeNumb (Poke z Universe)
Wang respondeu ao tópico de MarcosVinZ7 em Venda de Servidores/Derivados
belo serve parabéns -
tranquilo já conseguir a src muito semelhante do pkc ela
-
vendendo algo que tá público dps fala de min vendo src do ilusion que nojo
-
pena sem src do serve somente otc
-
comunidade agradecer. ótimo conteúdo +Rep
-
quais ots já foram testados ? como funciona do jogar na pasta e lançar os comando ou tem algum comando para diretório tipo cd cd /otcTal dps usar ./decrypt?
-
prints é infos?
-
ótimo conteúdo comunidade agradece.
-
Evento bag - talkactions
Wang respondeu ao tópico de gutinha em TFS 0.X, Compartilhe seu código C++, LUA, PHP e etc
vídeo ou print do system em ação seria útil -
Webhook com discord pelo servidor
Wang respondeu ao tópico de gutinha em TFS 0.X, Compartilhe seu código C++, LUA, PHP e etc
eita chat gpt tá daquele jeitao kkk gz -
linda base ótimo conteúdo parabéns
-
[PROJETO-DEVZ] Pokémon Dash Revolution - Open Source
Wang respondeu ao tópico de Tungs em Servidores Poketibia
excelente -
[EXCLUSIVO] Pokémon HP - 2023 ( base pokenumb )
Wang respondeu ao tópico de Tungs em Servidores Poketibia
ótimo conteúdo continue assim comunidade agradecer -
ótimo conteúdo mais sem a src corrigida inútil ela
-
copia e cola num arquivo text e salva com o nome ligar.sh, vai na pasta aonde tá o "theforgottenserver" no linux renomeia pra "minusculo" ficando "theforgottenserver". pega o ligar.sh joga na pasta aonde tá o theforgottenserver, como vc ligar o server escrevendo ./theforgottenserver você vai usar dessa maneira... escreva no puty: screen agora de enter 2 vezes e escreva ./ligar.sh pronto o server vai ligar e se cair ele vai reiniciar normalmente depois de 5 segundos. #!/bin/bash while true; do ./theforgottenserver > data/logs/output.log & PID=$! echo $PID > theforgottenserver.pid wait $PID sleep 5 done *sleep: = segundos *data/logs/output.log é pra onde vai o log de quando o server tiver ligando vc acompanha tudo lá. Lembre de dar permissões pro ligar.sh - chmod 777 -R pasta do server
-
- 2 respostas
-
- 97
-
diálogo system [OtClient] Diálogo System TFS 0.3.6
Wang postou um tópico no fórum em OTClient Mehah, V8 e derivados
[OTClient] Sistema de Dialogo Otpokemon vi em outro forum achei útil vou compartilhar aqui com vocês porém todos créditos vão para o gengo Venho através desse tópico contribuir para a comunidade, um simples modulo de dialogo no estilo do Otpokemon, não é um sistema de dialogo avançado é algo simples que deixa seu servidor intuitivo. 1) Faça o download do modulo no qual se encontra no final do tópico e abrindo a pasta do seu client, extraia e coloque o modulo na pasta modules. 2) O módulo utiliza uma função chamada switch que não é comum ter no otclient, porem podemos colocar sem muito esforço, na pasta do otclient abra o arquivo util.lua que se encontra em modules/corelib/ e no final do arquivo coloque o seguinte código function switch(indice) return function(codetable) local case = codetable[indice] or codetable.default if ( case ) then if ( type(case) == "function" ) then return case(indice) else error("action "..tostring(indice).." not a function") end end end end Feito o passo 1 e 2, vamos para a parte do servidor. 1) Crie um arquivo na pasta data/lib/ podendo ter o nome de npcdialog_lib.lua e coloque o seguinte código: local OpcodeDialog = 80 local Actions = { open = 1, closed = 2 } function doSendDialogNpc(cid, npc, msg, opc) if ( not opc ) then opc = '' end doSendPlayerExtendedOpcode(cid, OpcodeDialog, table.serialize({ action = Actions.open, data = { npcId = npc, message = msg, options = opc } })) end function doSendDialogNpcClose(cid) doSendPlayerExtendedOpcode(cid, OpcodeDialog, table.serialize({ action = Actions.closed })) end 2) O arquivo que acabamos de criar utiliza uma função chamada table.serialize que não é comum ter nos servidores, para que funcione sem erros vamos adicionar, abra o arquivo 012-table.lua que fica na pasta do seu servidor em data/lib/ ou você pode criar o arquivo e adicionar o seguinte código: table.find = function (table, value) for i, v in pairs(table) do if(v == value) then return i end end return nil end table.serialize = function(x, recur) local t = type(x) recur = recur or {} if t == nil then return "nil" elseif t == "string" then return string.format("%q", x) elseif t == "number" then return tostring(x) elseif t == "boolean" then return t and "true" or "false" elseif getmetatable(x) then error("Can not serialize a table that has a metatable associated with it.") elseif t == "table" then if(table.find(recur, x)) then error("Can not serialize recursive tables.") end table.insert(recur, x) local s = "{" for k, v in pairs(x) do s = s .. "[" .. table.serialize(k, recur) .. "]" s = s .. " = " .. table.serialize(v, recur) .. "," end s = s .. "}" return s else error("Can not serialize value of type '" .. t .. "'.") end end Feito todo esse procedimento, estarei disponibilizando um npc para que vocês possam ter uma noção de como utilizar esse sistema de dialogo. 1) Crie um arquivo na pasta do servidor em data/npc/ chamado Gengo.xml e adicione o seguinte código: 2) Crie um arquivo na pasta do servidor em data/npc/lib/ com o nome gengo.lua e adicione o seguinte código: local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) function onThink() npcHandler:onThink() end function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end function greetCallback(cid) doSendDialogNpc(cid, getNpcId(), "Olá jovem, vejo que você conseguiu chegar até aqui!\nClique em Recompensa e fique feliz pela conquista!", "Fechar&Recompensa") return true end function creatureSayCallback(cid, type, msg) if not npcHandler:isFocused(cid) then return false end if msgcontains(msg:lower(), "recompensa") then local message = "" if getPlayerStorageValue(cid, 7000) == -1 then setPlayerStorageValue(cid, 7000, 1) doPlayerAddItem(cid, 2160, 1) message = "Você acaba de ganhar uns trocado por chegar até aqui.\nVolte sempre!" else message = "Você ja pegou sua recompensa, obrigado e volte sempre!" end doSendDialogNpc(cid, getNpcId(), message, "Fechar") elseif msgcontains(msg:lower(), "fechar") then doSendDialogNpcClose(cid) npcHandler:unGreet(cid) end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:setCallback(CALLBACK_GREET, greetCallback) npcHandler:addModule(FocusModule:new()) O npc é algo simples, porem serve para que você possa ter uma noção de como utilizar as funções do npc. Link module Module: [Hidden Content] Scan: [Hidden Content] Demostrativo dentro do game:- 7 respostas
-
- 67
-
tibia Vip System TFS 1.4.1
Wang respondeu ao tópico de Wang em TFS 1.X, Compartilhe seu código C++, LUA, PHP e etc
ok- 5 respostas
-
- poketibia
- dragon ball
-
(e 2 mais)
Tags:
-
tibia Vip System TFS 1.4.1
Wang postou um tópico no fórum em TFS 1.X, Compartilhe seu código C++, LUA, PHP e etc
Olá pessoal, estou desenvolvendo esse sistema vip para TFS 1.x, se precisarem de alguma função nova é só comentar, criei para usar em um servidor meu e resolvi postar, bom proveito a todos. É só ir no arquivo data/lib/core/player.lua e adicionar esse código no começo do script: -- ALTER TABLE `accounts` ADD `vip_time` BIGINT(20) NOT NULL DEFAULT 0; -- player:getVipTime() function Player.getVipTime(self) local resultId = db.storeQuery("SELECT `vip_time` FROM `accounts` WHERE `id` = '".. self:getAccountId() .."';") local time = resultId ~= false and result.getNumber(resultId, "vip_time") or 0 result.free(resultId) return time end -- player:isVip() function Player.isVip(self) return self:getVipTime() > os.time() and true or false end -- player:addVipDays(days) function Player.addVipDays(self, days) return(self:isVip() and tonumber((days * 86400))) and db.query("UPDATE `accounts` SET `vip_time` = '".. (self:getVipTime() + (days * 86400)) .."' WHERE `id` ='".. self:getAccountId() .."' LIMIT 1 ;") or db.query("UPDATE `accounts` SET `vip_time` = '".. (os.time() + (days * 86400)) .."' WHERE `id` ='".. self:getAccountId() .."' LIMIT 1 ;") end -- player:removeVipDays(days) function Player.removeVipDays(self, days) return(self:isVip() and tonumber((days * 86400))) and db.query("UPDATE `accounts` SET `vip_time` = '".. (self:getVipTime() - (days * 86400)) .."' WHERE `id` ='".. self:getAccountId() .."' LIMIT 1 ;") or db.query("UPDATE `accounts` SET `vip_time` = '".. (os.time() - (days * 86400)) .."' WHERE `id` ='".. self:getAccountId() .."' LIMIT 1 ;") end -- player:setVipDays(days) function Player.setVipDays(self, days) return db.query("UPDATE `accounts` SET `vip_time` = '".. (os.time() - (days * 86400)) .."' WHERE `id` ='".. self:getAccountId() .."' LIMIT 1 ;") end -- player:removeVip() function Player.removeVip(self) db.query("UPDATE `accounts` SET `vip_time` = '0' WHERE `id` ='".. self:getAccountId() .."' LIMIT 1 ;") end -- player:sendVipDaysMessage() function Player.sendVipDaysMessage(self) if self:isVip() then local vipTime = self:getVipTime() - os.time() local vipDays = 1 + (math.floor(vipTime / 86400)) return self:getVipTime() ~= false and self:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, 'You have '.. vipDays .. ' vip day(s) in your account.') end end -- player:checkVipLogin() function Player.checkVipLogin(self) if self:getVipTime() > 0 and not self:isVip() then return self:removeVip() and self:teleportTo(self:getTown():getTemplePosition()) end end As funções são: • player:getVipTime() - Retorna o valor da tabela vip_time (igual esta na database). • player:isVip() - Retorna se o player é vip ou não. • player:addVipDays(days) - Usa-se em algum script para para adicionar dias de vip ao player (parâmetro de entrada "days"). • player:removeVipDays(days) - Usa-se em algum script para para remover dias de vip do player (parâmetro de entrada "days"). • player:setVipDays(days) - Usa-se em algum script para para mudar os dias de vip do player (parâmetro de entrada "days"). • player:removeVip() - Usa-se em algum script para para remover todo tempo de vip do player. • player:sendVipDaysMessage() - Retorna uma mensagem no player mostrando os dias de vip que ainda restam ao player. • player:checkVipLogin() - Checa se a vip do player acabou, se sim teleporta ele para o templo.- 5 respostas
-
- 6
-
- poketibia
- dragon ball
-
(e 2 mais)
Tags:
- Criar Novo...