Líderes
Conteúdo Popular
Exibindo conteúdo com a maior reputação em 07/08/17 em todas áreas
-
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
-
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
-
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 Tibia1 ponto
-
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âmico1 ponto
-
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
-
eu entendo mas uma área nova designada para só esse tipo de conteúdo não seria interessante também?1 ponto
-
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
-
[ERRO] Erros com Talkactions
VictorWEBMaster reagiu a Allencar por uma questão
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 end1 ponto -
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