Guild House
-
Quem Está Navegando 0 membros estão online
Nenhum usuário registrado visualizando esta página.
-
Conteúdo Similar
-
Por FeeTads
Salve rapaziada do TK e da comunidade de tibia Otserv.
Recentemente alguns invejosos estão atacando servidores (DDoS), bugando o guilds de varios sites (tirando o lider e membros), assim buga a guild e muita coisa no OT.
Eles vão até o teu servidor e se passam por "adm do deletebra", já ouvi a uns tempos algumas pessoas falando disso, mas como eu tinha contato isso caiu por terra facilmente, um deles foi o ADM brendo, dono do antigo strongerFusion, onde ele me contou toda essa história, essa foi a primeira vez que me foi relatado sobre isso, hoje vejo que está parecendo ser mais frequente.
Caso qualquer pessoa entre no seu OT se passando pelo ADM do deletebra, favor entrar em contato comigo via discord: FeeTads#0246 Te ajudarei a resolver problemas que eles exploram sem cobrar nada por isso, para provar que não necessito atacar outros OT's para ter algum publico. Já tenho em mente quem pode ser essas pessoas, caso alguém tenha numero de telefone, nome real, ou alguma informação a mais dessas pessoas atacando e se passando por mim ou meu sócio, favor enviar no discord, irei atrás de resolver isso.
Vou deixar aqui alguns tutoriais de coisas básicas para você conseguir proteger o seu site desses SQL injections, e mais algumas coisinhas, caso futuramente eu resolva outros bugs explorados, vou postar aqui as correções.
Configurando CloudFlare (SSL) E subDominio (sv.seuIP)
Após isso para que a pessoa não entre no site pelo (sv.seudominio.com.br)
abra o index.php da pasta raiz (está dentro da pasta html)
if($_SERVER['HTTP_HOST'] == 'sv.seuDominio.com.br') { header("Location: https://seuDominio.com.br"); } if($_SERVER['HTTP_HOST'] == 'IP NUMÉRICO') { header("Location: https://seuDominio.com.br"); }
Isso fará que quando a pessoa tente entrar no seu site usando meios não seguros (DNS only) ele redirecione pro seguro > proxiado pela cloudflare
_________________________________________________________________________________________________________________________________________
CORREÇÃO GUILDS.PHP / INJECTION SQL TIRANDO LIDER DA GUILD
PROTEÇÕES PARA DIMINUIR EFEITOS DE DDoS
Espero que isso ajude a muitos, a se prevenir de pessoas que tentam atacar OT's se passando por outros, ou até que vão la pedir pontos para jogar se não eles irão atacar, se prevenir de pessoas mal intencionadas.
PS: Caso você tenha no seu site a pagine "house" e "tickets" recomendo retirar do seu site, pois há maneira de injetar SQL por esses arquivos.
Vou postar em breve o tickets arrumado.
Boa sorte rapaziada, se cuidem, e caso alguém faça isso, por favor entre em contato comigo.
-
Por thelifeofpbion
Bom a um tempo atras como de costume eu pedi para alguém me ajudar a montar um script onde os players que tiverem guild terem o emblema de guild (de quando começa a war) não to com tempo pra procurar a foto agora, mas é aquele verdinho que fica do lado do char, como ninguém sabia, ou não pode ajudar eu procurei sobre para tentar montar isso e consegui (pelo menos ate agora), vou postar para os ouros membros do meu tópico de ajuda testarem e talvez achar algum bug.
obs: só para quem já tem os códigos na distro
Finalidade do Script: É bem simples, apenas deixar o escudo verde ativado quando um player tiver uma guild, para identificar seus aliados, mesmo com a war entre guilds desativadas.
Para adicionar o script também é bem simples, Basta ir em Data>creaturescript>scripts>login.lua
e antes do ultimo
return true
end
voce adiciona isso.
Pronto, cada vez que o player logar, vai definir um inimigo (0). ou seja não vai ter inimigo mas sua guild vai ter o emblema verde...
Eu consegui essa solução agora de manhã então eu não sei se pode ter bugs, porém pelo que eu pude testar, consegui de boa e também consegui entrar em war com outras guild, sair de war e etc.
obs: Eu tava com um problema na minha talkactions de war, quando uma guild que recebia convite para entrar, aceitava mas depois não conseguia sair. só a guild que convidou podia cancelar a guerra entre guild... não sei se isso é normal mas consegui modificar, caso alguém tenha o mesmo problema eu posso passar a talkaction.
-
Por CaduGTX
Olá, eu e um amigo fizemos esse script para limpar as casas automaticamente, era um script pessoal mas resolvi postar.
O Script foi feito em revscript, se for usar da forma antiga, terá que adaptar.
Basta adicionar um arquivo lua na sua pasta de talkactions:
local function doCheckHouses() local registros = db.storeQuery( "SELECT `houses`.`owner`, `houses`.`id` FROM `houses`,`players` WHERE `houses`.`owner` != 0 AND `houses`.`owner` = `players`.`id`;") if registros ~= false then local count = 0 repeat count = count + 1 local owner = result.getNumber(registros, "owner") local houseId = result.getNumber(registros, "id") local house = House(houseId) if house and (owner > 0) then print(house:getName()) house:setOwnerGuid(0) end until not result.next(registros) result.free(registros) end print('Houses Cleaned') return true end local limparhouse = TalkAction("/limparhouse") function limparhouse.onSay(player, words, param) if not player:getGroup():getAccess() or player:getAccountType() < ACCOUNT_TYPE_GOD then player:sendCancelMessage("Only admins can use this command.") return true end addEvent(doCheckHouses, 10 * 1000) player:sendCancelMessage("Cleaning houses.") return true end limparhouse:separator(" ") limparhouse:register()
Para usar é bem simples, basta usar o comando /limparhouse, e dentro de alguns instantes todas as casas serão limpas.
Creditos:
-CaduGTX
-JameesDavid
-
Por Bolludo
Olá, gostaria que as house do meu servidor salvasse os itens e apenas nos donos pudesse mover, alguém poderia me ajudar ?
Up
-
Por tataboy67
Opa boa noite rapaziada, tudo bom?
Eu estou treinando um pouco scripts e acabei que tendo a ideia de fazer algo relacionado com as Guilds.
Então resolvi trazer 1 sistema de Guild Dungeon Lever para mim treinar
Estou em fase de treinamento, então por favor, deem dicas e criticas ao sistema ! Obrigado ...
Como o sistema funciona?
Terá uma alavanca com local para os jogadores de sua Guild ficarem... O jogador que estiver na posição principal e próxima a alavanca irá clicar na alavanca que fará com que todos entrem na Dungeon. Os jogadores terão um tempo "x" para terminar, porém se o tempo acabar, o jogador será teleportado de volta para a posição principal da alavanca (Aonde o jogador clicou).
Como configurar o script?
local config = { time = 10, -- 1 Second. (1*60 To Minutes) level = 100, -- Level Necessary. dungeonPos = Position(1454, 909, 7), -- Dungeon Pos. needPos = { [1] = Position(1447, 915, 7), -- Position (where the player will click on the lever) and back position. [2] = Position(1449, 914, 7) }, fromPos = {x = 1449, y = 904, z = 7}, -- Position /\ < from the dungeon toPos = {x = 1456, y = 911, z = 7}, -- Position \/ > from the dungeon Storagetime = 39320, -- Storage Time. StorageDay = 39321, -- Storage Day. Timer = 24*60*60 -- To re-enter in the dungeon. (24hours) } time ------------------ Tempo que os jogadores ficarão dentro da Dungeon.
level ----------------- Nível que todos precisam ser para entrar.
dungeonPos ------ Posição que todos os jogadores serão teleportados.
needPos ------------ Posição que os jogadores devem estar para serem teleportados.
fromPos ------------- Posição SUPERIOR ESQUERDO da sala.
toPos ----------------- Posição INFERIOR DIREITO da sala.
Storagetime -------- Não mexer se não souber.
StorageDay ----------- Não mexer se não souber.
Timer ------------------ Tempo que o jogador terá que esperar para entrar novamente na Dungeon.
Sem mais delongas, vamos ao script:
Adicione a linha em:
(data/actions/actions.xml)
<!-- Script GUILD --> <action actionid="29305" script="Dungeon_Guild.lua" />
Adicione a linha em:
(data/actions/scripts/Dungeon_Guild.lua)
local config = { time = 5, -- 1 Second. (1*60 To Minutes) inside the dungeon. level = 100, -- Level Necessary. dungeonPos = Position(1454, 909, 7), -- Dungeon Pos. needPos = { [1] = Position(1447, 915, 7), -- Position (where the player will click on the lever) and back position. [2] = Position(1449, 914, 7) }, fromPos = {x = 1449, y = 904, z = 7}, -- Position /\ < from the dungeon toPos = {x = 1456, y = 911, z = 7}, -- Position \/ > from the dungeon Storagetime = 39320, -- Storage Time. StorageDay = 39321, -- Storage Day. Timer = 24*60*60 -- To re-enter in the dungeon. (24hrs) } function onUse(player, item, fromPosition, itemEx, toPosition, isHotkey) local guild = player:getGuild() for i = 1, #config.needPos do local playerTile = Tile(config.needPos[i]):getTopCreature() if not playerTile or not playerTile:isPlayer() then player:getPosition():sendMagicEffect(CONST_ME_POFF) player:sendTextMessage(MESSAGE_STATUS_DEFAULT, "You need 2 players and stay on the orange floor.") return true end if not playerTile:getGuild() and not player:getGuild() then player:getPosition():sendMagicEffect(CONST_ME_POFF) return player:sendTextMessage(MESSAGE_STATUS_SMALL, "One of the members does not have guild.") end if playerTile:getLevel() < config.level then player:getPosition():sendMagicEffect(CONST_ME_POFF) return player:sendTextMessage(MESSAGE_STATUS_SMALL, "All the players need to be level "..config.level.." or higher.") end if player:getGuild():getId() ~= playerTile:getGuild():getId() then player:getPosition():sendMagicEffect(CONST_ME_POFF) return player:sendTextMessage(MESSAGE_STATUS_SMALL, "Only players in your guild can join you.") end if player:getStorageValue(config.Storagetime) - os.time() > 0 and playerTile:getStorageValue(config.Storagetime) - os.time() > 0 then player:getPosition():sendMagicEffect(CONST_ME_POFF) return false end if player:getStorageValue(config.StorageDay) - os.time() > 0 and playerTile:getStorageValue(config.StorageDay) - os.time() > 0 then player:getPosition():sendMagicEffect(CONST_ME_POFF) player:sendTextMessage(MESSAGE_EVENT_ADVANCE, string.format("You're in cooldown to enter in a dungeon again. Cooldown: %s.", string.diff(player:getStorageValue(config.StorageDay)-os.time()))) return false end local players = {} for x = config.fromPos.x, config.toPos.x do for y = config.fromPos.y, config.toPos.y do for z = config.fromPos.z, config.toPos.z do local tile = Tile(x, y, z) local creature = tile:getTopCreature() if creature and creature:isPlayer() then players[#players+1] = creature end end end end if #players > 0 then player:getPosition():sendMagicEffect(CONST_ME_POFF) return player:sendTextMessage(MESSAGE_STATUS_SMALL, "Already has a guild inside.") end player:teleportTo(config.dungeonPos) playerTile:teleportTo(config.dungeonPos) playerTile:getPosition():sendMagicEffect(50) addEvent(function() player:teleportTo(config.needPos[i]) playerTile:teleportTo(config.needPos[i]) player:getPosition():sendMagicEffect(CONST_ME_MAGIC_BLUE) playerTile:getPosition():sendMagicEffect(CONST_ME_MAGIC_BLUE) player:setStorageValue(config.StorageDay, os.time() + config.Timer) playerTile:setStorageValue(config.StorageDay, os.time() + config.Timer) end, config.time*1000) return false end return true end
Créditos:
@KotZletY
E eu
Espero que gostem ? ...
Edit* Adicionado Tempo para que você possa entrar novamente na Dungeon:
Rep+
-
Posts Recomendados
Participe da conversa
Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.