Histórico de Curtidas
-
Black Fenix recebeu reputação de ITALOx em (Resolvido)[HELP] Extender Tibia.spr e Tibia.dat Versao 8.60@ITALOx Mandei solicitaçao
-
Black Fenix deu reputação a ITALOx em (Resolvido)[HELP] Extender Tibia.spr e Tibia.dat Versao 8.60Eu tenho client extendido me chama discord Italo#6122
-
Black Fenix deu reputação a ITALOx em Vocation X hitar mais com X armaNo. quanto menor o número tiver, menos a vocação bate com glove.
-
Black Fenix deu reputação a sxeinjected em (Resolvido)Comando Que Deicha o char mudando o outfitOlá ,boa noite !
em data/talkactions/Scripts,crie um arquivo chamado rainbow.lua e coloque dentro
local colors = {94, 81, 79, 88, 18, 11, 92, 128} local storage = 65535 local time = 10 --in miliseconds function onSay(cid, words, param, channel) if(param == "on") then if getPlayerStorageValue(cid, storage) < 1 then if doPlayerRemoveMoney(cid, 0) == TRUE then local event = addEvent(changeOutfit, time, cid) setPlayerStorageValue(cid, storage, 1) return TRUE else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You do not have enough money.") return TRUE end else return TRUE end elseif(param == "off") then if getPlayerStorageValue(cid, storage) > 0 then setPlayerStorageValue(cid, storage, 0) return TRUE else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You do not have rainbow outfit on.") return TRUE end else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Use !rainbow on-off.") return TRUE end return TRUE end function changeOutfit(cid) local randomHead = colors[math.random(#colors)] local randomLegs = colors[math.random(#colors)] local randomBody = colors[math.random(#colors)] local randomFeet = colors[math.random(#colors)] local tmp = {} if getPlayerStorageValue(cid, storage) > 0 then local outfit = getCreatureOutfit(cid) tmp = outfit tmp.lookType = outfit.lookType tmp.lookHead = randomHead tmp.lookLegs = randomLegs tmp.lookBody = randomBody tmp.lookFeet = randomFeet tmp.lookAddons = outfit.lookAddons doCreatureChangeOutfit(cid, tmp) local event = addEvent(repeatChangeOutfit, time, cid) return TRUE else stopEvent(event) return TRUE end end function repeatChangeOutfit(cid) local randomHead = colors[math.random(#colors)] local randomLegs = colors[math.random(#colors)] local randomBody = colors[math.random(#colors)] local randomFeet = colors[math.random(#colors)] local tmp = {} if getPlayerStorageValue(cid, storage) > 0 then local outfit = getCreatureOutfit(cid) tmp = outfit tmp.lookType = outfit.lookType tmp.lookHead = randomHead tmp.lookLegs = randomLegs tmp.lookBody = randomBody tmp.lookFeet = randomFeet tmp.lookAddons = outfit.lookAddons doCreatureChangeOutfit(cid, tmp) local event = addEvent(changeOutfit, time, cid) return TRUE else stopEvent(event) return TRUE end end Em data/talkactions ,abra o talkactions.xml e coloque dentro
<talkaction words="!rainbow" event="script" value="rainbow.lua"/> !rainbow on = Liga !rainbow off = Desliga -
Black Fenix deu reputação a rafanasser em (Resolvido)AJUDA- LIMPAR DISTROOlá Lucas, ontem foi um dia meio complicado para mim, eu trabalhei muuuito na minha distro para limpá-la, achei a resolução de bastante coisa, acho que posso te ajudar em algumas partes. Irei colocar aqui o que eu sei como arrumar. Não irei colocar o mesmo erro várias vezes, apenas a solução, e você faz isso com os demais do mesmo.
1º:
Em Weapons.xml deve haver 2 ou mais itens registrados com a mesma tag, abra o arquivo e verifique com o Ctrl+F, coloque a tag 7366 para procurar e veja se tem mais de 1 com o mesmo ID, caso exista, você deverá trocar por uma tag inexistente.
2º:
O diretório não existe. Ou seja, ao você seguir os passos do erro talvez você irá encontrar um caminho inexistente, verifique se o arquivo "item.lua" realmente se encontra na pasta "data/actions/scripts/", o arquivo "item.lua" deve estar dentro da pasta "scripts" do actions... acho que você entendeu..
3º:
O mesmo do de cima, confira também se o nome do arquivo está certo, pois pode estar faltando alguma letra ou conter erros de digitação.
4º:
vá em "data/talkactions/talkactions.xml" abra esse arquivo talkactions.ml e confira o comando "!vipdays", ele deve estar duplicado lá dentro, a mesma coisa do 1º, só que com talkactions.
5º:
Em "data/movements/movements.xml" na parte das weapons, procure por slot="axe" e tente trocar por slot="hand" ------ Ps1.: coloque isso para todas armas de ataque (para shields deixe "shield" no slot mesmo.)
Ps2.: esse erro não tenho certeza da consistência do que eu disse, tente isso e veja se resolva. Pois não uso servidor de TIBIA faz muito tempo, estou usando apenas de pokemon nos ultimos 4 anos.
6º:
O mesmo do 5º, porém tente colocar ao invés de "hand" no slot, coloque "head" (faça isso para todos helmets)
7º:
Para os pés, é o mesmo do 5º e 6º artigo, porém no slot"" você deve deixar slot="feet"
8º:
Agora as flechas/bows/armas: Essas não precisam declarar no movements.xml mas precisam de um script no weapon.xml
DECLARAÇÃO FINAL: O slot type declarado no movements, deve estar igual ao do items.xml, portanto verifique nos dois arquivos.
Flechas:
<attribute key="slotType" value="ammo" /> <attribute key="attack" value="25" /> <attribute key="maxHitChance" value="90" /> <attribute key="weaponType" value="ammunition" /> <attribute key="ammoType" value="arrow" /> <attribute key="shootType" value="arrow" /> slotype = ammo para ficar no lugar da munição (ammo)
Attack vc muda a vontade pro que vc quiser
MaxHitChance = chance de acertar o hit, qualquer numero menor que 100 apresenta uma chance do hit falhar
WeaponType= Tipo de arma, flechas são munições então deixe sempre ammunition
ammoTyoe = Tipo de munição, pode ser "arrow" ou "bolt" dependendo doque vc quiser usar, um bow ou um crossbow
shootType é o efeito que vai sair, no caso dessa aí seria uma arrow normalzinha mas vc pode colocar qualquer flecha que exista ou até mesmo copiar efeitos de runas
Dê ctrl+F no items.xml em shootType e copie diferentes tipos e vá vendo no servidor qual se encaixa melhor na sua opinião.
Bows e crossbow:
Eu te aconselho copiar de algum item que já exista ou modificar oque você quiser
<attribute key="slotType" value="two-handed" /> <attribute key="weaponType" value="distance" /> <attribute key="ammoType" value="bolt" /> <attribute key="range" value="5" /> <attribute key="hitChance" value="1" /> isso daqui é um crossbow duas mãos que ataca bolt (podia ser arrows tb) a uma distância de no máximo 5 SQM (modifique o range)
a chance de hit padrão dele é 1 e essa hit chance soma com a da munição
Wands e Rods:
<attribute key="weight" value="2900" /> <attribute key="weaponType" value="wand" /> <attribute key="shootType" value="ice" /> <attribute key="range" value="3" /> Weight: peso
weaponType: mesmo que seja uma rod, o tipo será "wand"
shootType: tipo de efeito que sai dela (no caso é o ice)
Range: distância que ataca (no caso, 3 sqm)
9º:
Em "data/movements/movements.xml" procure pela tag com o ID reportado, é a mesma resolução do 1º artigo: existem duas ou mais tags com o mesmo ID.
10º:
Nesse artigo, não tenho certeza, mas é quaase certeza. Vá em "data/globalevents/scripts/start.lua" abra o arquivo "start.lua" e procure por:
db.xecuteQuery = db.query não tenho certeza se é isso, mas, acho que é um erro de digitação. Troque esse de cima por:
db.executeQuery = db.query Repare que ele fala (xecuteQuery) e no caso, deveria ser (executeQuery).
11º:
O mesmo do 1º: abra o arquivo "monsters.xml" e procure a tag na qual existe o monstro Draken Abomination, devem existir duas ou mais tags com esse nome de monstro.
12º:
Nesse caso, não sei resolver, mas tenho uma dica para você procurar: em "data/monsters/scripts/" procure o arquivo do Master Warlock, nesse arquivo, procure o shootEffect.
acredito que no ataque que estiver escrito isso, está mal formatado. Segue uma dica de formatação certa.
-<attack name="ice" max="-800" chance="74" interval="3000" min="0" target="0" radius="7" range="7">
<attribute value="smallplants" key="areaEffect"/>
Repare que: attribute value está o nome do ataque, e em key, está o tipo.
tente reparar este ataque é de ice e de area, tente formatar o ataque parecido com esse, colocando os dados do seu Monstro.
13º:
Abra seu map editor, e siga meus passos. Esse erro indica que existem unique IDs duplicados (mesma coisa do 1º artigo, porém com uniqueIDs).
Abra seu map editor e vá em:
Só procurar pelos uid duplicados e deletar.
14º:
O respawn desde bixo, está com um tempo abaixo de 1 segundo, aconselho já seguir a onda do erro 13º, e ja ir editar isso também la no map editor. Repare que, onde diz:
Master Warlock ( 00663 / 00158 / 000 ) esse 00663 / 00158 / 000 são as posições x,y,z do mapa.
Caso não queira resolver pelo map editor, você pode abrir a pasta "data/world/spawn.xml" note que, cada servidor tem seu nome de mapa, o arquivo spawn.xml pode estar assimn: NOMEDOMAPA-spawn.xml ou NOMEDOMAPAspawn.xml
ao abrir o spawn.xml, procure por:
name="Master Warlock"/>
ou pela localização dele:
z="663" y="158" x="0" name="Master Warlock"/>
e a configuração ele, deverá estar algo parecido com isso:
<monster spawntime="XX" z="663" y="158" x="0" name="Infernalist"/>
em "monster spawntime" no lugar onde eu coloquei "XX" este será o tempo de spawn em segundos, este número deve ser maior que 1seg.
(1<XX)
15º:
Vá em "data/monsters/monsters.xml" e procure se existe um monstro configurado com o nome de "Protect Statue", caso não tenha, adicione, ou caso você não queira adicionar este monstro, vá em "data/world/spawn.xml"(mesmo do erro anterior) e procure os respawns deste bixo e apague-os.
16º:
Vá em "data/npc/scripts/Tenebra City.xml"
Neste arquivo deve haver algum comando com falha na digitação que acaba destroindo o script inteiro, ou você não especifiou o script deste npc.
Verifique se você especificou o npc, caso ele esteja especificado, mande o script do npc neste post para eu analizar e procurar o que esteja de errado dentro dele.
Ps.: verifique todos os npcs que estão dando este erro, e mande os arquivos dele para cá caso você não resolva.
UFA, acabaram-se os erros (eu acho), caso haja dúvidas, poste aqui que eu tento resolver para você, caso eu tenha esquecido de declarar algum erro, me fale que eu resolvo também, sinta-se avontade. Se ajudei, REP+ pf :D
-
Black Fenix deu reputação a WooX em (Resolvido){PEDIDO} Player morrer e ficar cm auréola na cabeçaVou fazer, a parte do client você já tem feito né? esse efeito já existe etc?
-
Black Fenix deu reputação a WooX em (Resolvido)[PEDIDO] Script animatedtext top guildPelo o que eu entendi você quer que o texto apareça apenas para membros que estão na top guild, e não para as 4 primeiras no ranking como a query que você postou está buscando. Se realmente for este o caso, a função não precisa retornar uma tabela e sim apenas um ID. Obs: não tive tempo de testar o script.
--<globalevent name="topguild" interval="10000" event="script" value="topguild.lua"/>-- local function getTopGuild() local query = "SELECT `g`.`id` AS `id`, `g`.`name` AS `name`, COUNT(`g`.`name`) as `frags` FROM `killers` k LEFT JOIN `player_killers` pk ON `k`.`id` = `pk`.`kill_id` LEFT JOIN `players` p ON `pk`.`player_id` = `p`.`id` LEFT JOIN `guild_ranks` gr ON `p`.`rank_id` = `gr`.`id` LEFT JOIN `guilds` g ON `gr`.`guild_id` = `g`.`id` WHERE `k`.`unjustified` = 1 AND `k`.`final_hit` = 1 GROUP BY `name` ORDER BY `frags` DESC, `name` ASC LIMIT 1;" local queryResult = db.storeQuery(query) if queryResult then local guildID = result.getDataInt(queryResult, "id") result.free(queryResult) return guildID end return false end function onThink(interval, lastExecution) local topGuild = getTopGuild() for _, cid in ipairs(getPlayersOnline()) do if getPlayerGuildId(cid) == topGuild then doSendAnimatedText(getCreaturePosition(cid), "TOP GUILD", COLOR_RED) end end return true end Créditos pela base do script ao @Fir3element
-
Black Fenix deu reputação a Cat em Modificando Extensions I - Grounds (Terrain Palette)Extensions Customizadas II - Walls
Extensions Customizadas I - Grounds
Extensions Customizadas III - Doodads (objetos montados)
Sumário
A. Escolha do item e arquivos que serão alterados.
B. Edição do arquivo grounds.xml e adição da base para um novo brush.
C. Explicação sobre o que modificar nas linhas adicionadas.
D. Edição do arquivo borders.xml e adição da base para as bordas do brush anterior.
E. Configuração dos Ids das bordas e do brush.
F. Cadastramento do brush na paleta terrain, editando o arquivo tilesets.xml
COMEÇAR
(Dica: Utilize Notepad++)
A.
Tudo que está em azul nas imagens acima é onde você vai clicar e/ou editar. Recomendo backup. Cuidado para não modificar qualquer linha por acidente ou sem saber o que está fazendo, uma letra errada já é o suficiente pra dar erro na hora de abrir o mapa. Escolha o piso que você quer adicionar. Vou escolher o dark spikes para usar como exemplo, ok? (na imagem, ele já está pronto e adicionado na paleta)
B.
Abra grounds.xml. Repare que o documento começa com <materials> e termina com </materials> Desça até o final do código. Antes do </materials> há algum item cadastrado, um </brush> Alguma coisa ... </brush>. Após o último brush, e antes do </materials>, cole o seguinte código:
<brush name="ITEMNOME" type="ground" server_lookid="ITEMID - ID PRA APARECER NA PALETA" z-order="NUMERO"> <item id="ID" chance="100"/> <item id="ID" chance="100"/> <item id="ID" chance="100"/> <item id="ID" chance="100"/> <border align="outer" id="NUMEROBORDA"/> </brush>
C.
Server_lookid é pra por o ID da sprite que vai aparecer na paleta, pra identificar o atalho. Coloque o ID do ground principal caso tenha mais versões do mesmo. Em Z-order, se o brush X tiver z-order maior que brush Y, a borda de brush X vai sobrepor a do Y. Item Id e chances, adicione os grounds e mude o valor da chance para definir qual deles vai predominar caso houver vários, como por exemplo o grass, que tem diversas sprites diferentes. Se for apenas uma sprite, pode deixar uma linha. Border align, tem outer e inner. São para as duas finalidades apresentadas nas imagens abaixo.
(No inner dessa imagem, fora utilizado <border align="inner" to="none" id="1"/>, que é padrão para vários brushs)
O codigo do Dark Spikes ficará assim:
<brush name="dark spikes" type="ground" server_lookid="12234" z-order="3200"> <item id="12234" chance="2500"/> <item id="12235" chance="2500"/> <item id="12236" chance="2500"/> <item id="12237" chance="2500"/> <border align="outer" id="155"/> </brush>
D.
Revise o que você modificou e salve. Abra borders.xml. O esquema é o mesmo, desça até o final e depois de </border> e antes de </materials>, adicione o código abaixo:
<border id="NUMEROBORDA"> -- NOME -- <borderitem edge="n" item="ID"/> <borderitem edge="e" item="ID"/> <borderitem edge="s" item="ID"/> <borderitem edge="w" item="ID"/> <borderitem edge="cnw" item="ID"/> <borderitem edge="cne" item="ID"/> <borderitem edge="csw" item="ID"/> <borderitem edge="cse" item="ID"/> <borderitem edge="dnw" item="ID"/> <borderitem edge="dne" item="ID"/> <borderitem edge="dsw" item="ID"/> <borderitem edge="dse" item="ID"/> </border>
E.
O número que estiver em border id vai servir para ligar essass bordas ao brush criado anteriormente. Identifique o nome do brush a qual essa borda pertence para ficar fácil encontrar mais tarde ( -- exemplo -- ) Siga a tabela abaixo para configurar as bordas, conforme a posição delas:
O código das bordas do dark spikes ficará assim:
<border id="155"> -- dark spikes border -- <borderitem edge="n" item="12255"/> <borderitem edge="e" item="12256"/> <borderitem edge="s" item="12254"/> <borderitem edge="w" item="12257"/> <borderitem edge="cnw" item="12264"/> <borderitem edge="cne" item="12265"/> <borderitem edge="csw" item="12263"/> <borderitem edge="cse" item="12262"/> <borderitem edge="dnw" item="12260"/> <borderitem edge="dne" item="12261"/> <borderitem edge="dsw" item="12259"/> <borderitem edge="dse" item="12258"/> </border>
F.
Agora que o ground foi criado e as bordas configuradas, é preciso adicionar o atalho na paleta, para poder usá-lo. Abra tilesets.xml. Dê um ctrl + f e procure por: <tileset name="Nature"> em terrain. Ou no local que você preferir. Também pode colocar na ordem que quiser, reinicie o editor e teste.
Dúvidas? Comente.
-
Black Fenix deu reputação a .Smile em (Resolvido)Nao poder usar o comando em "X" lugaresfunction onSay(cid, words, param) local from,to = {x=1001, y=705, z=7},{x=1031, y=737, z=7} local from2,to2 = {x=1011, y=705, z=6},{x=1031, y=738, z=6} local from3,to3 = {x=1012, y=706, z=5},{x=1032, y=739, z=5} local pos = {x=99, y=188, z=7} if isInRange(getCreaturePosition(cid), from, to) or isInRange(getCreaturePosition(cid), from2, to2) or isInRange(getCreaturePosition(cid), from3, to3) then doPlayerSendCancel(cid, "Voce nao pode fazer isso nessa area!") return true end if getCreatureCondition(cid, CONDITION_INFIGHT) then doPlayerSendCancel(cid, "Voce nao pode fazer isso em luta") else doSendMagicEffect(getPlayerPosition(cid),53) doPlayerSendCancel(cid,"Voce foi teleportado Com Sucesso") doTeleportThing(cid,pos) end return true end local from,to = {x=1001, y=705, z=7},{x=1031, y=737, z=7} = aqui você edita as posições do mapa sendo o primeiro valor a posição superior esquerda e segundo a posição inferior direita.
-
Black Fenix deu reputação a TonyHalk em [Resolvido] [Pedido] Script que após matar monstro aparece um teleport.tp.lua local tpId = 1387 local tps = { ["Orshabaal"] = {pos = {x=761, y=57, z=7}, toPos = {x=767, y=52, z=7}, time = 30}, } function removeTp(tp) local t = getTileItemById(tp.pos, tpId) if t then doRemoveItem(t.uid, 1) doSendMagicEffect(tp.pos, CONST_ME_POFF) end end function onDeath(cid) local tp = tps[getCreatureName(cid)] if tp then doCreateTeleport(tpId, tp.toPos, tp.pos) doCreatureSay(cid, "O teleport irá sumir em "..tp.time.." segundos.", TALKTYPE_ORANGE_1) addEvent(removeTp, tp.time*1000, tp) end return TRUE end explicação: ["Orshabaal"] --------- Nome do monstro pos = {x=761, y=57, z=7} ----------- onde o Teleport irá abrir toPos = {x=767, y=52, z=7} ------- onde o teleport vai leva eles time = 30 ------------ tempo em segundos que o teleport ficará aberto em creaturescript adicione: <event type="death" name="tp" event="script" value="tp.lua"/> no arquivo.xml do seu monstro adicione: <script> <event name="tp"/> </script> acho que é mais facil :3
-
Black Fenix deu reputação a leessandro em [Resolvido] [Pedido] Script que após matar monstro aparece um teleport.cara farei tu tutorial rapido
1 crie seu monstro normalmalmente copie o arquivo xml de um monstro em C:\Users\Usuário\Desktop\naruto\Naruto Online\data\monster e renomeie para o nome do monstro q vc quer e edite o basico como skills look type experience speed entre outros
<?xml version="1.0" encoding="UTF-8"?> <monster name="nome do monstro" nameDescription="nome do monstro" race="blood" experience="1666" speed="310" manacost="0"> <health now="25000" max="25000"/> <look type="160" head="0" body="94" legs="79" feet="79" corpse="2916"/> <targetchange interval="5000" chance="8"/> <strategy attack="90" defense="20"/> <flags> <flag summonable="1"/> <flag attackable="1"/> <flag hostile="1"/> <flag illusionable="0"/> <flag convinceable="1"/> <flag pushable="0"/> <flag canpushitems="1"/> <flag canpushcreatures="1"/> <flag targetdistance="1"/> <flag staticattack="65"/> <flag runonhealth="0"/> </flags> <script> <event name="nome da sua quest"/> </script> <attacks> <attack name="melee" interval="1000" min="-1180" max="-1400"/> <attack name="manadrain" interval="2500" chance="10" range="7" min="-860" max="-1215"> <attribute key="areaEffect" value="redshimmer"/> </attack> <attack name="Venenodark" interval="5000" chance="30" radius="4" target="0" min="-440" max="-600"> </attack> <attack name="Fogofogo" interval="2000" chance="30" radius="4" target="0" min="-440" max="-600"> </attack> </attacks> <defenses armor="80" defense="80"> <defense name="healing" interval="4000" chance="40" min="300" max="300"> <attribute key="areaEffect" value="blueshimmer"/> </defense> <defense name="speed" interval="4000" chance="40" speedchange="450" duration="8000"> <attribute key="areaEffect" value="redshimmer"/> </defense> </defenses> <elements> <element physicalPercent="20"/> <element icePercent="10"/> <element holyPercent="-15"/> <element deathPercent="35"/> </elements> <immunities> <immunity paralyze="1"/> <immunity lifedrain="1"/> <immunity outfit="1"/> <immunity drunk="1"/> <immunity invisible="1"/> </immunities> <voices interval="5000" chance="10"> <voice sentence="Hahahaha, estupido, vou te esmagar!" yell="1"/> <voice sentence="Voce nao tem chanceee... vou te mataaar"/> </voices> <loot> <item id="2666" countmax="5" chance="20000"/><!-- meat --> <item id="2152" countmax="30" chance="10000"/><!-- dolar=verde --> <item id="2145" countmax="2" chance="70000"/><!-- pilula do soldado --> </loot> </monster> 2-criado seu monstro adicione assim em monsters.xml <monster name="nome do monstro" file="nome do documento que vc acabou de criar.xml"/> exemplo <monster name="meu monstro" file="meu monstro.xml"/> onde esta destacado de vermelho sera o nome do arquivo va em creaturescript depois em script e copia um arquivo .lua de la qualquer e mude o nome pro nome da sua quest igual colocasse no monstro e adicione isto nele local tpId = 5023 local tps = { ["Nome do monstro"] = {pos = {x=1277, y=1075, z=7}, toPos = {x=1275, y=1061, z=7}, time = 10}, } function removeTp(tp) local t = getTileItemById(tp.pos, tpId) if t then doRemoveItem(t.uid, 1) doSendMagicEffect(tp.pos, CONST_ME_POFF) end end function onDeath(cid) local tp = tps[getCreatureName(cid)] if tp then doCreateTeleport(tpId, tp.toPos, tp.pos) doCreatureSay(cid, "O teleport irá sumir em "..tp.time.." segundos.", TALKTYPE_ORANGE_1) addEvent(removeTp, tp.time*1000, tp) end return TRUE end
3- Em vermelho o id do teleport que aparecera e so ver no map editor qual teleport vc quer
em azul o nome da criatura
roxo onde o teleport ira aparecer
laranja pra onde ira te teleportar
4-depois disso vai em creaturescripts.xml e adicione
<event type="death" name="nome da quest" event="script" value="nome do arquivo.lua"
vermelho nome da quest
azul nome do arquivo.lua que voce criou
Pronto agora so ligar o server
lembrando as magias , loot, entre otros pode mudar pois este meu monstro e de ot naruto
mais o sistema de teleport funciona
-
Black Fenix deu reputação a Pedro. em Matar o boss, e abrir nova area ou portalárea correta seria suporte de scripts, daqui a pouco alguém direciona pra lá. tente assim; crie um tp.lua em creaturescript e adicione isso lá. local tpId = 1387 local tps = { ["Orshabaal"] = {pos = {x=761, y=57, z=7}, toPos = {x=767, y=52, z=7}, time = 30}, } function removeTp(tp) local t = getTileItemById(tp.pos, tpId) if t then doRemoveItem(t.uid, 1) doSendMagicEffect(tp.pos, CONST_ME_POFF) end end function onDeath(cid) local tp = tps[getCreatureName(cid)] if tp then doCreateTeleport(tpId, tp.toPos, tp.pos) doCreatureSay(cid, "O teleport irá sumir em "..tp.time.." segundos.", TALKTYPE_ORANGE_1) addEvent(removeTp, tp.time*1000, tp) end return TRUE end - Tutorial - ["Orshabaal] --------- Nome do monstro pos = {x=761, y=57, z=7} ----------- onde o Teleport irá abrir toPos = {x=767, y=52, z=7} ------- onde o teleport vai leva eles time = 30 ------------ tempo em segundos que o teleport ficará aberto em creaturescript adicione: <event type="death" name="tp" event="script" value="tp.lua"/> no arquivo.xml do seu monstro adicione: <script> <event name="tp"/> </script>
-
Black Fenix deu reputação a Fir3element em [Creaturescripts] Anti-HackFiz o script para bloquear hackers, ex.:
1. Você baixa um servidor com um bug que o player clica numa pedra e ganha GOD, mas você não sabe onde ta essa pedra.
2. Algum hacker invade sua database, se tiver senhas com sha1 e ele for noob, não vai saber trocar para plain, então vai mudar seu group para 6 (GOD).
Resumindo, se o player tiver CM ou GOD, ele não vai entrar sem sua permissão.
Em data/creaturescripts/creaturescripts.xml adicione isso:
<event type="login" name="AntiHack" event="script" value="antihack.lua"/> Em data/creaturescripts/scripts crie um arquivo com o nome de antihack.lua e adicione isso nele: function onLogin(cid) local p = { name = {"ADM"}, -- Liberar jogador por nome: {"ADM", "fireelement"} ip = {"127.0.0.1"}, -- Liberar jogador por IP: {"127.0.0.1", "10.0.0.1"} time = 0.5 -- Tempo que vai kickar o player, em segundos } if getPlayerGroupId(cid) >= 5 then if isInArray(p.ip, doConvertIntegerToIp(getPlayerIp(cid))) == false then if isInArray(p.name, getCreatureName(cid)) then doPlayerSendTextMessage(cid, 22, "Welcome!") else doPlayerSendTextMessage(cid, 22, "You didn't authorized to login in this account.") addEvent(doRemoveCreature, p.time*1000, cid) end end end return true end Configuração nessa parte: name = {"ADM"}, -- Liberar jogador por nome: {"ADM", "fireelement"} ip = {"127.0.0.1"}, -- Liberar jogador por IP: {"127.0.0.1", "10.0.0.1"} time = 0.5 -- Tempo que vai kickar o player, em segundos
-
Black Fenix deu reputação a Kazuya9629 em Kid Buu Kibitokai@Kazuya9629
Download
https://www.mediafire.com/file/58hzjlag3oo3t5a/Kid_Buu_Kibitokai.rar/file Virus Total
https://www.virustotal.com/pt/file/68168d70b50d32b25abb16812eaf4eaebc596bb62def614287699daffc9b8f79/analysis/1547391309/
-
Black Fenix deu reputação a KotZletY em Tutorial 2 em 1 - Magic e Shoot EffectsBom galera, o Tópico já diz tudo, irei explicar como mudar para Uint16 dessa vez nas Source, para quem não sabe. Irei explicar como aumentar em Magic Effects, para assim você seu Server usar mais de 255, e ShootEffects para usar mais de 41 Distance efeitos(muito mais). Existe Tópicos no Tk, porém não é a mesma coisa, esse é diferente pois você irá alterá o valor dos uint's disparados para o Client, para assim então usar além do Padrão!
Abaixo umas informações essenciais !
Esse Tópico é especifico para TFS 0.4, para que assim você possa aumentar o limite de efeitos no Client, e usar mais de 255 efeitos, e mais de 41 efeitos em Distância. Vale lembra também que você não é obrigado a mudar em ambos, se você quiser apenas aumentar o Limite de Efeitos para mais de 255, então mude apenas ele, caso queria aumentar apenas os Efeitos que são lançados a distância(ShootEffects ou Distance Effects), caso queria os dois, use ambos.
Vamos começar primeiramente com os Magic Effects:
Agora vamos mudar o ShootEffects para uint16.
Bom não adianta mudar isso se não fizer alteração no Client, então deixarei aqui, dois Tópicos de como mudar de uint8 para uint16 no Client em em ShootEffects e MagicEffect.
Mudando os Efeitos de uint8 a 16 para Magic Effects
Mudando os Efeitos de uint8 a 16 para Shoot Effects
Então é isso ae, qualquer erro só comentar para que eu possar tentar ajudar.
Tópico exclusivo do Tk, proibido posta em outro site, blog ou fórum!
xD
-
Black Fenix deu reputação a KotZletY em Aumentando a quantidade de effects permitida - 8.60Salve galera, recentemente um Membro postou um Tópico de como tirar o Limite de Efeitos do Old-Client(Client da Cipsfot ), só que somente para a versão 8.54, então devido ao numero de pedidos dos membros que utilizam Client na versão 8.6, resolvi criar esse Tópico ensinando a fazer isso, porém ele criou um Programa para Sobre-Escrever o Endereço, o meu Tutorial será na raça. Kkkkk Vamos nessa, a baixo citarei o Programa que iremos utilizar para essa mudança, e uns requisitos!
Informações e Requisitos!
Vamos colocar a mão na massa, abra o Debugador que faz a leita em Hexadecimal, para isso usaremos o OllyDbg, que deixarei o Link dele no final do Tópico. Após baixado abra ele. E no icone da pastinha no canto superior esquerdo, clique na pastinha e selecione O diretório do Client.
Obs: Lembre-se de deixa o Client junto com a SPR e Dat, pois irá precisa runnar o Client para ele mostrar os Endereços!
Apos ter carregado completamente, irá aparecer na metade a barra de rolagem, então suba para cima até o fim.
Feito isso de um Ctrl+S para abrir a função Find Command, e então digite essa chamada CALL 00410450 e de um enter.
OBS, lembre-se de desmarca a função Entire Block, e então achará a função, impossível dar erro, afinal só existe uma chamada como esse Code.
Depois de ter achado ela, de um Enter com a função selecionada, e irá até outro Endereço.
WTF, aja endereço nessa poxa! Kkkkk
E agora é hora da mágica, iremos mudar para Uint_16 finalmente. Kkkkkk,
Ali em baixo mais precisamente em cima dos Args, terá duas funções que você irá alterá, como mostra os próximos passos.
Click na primeira chamada, e aperte espaço ou aperte duas vezes com o botão esquerdo do mause, para que você possa alterá o endereço.
Irá vim a função CALL 004F9A60 então mude por completo para CALL 004F9C00 e click em assembly:
Agora fazemos isso na segunda função, abaixo da primeira, click duas vezes ou aperte espaço, e virá a função MOVZX EAX,AL, e então mude para
MOVZX EAX, AX e depois click em assembly:
Pronto, só isso seu Client agora passará a Ler em Uint_16 o que significa que você poderá usar até 65534 Effects no seu Old-Client, mais ainda não acabou, precisamos salvar. Após ter mudado, click com o Botão auxiliar(esquerdo) do mause, em cima em cima de uma das funções, qualquer uma, e vá em Copy to executable > All Modifications:
E depois Click em Copy All:
Irá aparecer outra janela, agora nessa nova janela, click novamente com o botão esquerdo do mause, E click em Save file e salve o Exe modificado na pasta desejada:
Pronto, seu Client foi Modificado com Sucesso, e como falei anteriormente, não esqueça de configurar seu Server em Uint_16, e ter liberado os efeitos para mais de 255, coloque quantos quiser, brincks tem um limite, de 65534, e fim, seja feliz.
Antes de mais nada vamos testa ? Veja no meu Dat, tem efeitos até 259, então irei usar o 259 para mostra que está tudo certo.
Isso ae Galera, tudo nosso nada deles. Bom Uso do Uint_16, é algo que presenciei muitos pedindo, e muitos cobrando para fazer essa Alteração, bem, ta ae, e vou nessa. E agora claro o Link do Download.
Gostaria de Informa que o Vírus Detectado, não é nada mais nada menos que um Falso-Positivo, por se tratar que Programa, faça uma Alteração Interna dentro de Outro programa. Caso você não saiba modificar a source para uint16 siga esse Tutorial aqui!
Download do OllyDbg Versão 1.10
Scan do OllyDbg Versão 1.10
Créditos: {
Breno Neves (Eu),
Fernando Prado (Parça que me passou o Ultimo endereço)
}
Peço desculpas pelos erros de Escrita nas imgs. Sorry! xD
Conteúdo Exclusivo para o Tk, não é permitido levar para outro site, blog ou fórum!
-
Black Fenix deu reputação a KotZletY em Aumentando a quantidade de ShootEffects permitida - 8.60Salve galera recentemente Criei um Tópico de como aumentar o Limite de effects no 8.60 para mais de 255 efeitos, e fiz um Tópico de como mudar de uint8 para uint16 nas Source, para MagicEffect e ShootEffect, porém o Tutorial ficou meio inútil para ShootEffect pois precisa mudar no Client também. E então hoje estarei mostrando como mudar no Client. Abaixo mais informações!
Esse Tutorial serve apenas para Versão 8.60 do Client, a versão 8.54 é diferente e então caso queiram eu posso mostra como fazer em um Futuro não distante. Hehe!
Para que as alterações funcione, é preciso que você modifique também na source da sua distro!
Muito bem, abra o OllyDbg e abra seu Client:
Depois de ter aberto o Client aperte Ctrl+G e procure pela função 004108F1 e de um enter, como mostra a foto abaixo:
Feito isso, você cairá exatamente em cima do endereço onde deve alterar, como mostra a imagem abaixo:
Muito bem hora de altera, o endereço que devemos altera é o segundo e terceiro. Dê 2x clicks ou aperte espaço em cima da função e mude o segundo endereço para CALL 004F9C00
e depois click em Assembly, como mostra a imagem abaixo:
Depois mudamos o terceiro endereço, para MOVZX EAX, AX e depois click em assembly, como mostra a imagem abaixo:
E fim, precisamos agora salvar nosso Client com a modificação, aperte com o Botão direito do mause e vá em
Copy to executable > All modifications
Depois em Copy All
Vai abrir outra janela, novamente click com o botão direito do mause, e vá em save file:
E depois escolha o Luga onde quer salvar:
E fim, lembre-se de fazer a modificação na Source, caso não saiba fazer use esse Tutorial aqui!
Download do OllyDbg
Scan do OllyDbg
Lembrando que o Vírus encontrado no OllyDbg é por causa da sua Dll que faz alteração interna na source de um Programa.
Créditos: {
Breno Neves (Eu)
Fernando Prado (Parça que me passou os últimos endereços.)
}
É proibido posta esse Conteúdo em outro Blog, site ou fórum, Tutorial feito exclusivo para o Tk!
Bom uso e até mais! xD
-
Black Fenix deu reputação a Etherious em Cliente Descompilado DBOAbsalonFala comunidade, venho hoje trazer a vocês as sprites do DBOAbsalon, eu achei um cliente muito doido cheio de sprites de nto etc.. porem tem sprites muito bonitas descompilado hoje dia 25/07/2018, façam bom proveito.
Cliente Descompilado :
https://mega.nz/#!X5NDzawL!fA-42Dudvnm6SK5frPTfBHR25CO7kIKAZXQ4dHsHApw
Scan:
https://www.virustotal.com/pt/file/b04a7ab78151783583c7cb3bd06c75390536a8c75d37c2d24cd049c2a198d26f/analysis/1532529792/
Créditos:
DBOABSALON
-
Black Fenix deu reputação a Roy em (Resolvido)Spells Criar portal no chaoÉ o seguinte ele irá castar a Spell em alguém tipo.
Exiva Black Fenix E ambos terá que está em party(somente em party) e então serão teleportado para o local. O portal criado não irá funcionar mais até porque somente ambos irá poder passar pelo portal do outro lado no caso.
adicionar na tag xml da spell:
needtarget="1" params="1" range="1" range="1" = distância necessária para poder castar a spell. 1 = Player próximo um do outro.
E irá ficar assim:
<instant name="test" words="test" lvl="0" needtarget="1" params="1" range="1" maglv="0" manapercent="0" soul="0" exhaustion="1000" prem="0" enabled="1" script="test.lua"/>
Spell .lua
-------------------------------------------------------------------------------------------------------------------
Sim tem sim, mas você vai adicionar uma action no piso para onde o Player irá ser teleportado.
Tag Movements.xml
<movevent type="StepIn" actionid="9002" event="script" value="Piso-TPos.lua"/> Piso-TPos.lua
-------------------------------------------------------------------------------------------------------------------
Porque só salva a posição do Jogador que usou a spell.
doSavePlayerPos(cid, config.storage, getThingPos(cid)) Eu acho que tive uma solução para todos que entrarem no portal criado.
Substituir esse no lugar do outro spell .lua
Movements.xml adicionar essa tag.
<movevent type="StepIn" actionid="9003" event="script" value="teleport2.lua"/>
em Movements/scripts criar um arquivo com nome. Teleport2.lua e adicionar isso dentro.
OBS: Lembrando que o tempo do teleport criado tem que ser menor que o tempo para entrar no outro Teleport assim o player(s) voltará para o local de onde o Teleport foi criado.
-
Black Fenix deu reputação a Roy em (Resolvido)Spells Criar portal no chaoAfinal qual você vai usar, o com Party ou que o DEKU pediu?
Enfim mude esse:
doSetItemActionId(uid, 9003) Por esse:
doItemSetAttribute(uid, "aid", 9003) Se não funcionar verifique se em seu 050-function tem essa função.
function doItemSetActionId(uid, aid) return doItemSetAttribute(uid, "aid", aid) end Se não tiver adicionar. e testa.
-
Black Fenix deu reputação a Roy em (Resolvido)Spells Criar portal no chaoÉ o seguinte o portal será criado Ok, mas o tempo do outro portal deve ser maior senão o player irá voltar para o local onde ele foi teleportado ou seja, não o local onde o portal foi criado, a partir do momento em que o portal criado for removido ao ele usar o outro portal ele será teleportado para o Removido, Acho que deu para entender.
Spell
local config = {storage = 8001}--Seleciona a storage 8001 e separa entre 3, exemplo - "8001, 8002, 8003", Entao nao use nenhuma dessas 3 storages em outros scripts. local cfg = {storage = 8000, Tempo = 1*60} --1 minuto. Tempo que poderá passar no piso ao redor do Teleport. local function doSavePlayerPos(uid, storage, pos) doCreatureSetStorage(uid, storage, pos.x) doCreatureSetStorage(uid, storage+1, pos.y) doCreatureSetStorage(uid, storage+2, pos.z) end function onCastSpell(cid, var) ---------------------------------------------------------------------------------------------------------------------------------------------------------------- local TeleportID = 1387 local Teleport = { config = { ToPos = {x = 309, y = 287, z = 7}, -- Local onde o jogador será teleportado Pos = getCreaturePosition(cid), Time = 10, --Quanto tempo irá durar o Teleport }, } function removeTeleport(Teleport) local t = getTileItemById(Teleport.config.Pos, TeleportID) if t then doRemoveItem(t.uid, 1) doSendMagicEffect(Teleport.config.Pos, CONST_ME_POFF) end end doCreateTeleport(TeleportID, Teleport.config.ToPos,Teleport.config.Pos) addEvent(removeTeleport, Teleport.config.Time * 1000, Teleport) setPlayerStorageValue(cid, cfg.storage, os.time()+cfg.Tempo) doSavePlayerPos(cid, config.storage, getThingPos(cid)) ---------------------------------------------------------------------------------------------------------------------------------------------------------------- return TRUE end Movements.xml
<movevent type="StepIn" actionid="9000" event="script" value="piso.lua"/> <movevent type="StepIn" actionid="9001" event="script" value="teleport.lua"/>
piso.lua
function onStepIn(cid, item, position, fromPosition) local config = {storage = 8000} if (getPlayerStorageValue(cid, config.storage) <= os.time()) then return true else doTeleportThing(cid, fromPosition, false) doPlayerSendCancel(cid, "Você deve aguardar " ..getPlayerStorageValue(cid, config.storage) - os.time().." para poder entrar nesse portal!") end return true end
Teleport.lua
function onStepIn(cid, item, position, fromPosition) local config = {storage = 8001} local function getSavedPlayerPos(uid, storage) return {x = getCreatureStorage(uid, storage), y = getCreatureStorage(uid, storage+1), z = getCreatureStorage(uid, storage+2)} end if (getPlayerStorageValue(cid, config.storage) <= os.time()) then doTeleportThing(cid, getSavedPlayerPos(cid, config.storage)) else doTeleportThing(cid, fromPosition, false) doPlayerSendCancel(cid, "Você deve aguardar " ..getPlayerStorageValue(cid, config.storage) - os.time().." para poder entrar nesse portal!") end return true end -
Black Fenix deu reputação a Roy em (Resolvido)Spells Criar portal no chaoPoxa cara. Tudo bem então
Você vai fazer o seguinte, vai criar a Spell e colocar o script dela acima Ok.
Agora você vai adicionar essas duas linhas no seu movements.xml
<movevent type="StepIn" actionid="9000" event="script" value="piso.lua"/> <movevent type="StepIn" actionid="9001" event="script" value="teleport.lua"/> você pode colocar o nome que quiser o cria uma arquivo .lua com o script de cada.
-
Black Fenix deu reputação a MaTTch em (Resolvido)Critical E Dodge no LOOK
-
Black Fenix deu reputação a Agaka em (Resolvido)Action item nao poder usar em battle@Black Fenix O script só funcionará se o player estiver em PZ, sim foi isso que você pediu euehueuh, porém se o tile em que o player está não tiver PZ, o script interpreta como tile PVP e retorna o aviso de que não pode usar o item em tile PVP. Acredito que isso não vai afetar muita coisa pois o player só precisaria ir no DP/Templo para usar o item. Vamo lá agr kk
Em data/actions/scripts, crie um arquivo .lua com o nome que desejar e adicione o script abaixo nele.
Em data/actions, abra o arquivo actions.xml e adicione a tag abaixo nele.
Ah mais uma coisa, no script, tive que botar uma variável fora da tabela, pois não consegui fazer ela puxar o level... se alguém quiser modificar fique a vontade xD, qualquer coisa só comentar.
-
Black Fenix deu reputação a Piuzerashu em [Resolvido] Duvida PHPmyadminDELETE FROM player_depotitems, player_items, tile_items WHERE itemtype = 2160;
Nao pega no xampp 1.6.5 ? ta dando esse erro aki
ELETE FROM player_depotitems,
player_items,
tile_items WHERE itemtype =7367
Mensagens do MySQL : Documentação
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE itemtype = 7367' at line 1