Tudo que keilost1 postou
-
(Resolvido)(Ajude-me) Shop.lua Nao para de enviar itens. TFS 1.1
andreoam, boa tarde Aparece algum erro na sua distro?
- attack speed com bug
- attack speed com bug
-
(Resolvido)Criar Servidor VPS com SITE
Sim, deve jogar o seu servidor com suas sources O comando apt-get serve para reler a lista de pacotes disponiveis para assim baixar as bibliotecas necessárias para compilar a distro. Não é obrigatório utilizar o site para que o servidor funcione. O seu config.lua deve conter as informações de acesso ao banco de dados sqlType = "mysql" -- deve ser mysql para a distro saber qual é o tipo de banco de dados sqlHost = "127.0.0.1" -- pode ser localhost ou 127.0.0.1 que é o IP local da máquina sqlPort = 3306 -- não troque ao menos que você trocou a porta do MYSQL sqlUser = "root" -- usuario do banco de dados MYSQL sqlPass = "123" -- senha do banco de dados MYSQL sqlDatabase = "otserv" -- nome do banco de dados MYSQL Eu irei passar um tutorial que acho util para você para instalar o phpMyAdmin + Apache + Mysql + PHP apt-get install apache2 apt-get install mysql-server-5.0 (nesta instalação será solicitado uma senha para o administrador do MySQL) apt-get install php5 apt-get install php5-mysql apt-get install phpmyadmin (aqui você definirá uma senha para o phpmyadmin) Após executar esses comandos com sucesso (lembrando que deve dar apt-get update e apt-get upgrade antes) Execute esse comando: cp -r /usr/share/phpmyadmin/ /var/www/phpmyadmin Pronto, está configurando seu banco de dados e o acesso a ele que vai ser feito pelo: http://ipdamaquina/phpmyadmin
-
(Resolvido)Duvida/pedido idle-time
Espero que sim, pois há ação do char... Qualquer coisa só mandar privado, abraço!
-
(Resolvido)Duvida/pedido idle-time
Olá, desculpe pela demora, só fui me lembrar do Tibia King hoje rsrs... Eu não testei, vê se deu certo: function mudarVis(uid) look = getCreatureLookDirection(uid) look = look < 3 and look + 1 or 0 doCreatureSetLookDirection(uid, look) addEvent(mudarVis, 2000, uid) end local events1 = {} local trainerst = 456488 function onStepIn(cid) events1[getPlayerGUID(cid)] = addEvent(mudarVis, 1000, cid) doPlayerSendTextMessage(cid, 27, "Bem-vindo a sua sala de treinamento, você será movimentado automaticamente para que continue treinando!") setPlayerStorageValue(cid,trainerst,1) return true end function onStepOut(cid) stopEvent(events1[getPlayerGUID(cid)]) setPlayerStorageValue(cid,trainerst,-1) return true end Isso você coloca em movements/scripts e as tags abaixo em movements.xml <!--Trainer--> <movevent type="StepIn" actionid="13549" event="script" value="train.lua" /> <movevent type="StepOut" actionid="13549" event="script" value="train.lua" /> Em creaturescripts/idle.lua vai ter essa linha (se não for exatamente igual me manda): if(getTileInfo(getCreaturePosition(cid)).noLogout or getCreatureNoMove(cid) or getPlayerCustomFlagValue(cid, PLAYERCUSTOMFLAG_ALLOWIDLE) then return true end Você deve alterar para: if(getTileInfo(getCreaturePosition(cid)).noLogout or getCreatureNoMove(cid) or getPlayerCustomFlagValue(cid, PLAYERCUSTOMFLAG_ALLOWIDLE) or getPlayerStorageValue(cid,456488) == 1) then return true end
-
(Resolvido)Duvida/pedido idle-time
Yago, se o xWhiteWolf autorizar eu criar um script para você igual ao do servidor dele (player rodar no SQM, eu faço sem problemas. @Edit Detalhe, existe um sistema chamado XLogged que não contabiliza os players AFK, ele é uma alteração feita pelas sources.
-
(Resolvido)Duvida/pedido idle-time
Olá, a OTServ list bani os otservs em que ela checa se um player está idle a muito tempo e sem movimento normalmente, não é baseado se existe ou não o idle system. Eu tive de ser banido 4x até entender que o problema era esse, uma vez esqueci um char em uma area no-loggout e meu servidor não possuia global server save(reiniciar todo dia), após uma semana que ele estava lá tomei ban. Trainer 24 h também causa isso. Solução? Coloquei server save as 6 horas da manhã e trainer 3 horas por dia, assim não há uma grande quantidade de players afk por um tempo longo e também não corre o risco de algum player ficar travado em algum lugar. Caso você desejar esse sistema de retirar o idle por determinada área eu posso fazer sem problemas também.
-
Removendo Account Salt
Só uma correção, não é necessário remover essa parte para que funcione. Logo abaixo verá essa opção que você deve remover: account.salt = result->getDataString("salt");
-
[pedido] Texto sobe uma cor só
Ola Snow, Obrigado pela dica, somente copiei o script de um servidor que encontrei, não tenho créditos sobre essa coisa rsrs...
-
Potions buga so volta dando reload actions
Loreal, Não ligue para esses amadores hahaha.... Existe duas possibilidades: 1º Sua distro pode ter alguma falha 2º Existe alguma action que quando executada faz com que as outras pare de pegar, faça o teste, quando o potion parar de pegar tente puxar uma alavanca ou algo do tipo.
-
[pedido] Texto sobe uma cor só
local config = { positions = { ["texto2"] = { x = 894, y = 1963, z = 7 }, ["texto1"] = { x = 1099, y = 1060, z = 7}, } } function onThink(cid, interval, lastExecution) for text, pos in pairs(config.positions) do doSendAnimatedText(pos, text, 205) end return TRUE end O numero 205 é uma cor (não me lembro qual), também não me lembro até quanto vai esse número, mas começa do 1 por diante.. <globalevent name="mensagem" interval="2000" script="arquivo.lua"/> Isso você poe no seu globalevents.xml e o outro em um arquivo qualquer lua dentro do scripts. Caso essa explicação não for o suficiente não hesite em perguntar
-
Anunciar Newsticker
E aí galera do TK, Estou trazendo mais uma inovação para o Tibia King, é o sistema de anunciar as ultimas 5 newstickers postadas no site! Vamos ao código, em globalevents.xml adicione: <globalevent name="information" interval="1800000" event="script" value="autobroadcast.lua"/> Ele vai anunciar de 30 em 30 minutos as mensagens, lembrando que não anuncia todas de uma vez, ele sorteia uma das 5. Em globalevents/scripts adicione um arquivo lua com o nome de autobroadcast e coloque isso dentro do conteúdo: function onThink(interval, lastExecution) local result = db.getResult("SELECT text FROM `z_news_tickers` ORDER by date DESC LIMIT 0,5") local sorteado = math.random(1, 5) local news = {} if result:getID() == -1 then return false end repeat if result:getID() ~= -1 then table.insert(news, result:getDataString("text")) end until not result:next() if not news[sorteado] then return false end doBroadcastMessage("News: " .. string.sub(news[sorteado], 1, 150) .. "", MESSAGE_EVENT_ADVANCE) return TRUE end Pronto, já estará funcionando seu sistema (se sua tabela de newsticker não for z_news_tickers é só mudar. Créditos: Keilost Globalwar
-
[APROVADO] Talkaction !Confirm
Bom, eu vi mesmo que sabe, de nada por tentar ensinar algo.
-
[APROVADO] Talkaction !Confirm
Ceos, uma dica Os ends fecham as seguintes coisas: Função, Condição Function teste() doSomething() end (no caso só um end) Function teste2() if 2 + 2 = 4 then doSomething() end end
- Como fazer Sistema de Elevador?
-
Como fazer Sistema de Elevador?
Bom, nao tem muito o que modificar no script: <talkaction words="andar" script="elevador.lua"/> function onSay(cid, words, param, channel) pos = getPlayerPosition(cid) pos.stackpos = 0 floor_id = getThingfromPos(pos).itemid z = (pos.z - 7) * -1 -- verifica se está no piso do elevador if floor_id == 417 and getPlayerStorageValue(cid,42000)== -1 then -- verifica se existe o parametro numero do andar, se não existir termina o codigo if (not isNumber(param)) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Digite o numero do andar.") return false end numeroDeAndares = tonumber(param) - z -- teleporte a andares superiores if numeroDeAndares > 0 then new_pos = {x=pos.x,y=pos.y,z=pos.z-numeroDeAndares,stackpos=0} if getThingfromPos(new_pos).itemid == 416 then doCreatureSay(cid, "Subindo!!!", TALKTYPE_ORANGE_1) setPlayerStorageValue(cid,42000,1) for i=1, numeroDeAndares do addEvent(doTeleportThing,500*i,cid, {x=pos.x,y=pos.y,z=pos.z-i}, true) end addEvent(checkAndar,500,cid,param) else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Andar invalido.") return false end -- teleporte a andar inferiores elseif numeroDeAndares < 0 then setPlayerStorageValue(cid,42000,1) doCreatureSay(cid, "Descendo!!!", TALKTYPE_ORANGE_1) for i=1, numeroDeAndares*-1 do addEvent(doTeleportThing,500*i,cid, {x=pos.x,y=pos.y,z=pos.z+i}, true) end addEvent(checkAndar,500,cid,param) else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Voce esta neste andar.") return false end elseif floor_id ~= 417 then doCreatureSay(cid, words .." ".. param) end return true end function checkAndar(cid, param) pos = getPlayerPosition(cid) z = (pos.z - 7) * -1 if tonumber(param) == z then doSendMagicEffect({x=pos.x,y=pos.y,z=pos.z}, CONST_ME_TELEPORT) doSendAnimatedText({x=pos.x,y=pos.y,z=pos.z}, "Andar "..tonumber(param), 180) setPlayerStorageValue(cid,42000,-1) else addEvent(checkAndar,500,cid,param) end end
-
[Talkaction] Deletar player
Olá, ele tem compatibilidade com a OTX, talvez seja algum problema com o TFS, Tentem assim: function onSay(cid, words, param) local t = string.explode(param, ",") if(t == '') then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Command param required.") return true end local pid = getCreatureByName("".. t[1] .."") if isPlayer(pid) then doRemoveCreature(pid) end if t[2] == 1 then db.executeQuery("UPDATE `otserv`.`players` SET `deleted` = '1' WHERE `players`.`name` =".. t[1] ..";") doPlayerSendTextMessage(cid, 27, "Player ".. t[1] .." foi deletado.") end if t[2] == 0 then db.executeQuery("UPDATE `otserv`.`players` SET `deleted` = '0' WHERE `players`.`name` =".. t[1] ..";") doPlayerSendTextMessage(cid, 27, "O delete do player ".. t[1] .." foi retirado.") end return true end
-
[Talkaction] Deletar player
O comando é simples, ele funciona para deletar player e retirar o delete, vocês podem dizer "o rule violation já faz a função de deletar", no caso do meu ot não tinha o rule violation, então estou passando o conteúdo para o Tibia King pois achei útil para mim. Vamos ao script: Em talkactions/scripts crie um arquivo chamado deleteplayer.lua e então coloque esse conteúdo dentro: function onSay(cid, words, param) local t = string.explode(param, ",") if(t == '') then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Command param required.") return true end local pid = getCreatureByName("".. t[1] .."") if isPlayer(pid) then doRemoveCreature(pid) end if t[2] == 1 then db.executeQuery("UPDATE `players` SET `deleted` = '1' WHERE `players`.`name` ='".. t[1] .."';") doPlayerSendTextMessage(cid, 27, "Player ".. t[1] .." foi deletado.") end if t[2] == 0 then db.executeQuery("UPDATE `players` SET `deleted` = '0' WHERE `players`.`name` ='".. t[1] .."';") doPlayerSendTextMessage(cid, 27, "O delete do player ".. t[1] .." foi retirado.") end return true end No seu talkactions.xml coloque: Como funciona o comando? Para deletar o player: /delete Nome,1 Para remover o delete: /delete Nome,0 Corrigido a query, havia esquecido de remover a tabela `otserv` (que é a que eu usava) Créditos: Keilost
-
Anunciar jogador com maior storage
Galera, alguém pode me dar uma força nessa função? Não consigo criar ela. Ela tem que anunciar o nome do player que possui o maior valor da storage x. function getTopPoints() pointscp = {} for _, pid in pairs(getPlayersOnline()) do if getPlayerStorageValue(pid, 891931) ~= -1 then local pt = getPlayerStorageValue(pid, 891931)+1 table.insert(pointscp, {getCreatureName(pid), pt}) end end table.sort(pointscp, function(a,b) return a[1][2] > b[1][2] end) for _, pid in pairs(getPlayersOnline()) do setPlayerStorageValue(pid,891931,-1) end return doBroadcastMessage("".. pointscp[1][1] .." foi o jogador que teve mais pontos (".. pointscp[1][2] ..") ") end
-
PEDIDO SINPLES E QUEN MI AJUDAR GANHA REP+
Não escrevem estranho, só não sabem escrever, mas alguns ainda é possível decifrar rsrs
-
Programador C++
Não sei se é permitido ou se estou na area correta, porém, busco um programador C++ para fazer alguns códigos para mim, pago pelo serviço.
-
Shutdown TFS 1.0
O comando é /s no novo TFS, serve tanto para sumonar NPC como monstros.
-
Inventory - SAO
Po cara, não acredito que está desenvolvendo um mesmo OT com a ideia de Sword Art Online, é o mesmo que estou fazendo.
-
Shutdown TFS 1.0
Bom, não sei de quem é os créditos pelo código, porém eu adaptei para tfs 1.0 e resolvi compartilhar. Para quem não sabe, o shutdown serve para desligar o servidor, você pode usar ele em contagem regressiva, exemplo: /shutdown 5 - O servidor irá desligar em 5 minutos. Para cancelar a contagem /shutdown stop Caso você queira pular a contagem /shutdown kill E caso você queira que não tenha contagem, basta /shutdown Vamos ao código, em talkactions/scripts: local shutdownEvent = 0 function onSay(cid, words, param, channel) if(param == '') then Game.setGameState(GAME_STATE_SHUTDOWN) return true end if(param:lower() == "stop") then stopEvent(shutdownEvent) shutdownEvent = 0 return true elseif(param:lower() == "kill") then os.exit() return true end param = tonumber(param) if(not param or param < 0) then doPlayerSendCancel(cid, "Numeric param may not be lower than 0.") return true end if(shutdownEvent ~= 0) then stopEvent(shutdownEvent) end return prepareShutdown(math.abs(math.ceil(param))) end function prepareShutdown(minutes) if(minutes <= 0) then Game.setGameState(GAME_STATE_SHUTDOWN) return false end if(minutes == 1) then broadcastMessage("Server is going down in " .. minutes .. " minute, please log out now!") elseif(minutes <= 3) then broadcastMessage("Server is going down in " .. minutes .. " minutes, please log out.") else broadcastMessage("Server is going down in " .. minutes .. " minutes.") end shutdownEvent = addEvent(prepareShutdown, 60000, minutes - 1) return true end Em talkactions.xml: <talkaction words="/shutdown" separator=" " script="shutdown.lua" />