Ir para conteúdo

Líderes

Conteúdo Popular

Exibindo conteúdo com a maior reputação em 07/08/17 em todas áreas

  1. Hail Xtibianos. Eu fiz esse sistema como pedido de um membro há um bom tempo, mas nunca tinha postado ele e diversos sistemas que uso no meu ot server; agora resolvi postá-los. Esse é o sistema que impede dos players da mesma party se atacarem ou, também dos membros da mesma guild. Em config.lua adicione: noDamageToGuildMates = false noDamageToPartyMembers = true Em creaturescripts.xml adicione: <event type="combat" name="combat" script="combat.lua"/> Em creaturescripts/scripts/login.lua adicione: registerCreatureEvent(cid, "combat") Na mesma pasta, crie um arquivo lua chamado combat e adicione isso nele: --[[> Marcryzius <]]--function onCombat(cid, target) if(isPlayer(cid) and isPlayer(target)) then if(getConfigValue("noDamageToGuildMates") and getPlayerGuildId(cid) > 0 and getPlayerGuildId(cid) == getPlayerGuildId(target)) then return false elseif(getConfigValue("noDamageToPartyMembers") and isInParty(target) and getPartyLeader(target) == getPartyLeader(cid)) then return false end end return trueend Qualquer duvida ou erro deixe nos comentários.
    2 pontos
  2. pra quem quiser brincar, alterar e/ou terminar o código, ta aí: local shinycard = {[0] = {"Dragon", "Dragon lord", "Cyclops"},[1] = {"Rabbit, orc"},time = 60,id = 3976}local amulets = {[2484] = {"Entei"}, [5591] = {"Mewtwo"}, [3361] = {"Suicune"}, } h_storageClan, h_storageCD, h_storageCDValue, h_storageHelperTime = 181484, 181485, 24, 181486 function onUse(cid, item, fromPosition, itemEx, toPosition)local pos, a = getCreaturePosition(cid), 1 local pos_summon = {{x = pos.x + a, y = pos.y, z = pos.z}, {x = pos.x + a, y = pos.y + a, z = pos.z}, {x = pos.x, y = pos.y + a, z = pos.z}, {x = pos.x - a, y = pos.y + a, z = pos.z}, {x = pos.x - a, y = pos.y, z = pos.z}, {x = pos.x - a, y = pos.y - a, z = pos.z}, {x = pos.x, y = pos.y - a, z = pos.z}, {x = pos.x + a, y = pos.y - a, z = pos.z}, {x = pos.x +a, y = pos.y, z = pos.z}} hname = "" if getPlayerStorageValue(cid, h_storageCD) >= os.time() then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Resta ".. getPlayerStorageValue(cid, h_storageCD) - os.time() .." segundos de cooldown para utilizar esse item. ") doSendMagicEffect(getThingPos(cid), CONST_ME_POFF) doRemoveCreature(getCreatureSummons(cid)[table.maxn(getCreatureSummons(cid))]) return true else if item.itemid == shinycard.id then hname = shinycard[getPlayerStorageValue(cid, h_storageClan)][math.random(#shinycard[getPlayerStorageValue(cid, h_storageClan)])] print (hname) end if (amulets[item.itemid]) then hname = amulets[item.itemid][1] end local helper = doCreateMonster(hname, pos_summon[math.random(9)]) local h_s = {} doConvinceCreature(cid, helper) -- registerCreatureEvent(helper, "HelpingCard") setPlayerStorageValue(helper, h_storageHelperTime, os.time() + 20) function Check(cid) if cid == true or isCreature(cid) then if getPlayerStorageValue(cid, h_storageHelperTime) <= os.time() then doRemoveCreature(cid) print"criatura removida" return true end else print"thing not found" return true end doSendAnimatedText(getThingPos(cid), getPlayerStorageValue(cid, h_storageHelperTime) - os.time() , 34) addEvent(Check, 1000, cid) if getCreatureTarget(cid) == 0 then local master = cid local centerPos = {x = getCreaturePosition(master).x + 1, y = getCreaturePosition(master).y, z = getCreaturePosition(master).z} local spec = getSpectators(centerPos, 8, 7, false) local random = spec[math.random(#spec)] s = random if not isPlayer(s) and not isSummon(s) and not isNpc(s) then helperEntei_1 (cid, s) print("possivel target:" .. getCreatureName(s)) local dest = getDirectionTo(getThingPos(cid), getThingPos(s)) if isWalkable(getPosByDir(getThingPos(cid), dest)) then local d = 1 while d < 2 do addEvent(doMoveCreature, 500,cid, dest) addEvent(doCreatureSetLookDir, 350, cid, getDirectionTo(getThingPos(cid), getThingPos(s))) d = d + 1 end doCreatureSetLookDir(cid, getDirectionTo(getThingPos(cid), getThingPos(s))) else print('not walkable') end end end hname = "" dest = "" end -- Check(helper) -- registerCreatureEvent(cid, "HelpingCard") setPlayerStorageValue(cid, h_storageCD, os.time() + 10) end return true end helper_config = {["Entei"] = {minDamage = 5, maxDamage = 30, rangeAttack = 0},["Suicune"] = {min = 200, 500},["Raikou"] = {min = 200, max = 500}} function helperEntei_1 (cid, target) -- fire balllocal pos, a = getCreaturePosition(target), 1 pos_target = {{x = pos.x + a, y = pos.y, z = pos.z}, {x = pos.x + a, y = pos.y + a, z = pos.z}, {x = pos.x, y = pos.y + a, z = pos.z}, {x = pos.x - a, y = pos.y + a, z = pos.z}, {x = pos.x - a, y = pos.y, z = pos.z}, {x = pos.x - a, y = pos.y - a, z = pos.z}, {x = pos.x, y = pos.y - a, z = pos.z}, {x = pos.x + a, y = pos.y - a, z = pos.z}, {x = pos.x +a, y = pos.y, z = pos.z}} for i = 1, #pos_target do doAreaCombatHealth(cid, COMBAT_FIREDAMAGE, pos_target[i], 1, - helper_config["Entei"].minDamage, - helper_config["Entei"].maxDamage, 6) end return true end não sei se vou terminar, to perdendo a fé nesses fóruns.
    2 pontos
  3. Global Full [CLIENTS COMPATÍVEIS] 10 e 11.5. [BUGS E DOWNLOAD] BAIXEM E REPORTEM EM: OTXGlobal Full [FEATURES] NEW DEPOT, NEW SPAWN, NEW CAST SYSTEM, NEW NPC SYSTEM VIA BANK BALANCE, NEW CRITICAL BOOST SYSTEM, NEW POTIONS, REWARD SYSTEM, PREY ... [MAPA] FULL GLOBAL MAP WITH FEYRIST TODAS CIDADES E NOVAS AREAS TODAS QUESTS FUNCIONANDO! [EVENTS] WAR-ANTIENTROSA [CONTATO] SKYPE: onjogos WHATSAPP: (66) 998427-4493 [Créditos]Tfs 1.2 Developers -Zbizu - Pitis91 - MatheusMkalo - Gesior - Lundrial - M4G0 - Fish04k - Printer - Djarek - Ninjalulz - Slavidodo - Thexamx - Socket2810 - Ciroc -Absolute - Gordonbay - Mitsuig - Alissonfgp - Gunz - Bruno Minervino - Comedinha -Hirako - Maya - Mattyx14 – Darkjav - Viking Tibia
    1 ponto
  4. Eai brothers poxa seria muito bacana uma seção de lives né por exemplo para o membro criar um tópico de live como um tópico normal qualquer para ele colocar a live dele e depois de que terminar colocar o vídeo da live gravada seria muito diferente e mais dinâmico
    1 ponto
  5. Desnecessário por eu não ter essa pip azul da realeza? Porquê tu disse exatamente a mesma merda que eu. Bani aí então, champz. Vou comentar onde, quando e o que achar que devo. Abraços.
    1 ponto
  6. eu entendo mas uma área nova designada para só esse tipo de conteúdo não seria interessante também?
    1 ponto
  7. Olá, terminei o trabalho da faculdade com um pouco de facilidade, não precisei de muito tempo para fazer, mas queria que alguém visse se tem bugs, porque ainda não achei nenhum, depois de ter tirado um monte. O que é para fazer: Aqui vai o código:
    1 ponto
  8. Amigo eu tenho um sever de poketibia é base pokemon flash , não sei se conhece é bem antiga ela tem algumas coisas que queria arrumar tipo o pokemon heala sozinho , não tem sistema de ordem , não tem m1 ao m12 , e não tem surf pois não da pra encosta na borda da agua pois é igual o tibia queria pedir sua ajuda pois no forun ninguem me ajudou ainda..
    1 ponto
  9. Creio que seja porque a função: doPlayerSetSkill(cid, 3, 400) está antes das outras, ou seja é executada primeiro, por isso quando as outras são executadas da creature not found. Deveria ficar assim: function onSay(cid, words, param) if (getTilePzInfo(getCreaturePosition(cid)) == FALSE) then doPlayerSendTextMessage(cid,22,"você precisa estar em protection zone pra poder usar este comando.") return TRUE end if doPlayerRemoveItem(cid,2160,500) and getPlayerVocation(cid) == 8 then doCreatureSay(cid, "AXE FULL KNIGHT!", TALKTYPE_ORANGE_1) doSendMagicEffect(getPlayerPosition(cid), CONST_ME_MORTAREA) doPlayerSetSkill(cid, 3, 400) else doPlayerSendCancel(cid, 'voce precisa de 5kk para usar este comando e ser Kina.') doSendMagicEffect(getPlayerPosition(cid), CONST_ME_FLAMEAREA) end end
    1 ponto
  10. Bom dia XTibianos! Neste tutorial de hoje vou ensinar a instalar e utilizar o Screen. Mas antes disso, vou explicar o que é e para que serve. O Screen (ou GNU Screen) é é um software livre multiplexador de terminal de linha de comando desenvolvido pelo Projeto GNU. Permite que o usuário acesse múltiplas sessões separadas de terminal a partir de uma mesma janela ou mesmo remotamente. É muito útil para manipular vários programas em uma mesma janela ou mesmo para manter processos em execução de fundo. [Wikipedia] Ou seja, reusmidamente, o Screen é um software que permite você rodar várias áreas de trabalhos com vários processos executando. E porque preciso de utilizar isso no meu servidor de OTServer? Simples! Quando for abrir o servidor utilizando o comando ./theforgottenserver &, ao fechar o SSH, o servidor continua rorando, certo? Mas você não pode mais ver os logs que o executável gera em tempo real no linux. Porém.. se você abrir o servidor dentro de uma área de trabalho do Screen, isso é possível! Sem contar com várias outras vantagens como maior estabilidade e possibilidade de continuar trabalhando no SSH sem interromper o servidor ou ter que abrir outra janela! Bom.. agora que já expliquei sobre o Screen.. Vamos ao tutorial! 1. Instalando o Screen: 1.1. Abra o terminal SSH do seu servidor. 1.2. Ao logar no servidor, rode o seguinte comando para instalar o Screen: -> Servidores Ubuntu/Debian: apt-get install screen -> Servidores CentOS: yum install screen 1.3. Pronto, Screen instalado! Simples, não? Agora vamos a utilização! 2. Utilizando o Screen: 2.1. Abra o terminal SSH do seu servidor. 2.2. Para criar uma nova área de trabalho do Screen, utilize o comando: screen -S NomeDaScreen -> Por exemplo: screen -S rodarServidor 2.3. Assim que o comando acima for executado, voce já estará em uma nova área de trabalho. Caso queira deixar algo rodando nela em segundo plano, basta rodar o que for rodar normalmente e sair da Screen sem fechar a área de trabalho. -> Por exemplo: screen -S TFS nightz@servidor:~$ cd /home/otserv nightz@servidor:/home/otserv$ ./theforgottenserver & 2.4. Depois que o comando já estiver rodando, basta pressionar as teclas CONTROL, A e D (Ctrl A + D). Ao "minimizar" a área de trabalho, o Screen vai exibir uma frase informando que "deu tudo certo". -> Por exemplo: screen -S tst nightz@servidor:~$ [detached from 13077.tst] 2.5. Para entrar novamente na Screen, basta utilizar o comando abaixo: screen -r -x NomeDaScreen -> Por exemplo: screen -r -x tst 2.6. Mas e se eu esquecer o nome da Screen? Calma.. Para listar todas as Screens em execução, utilize o seguinte comando: screen -ls -> Por exemplo: nightz@server:$ screen -ls There is a screen on: 13077.tst (10-06-2014 08:55:37) (Detached) 1 Socket in /var/run/screen/S-476175. nightz@server:$ * De azul, temos o nome das Screens (neste caso, da Screen) em execução. 2.7. E para fechar uma Screen, ao em vez de minimizá-la, como faço? Simples! Utilize o comando abaixo após acessar a Screen que deseja fechar: exit Pronto! 3. Correção de problemas: Aqui em baixo, vou postando soluções de possíveis problemas do Screen, a medida que forem sendo reportados. Até hoje, o único problema por qual já passei foi a pasta do Screen perder permissão, fazendo com que eu não consiga ver as Screens em aberto, mas esse problema só não permite que a mesma seja resumida, as Screens todas continuaram funcionando normalmente. + Problema: Directory '/var/run/screen' must have mode 777. + Solução: chmod 777 /var/run/screen. Façam bom proveito! (Esse tutorial foi completamente escrito por mim. Qualquer cópia deve ser previamente autorizada e conter os devidos créditos.)
    1 ponto
Líderes está configurado para São Paulo/GMT-03:00
×
×
  • Criar Novo...