-
Total de itens
1418 -
Registro em
-
Última visita
-
Dias Ganhos
48
Tudo que Poccnn postou
-
Sistema de recompensa por porcentagem ao matar boss
um tópico no fórum postou Poccnn CreatureScripts e Movements
Hail Xtibianos. Esse script eu criei a pedido de um membro do fórum e resolvi posta-lo para vocês. Ele serve para que ao matarem um determinado monstros, somente os players que tiverem uma certa quantidade de participação (em porcentagem) na morte do monstro é que receberam algo (configurável). Em creaturescripts.xml adicione: <event type="statschange" name="stats" script="statsMonster.lua"/> <event type="death" name="deathMonster" script="deathMonster.lua"/> Em creaturescripts/scripts crie um arquivo lua com o nome statsMonster e adicione: --[[ autor = Marcryzius data = sexta-feira, 05 de fevereiro de 2016 tipo = 1 (um) é ataque, 0 (zero) é healing. query para ser adicionada no monstro: <script> <event name = "stats"/> <event name = "deathMonster"/> </script> ]] M = {} function getDamageInMonster(monster,cid) local monster,cid,m_life,p_dano = tonumber(monster),tonumber(cid),0,0 if not(monster or cid)then return 0,error('function getDamageInMonster(): monster or cid, not number') end if not(isCreature(monster))then return 0,error('function getDamageInMonster(): variavel monster nao e monstro.') end for k,v in pairs(M[monster]) do if(k == cid)then p_dano = v end m_life = m_life + v end return math.floor(p_dano/(m_life/100)) end function onStatsChange(cid, attacker, tipo, combat, value) if not(M[cid])then M[cid] = {} end if not(tipo == 1)then return true end if(isPlayer(attacker))then if not(M[cid][attacker])then M[cid][attacker] = 0 end M[cid][attacker] = M[cid][attacker] + value elseif(isMonster(attacker))then -- caso seja um monstro o atacante local get = getCreatureMaster(attacker) -- averigua se não é um summon que está atacando if(tonumber(get) and isPlayer(get))then -- caso o summon seja de um player, adiciona o dano como se fosse o player if not(M[cid][get])then M[cid][get] = 0 end M[cid][get] = M[cid][get] + value end end return true end Agora crie outro arquivo lua na mesma pasta e nomeie para deathMonster e adicione: function onDeath(cid, corpse, deathList) --[[> Marcryzius <]] for _,player in pairs(deathList) do local player = isCreature(player) and getCreatureMaster(player) or player if(isPlayer(player) and isPlayerOn(player))then if(getDamageInMonster(cid,player) >= 50)then -- quantidade de danos em % --[[ aqui é a parte onde dar ao player seu premio por ter consegue tantos % de danos ao monstro ]]-- -- exemplos de ações doRemoveItem(getThingfromPos(Full_Items[getCreatureName(cid):lower()]).uid) doCreateItem(2283,1,getCreaturePosition(cid)) doCreateItem(4810,1,Full_Items[getCreatureName(cid):lower()]) setPlayerStorageValue(player,getStoreString('fullitems'),0) end if(M[player])then table.remove(M,player) end end end end No monstro que tu queira usar esse sistema, adicione no xml dele essas duas tags: <script> <event name = "stats"/> <event name = "deathMonster"/> </script> Pronto. Qualquer duvida, erro e etc, deixe nos comentários. -
Sistema automático de recompensa por matar o top lvl do otserver
um tópico no fórum postou Poccnn CreatureScripts e Movements
Hail Xtibianos. Eu criei esse sistema, não lembro se foi a pedido de um membro ou não, para que seja interessante sempre matar o toplvl do otserver devido ao premio recebido por isso. Em config.lua adicione: huntedTopLevel = 100 -- "false" inibe o sistema; numero é o level minimo necessario para dar hunted ao toplvl.priceForEachLevelTohuntedTopLevel = 100 -- preço pago por cada lvl do toplvl ao mata-lo. Em creaturescripts.xml adicione: <event type="death" name="toplvl" script="toplvl.lua"/> Em creaturescripts/scripts/config.lua adicione: registerCreatureEvent(cid, "toplvl") Na mesma pasta, crie um arquivo lua com o nome toplvl e adicione: function onDeath(cid, corpse, deathList)local top,price = getConfigInfo("huntedTopLevel"),getConfigInfo("priceForEachLevelTohuntedTopLevel") if(isPlayer(cid))then -- hunted top level local _,level = getTopLevel() if(tonumber(level) and top and tonumber(level) >= top and tonumber(level) <= getPlayerLevel(cid))then for _,player in pairs(deathList) do if(isPlayer(player))then doPlayerAddMoney(player, getPlayerLevel(cid)*price) end end end end return trueend Agora abra o arquivo lib/050-functions.lua e adicione: function getTopLevel() --[[( Marcryzius )]]--local target,name,level = db.getResult("SELECT `name`, `level` FROM `players` WHERE `group_id` <= 2 ORDER BY 'level' DESC;"),"",0 if(target:getID() ~= -1) then repeat local glevel = target:getDataInt("level") if(level < glevel)then name,level = target:getDataString("name"), glevel end until not(target:next()) end target:free() return name,levelend No config.lua tu coloca o valor minimo requerido do toplvl para poder ser caçado. Duvidas, erros e qualquer outra coisa, deixe nos comentários. -
Sistema para impedir de atacar membros da mesma party e da mesma guild
um tópico no fórum postou Poccnn CreatureScripts e Movements
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. -
[Encerrado] [Encerrado] me ajuda a mesclar esses 2 scripts?
tópico respondeu ao Weverton Siri de Poccnn em Tópicos Sem Resposta
Tu quer mesclar o mega e o tm né? ta ai, se houver algum problema, não conte comigo. -
[Encerrado] [Encerrado] [DXP] 2º Bug mais critico do DXP
tópico respondeu ao Josegvb de Poccnn em Tópicos Sem Resposta
Caro membro, Seu tópico foi movido de Resolvidos para Scripts. tópico re-aberto. -
TEMERIS - Voltando às origens do Tibia
tópico respondeu ao 115757 de Poccnn em Exposições (Show Off)
O vídeo está com problema. -
[Encerrado] [Encerrado] me ajuda a mesclar esses 2 scripts?
tópico respondeu ao Weverton Siri de Poccnn em Tópicos Sem Resposta
Ajudar eu até posso, só que o que tu quer da muito trabalho, além de precisar ficar testando as alterações o que eu não tenho como, pois meu servidor não é derivado e nem vou ter um pra testar nada. -
[Encerrado] [Encerrado] me ajuda a mesclar esses 2 scripts?
tópico respondeu ao Weverton Siri de Poccnn em Tópicos Sem Resposta
Sugiro arrumar um scripter para sua equipe pois isso ai tudo precisa ser revisto. -
PORTA OU PISO POR RESET - [URGENTE] 8.60
tópico respondeu ao Rayan Uallys de Poccnn em Tópicos Sem Resposta
Caro membro, Seu tópico foi movido de Actions e Talkactions para Scripts.- 3 respostas
-
- action
- talkaction
-
(e 1 mais)
Tags:
-
[Encerrado] [Encerrado] me ajuda a mesclar esses 2 scripts?
tópico respondeu ao Weverton Siri de Poccnn em Tópicos Sem Resposta
Possivelmente o player não tem a storage buscada. Resolva isso. -
Hail Xtibianos! Eu fiz essa quest há um tempo atrás como uma forma diferente da paradox tower quest. Existem sete níveis (pode ser modificado), cada nível terá uma série de monstros, ao matar todos os monstros os players são teleportados para o andar acima, no último andar será a sala da recompensa. Deixo aqui um exemplo de como montar a tower quest. Parte superior (sala da recompensa) Parte inicial com escada. Primeira sala com monstros (aqui o sistema começa a funcionar). Implementando o sistema. Na escada tu coloca uma aid qualquer, registra no arquivo movements.xml Ex: Agora crie um arquivo lua e põe esse código nele. tower.lua Espero que gostem e qualquer dúvida ou problema no script, deixe nos comentários.
-
[Encerrado] [Encerrado] help funçao addHealth
tópico respondeu ao gusinhi de Poccnn em Tópicos Sem Resposta
Tu tens que por uma forma de controle na qual pode ser por storage, tabela com o nome dos que foram restaurados ou por outra forma de marcação. -
1) possivelmente não foi possível retirar o item ou o dinheiro do player, por isso deu esse erro. Verifique outro script em seu servidor que remova item do player e tente por da mesma forma; Faz um teste também removendo o último parâmetro da função que é o "true". 2) 1 - existe uma latência para criar arquivos ou salvar informações no servidor. Eu não sei exatamente porque isso ocorre e quanto tempo demora. No meu servidor é relativamente rápido. 2 - O dinheiro. Ele pôs os itens a venda para que outros comprem e ele receba o dinheiro da venda desses itens. É apenas uma substituição de função. Substitua a função doplayerpopupfyi na função sendlist por este:
-
[Encerrado] [Encerrado] Yellow skull não funciona
tópico respondeu ao victor iag de Poccnn em Tópicos Sem Resposta
Se for aquela questão de usar magia e pegar yellow skull, até agora ninguém descobriu como resolver, pelo menos até agora eu não sei. -
suporte scripts Alteração no Script - NPC JUSTICEIRO
pergunta respondeu ao Jumper Sky de Poccnn em Resolvidos
Problema resolvido, tópico fechado. Caso precise reabri-lo, contacte a administração. -
pedido scripts Mostrar Tempo Magia de Trap Area
tópico respondeu ao KennyConrad de Poccnn em Tópicos Sem Resposta
É um tanto complicado fazer isso, pois requer um algoritmo para criar a area de ação da magia. Só com isso que tu poderia por a contagem de tempo em todas as áreas afetadas. -
Foi postado aqui no fórum?
-
pedido scripts Ajuda com código de baú personalizado (action, por vocation)
tópico respondeu ao Enijota de Poccnn em Tópicos Sem Resposta
doPlayerAddItem(cid,cfg.kina[1]) -
suporte programação error 10060 em ot server
pergunta respondeu ao Shadow Blue de Poccnn em Resolvidos
Usa o ip local. 127.0.0.1 Desbloquea o programa no firewall do windows. -
[Encerrado] [Encerrado] Cura e healing
tópico respondeu ao Gabrielziho de Poccnn em Tópicos Sem Resposta
Combat2 está sendo usado em quem toma o dano; onuseweapon é quem ataca. -
Por um tempo seria interessante. Depois que eu ficasse entediado da vida eu faria minha última ação, lançar todas as armas nucleares do mundo; não sei como, mas tentaria isso.
-
Eu criei esse sistema de look at attack porquê eu acho ridículo quando o character fica atacando o oponente sem estar "olhando" para ele. O que ele faz? Ele volta o character que esteja atacando um oponente para o oponente. Ele não impede de andar ou de mudar de direção, porém ele vai ficar mantendo a direção voltada ao oponente. Vamos adicionar o sistema. Em: creaturescript/creaturescript.xml, adicione essa tag: Agora em: creaturescript/scripts, crie um arquivo lua e adicione isso: Dentro do mesmo diretório, abra o arquivo login.lua e adicione isso a ele onde existe outros semelhantes. Pronto. Instalado o seus sistema de look at attack. Agora quando o player atacar algum oponente, ele ficará "olhando" para ele.
-
Eu discordo de tu, pois existem pessoas que são nômades, que preferem viver sozinhas. Sem leis, sem regras, tudo livre, leve e solto. Eu ia fazer o que quisesse a qualquer hora. Começaria pegando alguns tanques de guerra e sairia nas ruas atirando nos veículos e predios, só pra começar. Hehe.
-
Esse sistema eu criei a muito tempo para quando um player compra pots e runas no npc, ele entregue uma bolsa mais adequada para cada tipo de pot e runa comprada nele. Abra o arquivo npc/libs/modulos.lua Procure pela função: Dentro dessa função, procure pela variável chamada backpack ou backpackid (não lembro como estava escrito exatamente, pois faz muito tempo que modifiquei) e apague ela. No lugar onde ela estava, adicione isso: Salve e pode fechar o arquivo. Agora abra o arquivo data/libs/050-functions.lua Adicione essa função nele: Salve e pode fechar o arquivo. Agora toda vez que alguém for comprar algum item listado na tabela bp, ele receberá (caso ele queira compra em bps) uma backpack correspondente ao item que ele comprou. Essa inserção desse sistema foi feito para a versão tfs 0.3.6 - 8.54; não sei se funciona em outras versões.
-
Quem Está Navegando 0 membros estão online
- Nenhum usuário registrado visualizando esta página.