Histórico de Curtidas
-
avalax recebeu reputação de MonkeyDLuffy em ITEM COMPRADO NO SHOP NÃO CHEGA.coloca no shop.lua essa aki
function onThink(interval, lastExecution, thinkInterval) local result = db.getResult("SELECT * FROM shop_history WHERE `processed` = 0;") if(result:getID() ~= -1) then while(true) do cid = getCreatureByName(tostring(result:getDataString("player"))) product = tonumber(result:getDataInt("product")) itemr = db.getResult("SELECT * FROM shop_offer WHERE `id` = "..product..";") if isPlayer(cid) then local id = tonumber(itemr:getDataInt("item")) local tid = tonumber(result:getDataInt("id")) local count = tonumber(itemr:getDataInt("count")) local tipe = tonumber(itemr:getDataInt("type")) local productn = tostring(itemr:getDataString("name")) if isInArray({5,8},tipe) then if getPlayerFreeCap(cid) >= getItemWeightById(id, count) then if isContainer(getPlayerSlotItem(cid, 3).uid) then received = doAddContainerItem(getPlayerSlotItem(cid, 3).uid, id,count) if received then doPlayerSendTextMessage(cid,19, "Você recebeu >> "..productn.." << da nossa loja") db.executeQuery("UPDATE `shop_history` SET `processed`='1' WHERE id = " .. tid .. ";") else doPlayerSendTextMessage(cid,19, "Desculpe, você não tem espaço suficiente no recipiente para receber >> "..productn.." <<") end else doPlayerSendTextMessage(cid,19, "Desculpe, você não tem um recipiente para receber >> "..productn.." <<") end else doPlayerSendTextMessage(cid,19, "Desculpe, você não tem capacidade suficiente para receber >> "..productn.." << (You need: "..getItemWeightById(id, count).." Capacity)") end elseif isInArray({6,7},tipe) then if tipe == 6 then bcap = 8 bid = 1987 elseif tipe == 7 then bcap = 20 bid = 1988 end if isItemRune(id) then count = 1 end if getPlayerFreeCap(cid) >= (getItemWeightById(1987, 1) + getItemWeightById(id,count * bcap)) then local bag = doCreateItemEx(bid, 1) for i = 1,bcap do doAddContainerItem(bag, id, count) end received = doPlayerAddItemEx(getPlayerSlotItem(cid, 3).uid, bag) if received == RETURNVALUE_NOERROR then doPlayerSendTextMessage(cid,19, "Você recebeu >> "..productn.." << da nossa loja") db.executeQuery("UPDATE `shop_history` SET `processed`='1' WHERE id = " .. tid .. ";") else doPlayerSendTextMessage(cid,19, "Desculpe, você não tem espaço suficiente para receber >> "..productn.." <<") end else doPlayerSendTextMessage(cid,19, "Desculpe, você não tem capacidade suficiente para receber >> "..productn.." << (You need: "..getItemWeightById(id, count).." Capacity)") end end end itemr:free() if not(result:next()) then break end end result:free() end return true end -
avalax deu reputação a psychonaut em [Heal] A partir de x porcentagem do lifeDeu certo não, pra quem quiser tentar, não da erro no distro, só não ativa e falta fazer um evento pra repetir a cada 1seg por 30seg:
local duracao = 30 --- duracao da verificacao local duracaoefeito = 30 --- duracao do efeito de cura local vidacurada = 4 --- porcentagem de vida que vai sendo curada --- falta repetir a cada segundo por 30 segundos, e fazer funcionar hueehehueheu function onCastSpell(creature, var) doPlayerSendTextMessage(cid,22,"Nos próximos 30 segundos, se a vida abaixar para menos de 20%, você sera curado!") if isPlayer(cid) and getCreatureMaxHealth(cid)*0.2 >= getCreatureHealth(cid) then local max_vida = getCreatureMaxHealth(cid) local vidaatual = getCreatureHealth(cid) doPlayerSendTextMessage(cid,22,"Sua magia foi ativada!") doCreatureAddHealth(cid, (max_vida*(vidaatual/100))) local cpos = getPlayerPosition(cid) local function onCastSpell2(parameters) doCreatureAddHealth(cid, (max_vida*(vidacurada/100))) doSendMagicEffect(cpos, 1) doSendMagicEffect(cpos, 53) end local parameters = {cid = cid, combat = combat, var = var} for i = 0, math.max(duracaoefeito, 1) - 1 do addEvent(onCastSpell2, (duracao*100) * i, parameters) end return true end end -
avalax recebeu reputação de Snowsz em Adicionar cooldown em spellup!
-
avalax deu reputação a Danves em (Resolvido)[SPELL] HEALAR 2 PLAYER AO MESMO TEMPOSó ir mudando o posx e posy até ficar no local que deseja.
-
avalax deu reputação a Danves em (Resolvido)[SPELL] HEALAR 2 PLAYER AO MESMO TEMPOFaça bom proveito.
-
avalax deu reputação a Danves em (Resolvido)[Pedido] potions healando de acordo com o level ou mlConfigure a rate que multiplica pelo level da respectiva health potion na tabela "POTIONS" onde tem "rate = x".
Aqui funcionou, mas não sei se tem algo diferente da sua versão.
-
avalax recebeu reputação de SHADOWBREACK em Bug no Shop Gesior 0.3.8tenta essa ai essa funciona
function onThink(interval, lastExecution, thinkInterval) local result = db.getResult("SELECT * FROM shop_history WHERE `processed` = 0;") if(result:getID() ~= -1) then while(true) do cid = getCreatureByName(tostring(result:getDataString("player"))) product = tonumber(result:getDataInt("product")) itemr = db.getResult("SELECT * FROM shop_offer WHERE `id` = "..product..";") if isPlayer(cid) then local id = tonumber(itemr:getDataInt("item")) local tid = tonumber(result:getDataInt("id")) local count = tonumber(itemr:getDataInt("count")) local tipe = tonumber(itemr:getDataInt("type")) local productn = tostring(itemr:getDataString("name")) if isInArray({5,8},tipe) then if getPlayerFreeCap(cid) >= getItemWeightById(id, count) then if isContainer(getPlayerSlotItem(cid, 3).uid) then received = doAddContainerItem(getPlayerSlotItem(cid, 3).uid, id,count) if received then doPlayerSendTextMessage(cid,19, "Você recebeu >> "..productn.." << da nossa loja") db.executeQuery("UPDATE `shop_history` SET `processed`='1' WHERE id = " .. tid .. ";") else doPlayerSendTextMessage(cid,19, "Desculpe, você não tem espaço suficiente no recipiente para receber >> "..productn.." <<") end else doPlayerSendTextMessage(cid,19, "Desculpe, você não tem um recipiente para receber >> "..productn.." <<") end else doPlayerSendTextMessage(cid,19, "Desculpe, você não tem capacidade suficiente para receber >> "..productn.." << (You need: "..getItemWeightById(id, count).." Capacity)") end elseif isInArray({6,7},tipe) then if tipe == 6 then bcap = 8 bid = 1987 elseif tipe == 7 then bcap = 20 bid = 1988 end if isItemRune(id) then count = 1 end if getPlayerFreeCap(cid) >= (getItemWeightById(1987, 1) + getItemWeightById(id,count * bcap)) then local bag = doCreateItemEx(bid, 1) for i = 1,bcap do doAddContainerItem(bag, id, count) end received = doPlayerAddItemEx(getPlayerSlotItem(cid, 3).uid, bag) if received == RETURNVALUE_NOERROR then doPlayerSendTextMessage(cid,19, "Você recebeu >> "..productn.." << da nossa loja") db.executeQuery("UPDATE `shop_history` SET `processed`='1' WHERE id = " .. tid .. ";") else doPlayerSendTextMessage(cid,19, "Desculpe, você não tem espaço suficiente para receber >> "..productn.." <<") end else doPlayerSendTextMessage(cid,19, "Desculpe, você não tem capacidade suficiente para receber >> "..productn.." << (You need: "..getItemWeightById(id, count).." Capacity)") end end end itemr:free() if not(result:next()) then break end end result:free() end return true end
se conseguir da um rep ai
-
avalax recebeu reputação de rafitys em Bug no Shop Gesior 0.3.8tenta essa ai essa funciona
function onThink(interval, lastExecution, thinkInterval) local result = db.getResult("SELECT * FROM shop_history WHERE `processed` = 0;") if(result:getID() ~= -1) then while(true) do cid = getCreatureByName(tostring(result:getDataString("player"))) product = tonumber(result:getDataInt("product")) itemr = db.getResult("SELECT * FROM shop_offer WHERE `id` = "..product..";") if isPlayer(cid) then local id = tonumber(itemr:getDataInt("item")) local tid = tonumber(result:getDataInt("id")) local count = tonumber(itemr:getDataInt("count")) local tipe = tonumber(itemr:getDataInt("type")) local productn = tostring(itemr:getDataString("name")) if isInArray({5,8},tipe) then if getPlayerFreeCap(cid) >= getItemWeightById(id, count) then if isContainer(getPlayerSlotItem(cid, 3).uid) then received = doAddContainerItem(getPlayerSlotItem(cid, 3).uid, id,count) if received then doPlayerSendTextMessage(cid,19, "Você recebeu >> "..productn.." << da nossa loja") db.executeQuery("UPDATE `shop_history` SET `processed`='1' WHERE id = " .. tid .. ";") else doPlayerSendTextMessage(cid,19, "Desculpe, você não tem espaço suficiente no recipiente para receber >> "..productn.." <<") end else doPlayerSendTextMessage(cid,19, "Desculpe, você não tem um recipiente para receber >> "..productn.." <<") end else doPlayerSendTextMessage(cid,19, "Desculpe, você não tem capacidade suficiente para receber >> "..productn.." << (You need: "..getItemWeightById(id, count).." Capacity)") end elseif isInArray({6,7},tipe) then if tipe == 6 then bcap = 8 bid = 1987 elseif tipe == 7 then bcap = 20 bid = 1988 end if isItemRune(id) then count = 1 end if getPlayerFreeCap(cid) >= (getItemWeightById(1987, 1) + getItemWeightById(id,count * bcap)) then local bag = doCreateItemEx(bid, 1) for i = 1,bcap do doAddContainerItem(bag, id, count) end received = doPlayerAddItemEx(getPlayerSlotItem(cid, 3).uid, bag) if received == RETURNVALUE_NOERROR then doPlayerSendTextMessage(cid,19, "Você recebeu >> "..productn.." << da nossa loja") db.executeQuery("UPDATE `shop_history` SET `processed`='1' WHERE id = " .. tid .. ";") else doPlayerSendTextMessage(cid,19, "Desculpe, você não tem espaço suficiente para receber >> "..productn.." <<") end else doPlayerSendTextMessage(cid,19, "Desculpe, você não tem capacidade suficiente para receber >> "..productn.." << (You need: "..getItemWeightById(id, count).." Capacity)") end end end itemr:free() if not(result:next()) then break end end result:free() end return true end
se conseguir da um rep ai
-
avalax deu reputação a D i M i T r E s C u em (Resolvido){Pedido} Lista de coresAQUI AMIGO
Cor / Numero da cor
COLOR_BLACK = 0 COLOR_BLUE = 5 COLOR_GREEN = 18 COLOR_TEAL = 35 COLOR_LIGHTGREEN = 66 COLOR_DARKBROWN = 78 COLOR_LIGHTBLUE = 89 COLOR_DARKPURPLE = 112 COLOR_BROWN = 120 COLOR_GREY = 129 COLOR_DARKRED = 144 COLOR_DARKPINK = 152 COLOR_PURPLE = 154 COLOR_DARKORANGE = 156 COLOR_RED = 180 COLOR_PINK = 190 COLOR_ORANGE = 192 COLOR_DARKYELLOW = 205 COLOR_YELLOW = 210 COLOR_WHITE = 215 COLOR_NONE = 255 -
avalax deu reputação a Tuka em SPELL - Hiraishin Jutsu Sealtem como vc colocar pra 10 segundos a o item do caso ai é [2335] sumir pfv rep +
-
avalax recebeu reputação de xWhiteWolf em [Projeto NTONS] Servidor 80% Pronto Falta Apenas Junção de mapa... \/ LeiaPorq ?
-
avalax deu reputação a ManoTobira em [Action] Hiraishin KunaiEsse sistema é o da hiraishin kunai uma kunai que teleporta para position que voce escolhe vamos lá
Em Actions/Scripts/ Copie um Arquivo.lua e renomeie para hiraishin apague tudo e coloque a seguinte script:
em Actions.xml Adicione a seguinte tag:
<action itemid="7382" event="script" value="hiraishin.lua" allowfaruse="1"/> explicando
local vocs = {250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261} --- aqui é o id das voc que pode usar a kunai
local parede = {1030, 1029, 1025, 1026, 1027, 1259, 1028, 1032, 1034, 1033, 1536, 1533, 873, 919, 874, 1037, 4472, 4475, 4471, 3388, 3373, 3363, 3398, 3408, 3417, 3420, 3407, 3368, 2701, 5130, 6170, 6166, 1596}
são as parede que não podem passar etc...
Créditos
Luan Mello
-
avalax deu reputação a Yugami em Naruto,Sasuke e Kakashi The Lastbom é +- esses dias tava sem nada pra fazer,ai ouvi fala sobre o filme do Naruto The Last,ai vi um Nto com umas Spriters e vi que por enquanto éra o Unico com as Spriters ai eu quis fazer pelo menos 1s 3 Spriters do filme,mas como eu n so Spriter ou coisa do tipo não fico Bunita né...,mas queria ouvi a Opnião do Povo do TK,não fis ela do 0 mas editei augumas coisas só. como o cabelo a roupa...
-
avalax deu reputação a Absolute em [Castle War 24H] Conquiste o trono!Fala galera linduxa do TK; hoje trago a vocês o tão desejado CASTLE WAR 24 HORAS, isto gera disputa intensa entre as guilds de seu servidor, atraindo assim mais jogadores que se interessam por guerras e seus demais sistemas! Modificado e com funções diferentes, no tópico ensinarei como instalar e como funciona.
Como funciona? WOOOOOOOOW!
Há um portal 24h aberto em algum lugar do seu mapa que ficará com o castle disponível 24h (avá).
Quando uma guild qualquer acessar o portal do castelo, irá aparecer para o servidor que a X guild está tentando dominar o castelo, então o líde da guild dominante atual irá dizer !gocastle para teleportar ao castelo e defende-lo.
O Objetivo para conquista do mesmo é invadi-lo derrotar os defensor da guild atual para abrir passagem, digamos assim, e subir ao trono, quando um membro da guild invadir o templo do trono e subir no mesmo a antiga guild dominadora é teleportada para o templo e o castelo fica sob domínio da nova guild.
Você poderá colocar como premiação acesso a áreas exclusivas do castelo, no caso hunts e cia. (Fica a vosso critério)
Evento testado nas versões 8.6; 9.6; 9.83; 9.86!
Observação:
Comando !gocastle faz com que o líder possa teleportar todos os membros da sua guild online para perto dele, desde que ele esteja no castle. Comando pode ser usado a cada 3 horas (exhausted).
Vamos aos scripts do sistema;
Em data/actions/scripts crie um arquivo com o nome de naviocastle.lua e coloque dentro:
function onUse(cid, item, fromPosition, itemEx, toPosition) if(item.actionid == 65500) then if getTopCreature({x=32464,y=32378,z=5}).uid > 0 then doTeleportThing(getTopCreature({x=32464,y=32378,z=5}).uid, {x=32526,y=32421,z=5}) doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF) else doPlayerSendCancel(cid, "Você precisa estar em cima do tapete.") return true end elseif (item.actionid == 65501) then if getTopCreature({x=32526,y=32421,z=5}).uid > 0 then doTeleportThing(getTopCreature({x=32526,y=32421,z=5}).uid, {x=32464,y=32378,z=5}) doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF) else doPlayerSendCancel(cid, "Você precisa estar em cima do tapete.") end end return true end
Em actions.xml adicione a seguinte linha:
<action actionid="65500-65501" event="script" value="naviocastle.lua"/> Pós feito isto, em data/lib crie um arquivo com o nome de 015-COH e adicione dentro dele:
-- This program is free software: you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by -- the Free Software Foundation, either version 3 of the License, or -- (at your option) any later version. -- -- This program is distributed in the hope that it will be useful, -- but WITHOUT ANY WARRANTY; without even the implied warranty of -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -- GNU General Public License for more details. -- -- You should have received a copy of the GNU General Public License -- along with this program. If not, see <http://www.gnu.org/licenses/>. -- // COH_PUSHTIME = 10800 -- Tempo (em segundos) de exhausted para usar o comando !gocastle - Padrão (3 horas) COH_AREA = {{x = 32458, y = 32332, z = 7}, {x = 32558, y = 32429, z = 7}} -- Canto superior esquerdo / inferior direito do Castle -- // Não mexa daqui para baixo COH_STATUS = 201320111714 COH_PREPARE1 = 201320111715 COH_PUSHSTOR = 201320111716 COH_PREPARE2 = 201320111717 function doCastleRemoveEnemies() for index, creature in ipairs(getPlayersOnline()) do if isInArea(getThingPos(creature), COH_AREA[1], COH_AREA[2]) then if getPlayerGuildName(creature) ~= getGlobalStorageValue(COH_STATUS) then doTeleportThing(creature, getTownTemplePosition(getPlayerTown(creature))) end end end return true end Proximo passo, em data/monster.xml adicione a seguinte linha:
<monster name="Castle Guardian" file="Castle Guardian.xml"/> Em data/monsters crie um arquivo com o nome de Castle Guardian.xml e adicione o seguinte:
<?xml version="1.0" encoding="UTF-8"?> <monster name="Castle Guardian" nameDescription="a castle guardian" race="blood" experience="0" speed="0" manacost="0"> <health now="800000" max="800000"/> <look type="131" head="57" body="19" legs="57" feet="95" addons="1" corpse="6080"/> <targetchange interval="5000" chance="30"/> <strategy attack="100" defense="0"/> <flags> <flag summonable="0"/> <flag attackable="1"/> <flag hostile="1"/> <flag illusionable="0"/> <flag convinceable="0"/> <flag pushable="0"/> <flag canpushitems="1"/> <flag canpushcreatures="1"/> <flag targetdistance="4"/> <flag staticattack="90"/> <flag runonhealth="800"/> </flags> <attacks> <attack name="melee" interval="2000" min="-60" max="-180"/> <attack name="physical" interval="1000" chance="35" range="7" min="-205" max="-385"> <attribute key="shootEffect" value="energy"/> </attack> <attack name="manadrain" interval="1000" chance="17" range="7" min="-205" max="-560"/> <attack name="speed" interval="1000" chance="12" range="7" speedchange="-600" duration="40000"> <attribute key="areaEffect" value="redshimmer"/> </attack> <attack name="fire" interval="2000" chance="45" range="7" radius="3" target="1" min="-250" max="-420"> <attribute key="shootEffect" value="burstarrow"/> <attribute key="areaEffect" value="firearea"/> </attack> <attack name="firefield" interval="1000" chance="20" range="7" radius="2" target="1"> <attribute key="shootEffect" value="fire"/> </attack> <attack name="energy" interval="2000" chance="25" length="8" spread="0" min="-265" max="-445"> <attribute key="areaEffect" value="energy"/> </attack> <attack name="speed" interval="6000" chance="10" range="5" speedchange="-600" duration="20000"> <attribute key="areaEffect" value="redshimmer"/> </attack> </attacks> <defenses armor="1" defense="1"/> <elements> <element firePercent="100"/> <element energyPercent="100"/> <element icePercent="100"/> <element earthPercent="90"/> <element holyPercent="-25"/> <element physicalPercent="-33"/> </elements> <immunities> <immunity paralyze="1"/> <immunity invisible="1"/> </immunities> <summons maxSummons="2"> <summon name="deathspawn" interval="1500" chance="0" max="0"/> </summons> <loot> <item id="2148" countmax="20" chance1="100000" chancemax="0"/> </loot> </monster> Pós isto;
Em data/movements/scripts crie um arquivo com o nome de COH.lua e adicione o seguinte:
-- This program is free software: you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by -- the Free Software Foundation, either version 3 of the License, or -- (at your option) any later version. -- -- This program is distributed in the hope that it will be useful, -- but WITHOUT ANY WARRANTY; without even the implied warranty of -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -- GNU General Public License for more details. -- -- You should have received a copy of the GNU General Public License -- along with this program. If not, see <http://www.gnu.org/licenses/>. -- // function onStepIn(cid, item, pos, fromPosition) local pos = getThingPos(cid) if item.actionid == 16203 then if not isPlayer(cid) then return true end if getGlobalStorageValue(COH_STATUS) == getPlayerGuildName(cid) then doSendMagicEffect(getThingPos(cid), 14) doSendAnimatedText(pos, "CoH", math.random(1, 255)) else doSendMagicEffect(getThingPos(cid), 2) doTeleportThing(cid, fromPosition, false) doPlayerSendCancel(cid, "[CoH] Você não pertence á guild "..getGlobalStorageValue(COH_STATUS)..".") end return true end if item.actionid == 16202 then if not isPlayer(cid) then return true end if getPlayerGuildId(cid) > 0 then if (getGlobalStorageValue(COH_STATUS) ~= getPlayerGuildName(cid)) then doPlayerSendTextMessage(cid, 20, "[Castle of Honor] Você e sua guild estão no comando, os antigos donos ["..tostring(getGlobalStorageValue(COH_STATUS)).."] podem se vingar!") setGlobalStorageValue(COH_PREPARE1, -1) setGlobalStorageValue(COH_PREPARE2, -1) setGlobalStorageValue(COH_STATUS, getPlayerGuildName(cid)) doCastleRemoveEnemies() doBroadcastMessage("[Castle of Honor] O jogador ["..getCreatureName(cid).."] e sua guild ["..getPlayerGuildName(cid).."] estão no comando do castelo, vá dominar e impedir isso!") end else doSendMagicEffect(pos, 2) doTeleportThing(cid, fromPosition, false) doPlayerSendCancel(cid, "[CoH] Você não possui uma guild.") end return true end if item.actionid == 16200 then if not isPlayer(cid) then return true end if getPlayerGuildId(cid) > 0 then doSendAnimatedText(pos, "CoH", math.random(1, 255)) if (getGlobalStorageValue(COH_PREPARE1) ~= getPlayerGuildName(cid)) and ((getGlobalStorageValue(COH_PREPARE2) ~= getPlayerGuildName(cid))) then setGlobalStorageValue(COH_PREPARE1, getPlayerGuildName(cid)) doBroadcastMessage("[Castle of Honor] Atenção! A guild "..getPlayerGuildName(cid).." está tentando dominar o castelo, preparem-se!") end else doSendMagicEffect(pos, 2) doTeleportThing(cid, fromPosition, false) doPlayerSendCancel(cid, "[CoH] Você não possui uma guild.") return true end end if item.actionid == 16201 then if not isPlayer(cid) then return true end doSendAnimatedText(pos, "CoH", math.random(1, 255)) if (getGlobalStorageValue(COH_PREPARE2) ~= getPlayerGuildName(cid)) then setGlobalStorageValue(COH_PREPARE2, getPlayerGuildName(cid)) doBroadcastMessage("[Castle of Honor] Atenção! A guild "..getPlayerGuildName(cid).." está muito próxima do domínio, ataquem!") end end return true end Em data/movements/movements.xml adicione a seguinte linha:
<movevent type="StepIn" actionid="16200-16203" event="script" value="COH.lua"/> Próximo passo:
Em data/talkactions/scripts crie um arquivo com o nome de COHABSOLUTE.lua e adicione o seguinte:
-- This program is free software: you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by -- the Free Software Foundation, either version 3 of the License, or -- (at your option) any later version. -- -- This program is distributed in the hope that it will be useful, -- but WITHOUT ANY WARRANTY; without even the implied warranty of -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -- GNU General Public License for more details. -- -- You should have received a copy of the GNU General Public License -- along with this program. If not, see <http://www.gnu.org/licenses/>. -- // function onSay(cid, words, param) if getPlayerGuildLevel(cid) == GUILDLEVEL_LEADER then if getPlayerStorageValue(cid, COH_PUSHSTOR) < os.time() then if getGlobalStorageValue(COH_STATUS) == getPlayerGuildName(cid) then if isInArea(getThingPos(cid), COH_AREA[1], COH_AREA[2]) then if #getMembersOnline(getPlayerGuildId(cid)) > 0 then for index, creature in ipairs(getMembersOnline(getPlayerGuildId(cid))) do if (getTileInfo(getThingPos(creature)).protection ~= true) then return doPlayerSendCancel(cid, "[CoH] Os membros devem estar em área PZ.") end doTeleportThing(creature, getThingPos(cid)) end setPlayerStorageValue(cid, COH_PUSHSTOR, os.time() + COH_PUSHTIME) doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "[Castle of Honor] Você teleportou seus membros, comando pode ser usado a cada "..tostring(COH_PUSHTIME / 60).." minuto(s).") else doPlayerSendCancel(cid, "[CoH] Para executar isso, sua guild deve ter 2 ou mais membros online.") end else doPlayerSendCancel(cid, "[CoH] Você deve estar no castelo.") end else doPlayerSendCancel(cid, "[CoH] Sua guild não é dona do castelo.") end else doPlayerSendCancel(cid, "[CoH] Você deve aguardar "..tostring(math.ceil((getPlayerStorageValue(cid, COH_PUSHSTOR) - os.time()) / 60)).." minuto(s) para usar este comando.") end else doPlayerSendCancel(cid, "[CoH] Você deve ser líder de uma guild para executar este comando.") end return true end function getMembersOnline(id) local mbr = {} for index, creature in ipairs(getPlayersOnline()) do if getPlayerGuildId(creature) == id then if getCreatureSkullType(creature) < 3 then table.insert(mbr, creature) end end end return mbr or #mbr end Em data/talkactions/talkactions.xml adicione a seguinte linha:
<talkaction words="!castlepush;!pushmembers;!gocastle" event="script" value="COHABSOLUTE.lua"/> Quem disponibiliza o mapa do castelo a vocês é nosso amigo ViitinG, segue o link do tópico para download do mesmo já adaptado para este Castle:
http://www.tibiaking.com/forum/topic/35730-mapa-evento-war-castle/
Explicação das actions e demais (caso não use o mapa disponibilizado pelo Viiting lembre de adicionar ao castelo);
ActionID 16200 - No meio do caminho para o castelo, ActionID 16201 - Perto do castelo, ActionID 16202 - No piso, trono que faz com que domine, e ActionID 16203 - Para a passagem de acesso ás hunts / city exclusivas da guild vencedora. Importante: Para colocar uma passagem para as hunts ou o que for a premiação da guild vencedora, coloque um caminho único com os actionIDS 16203, assim só a guild dominante do castelo poderá passar neste local. É importante lembrar que este script é de autoria do Roksas Nunez, ex scripter da empresa chaitosoft, fiz simples modificações de otimização.
Qualquer dúvida peço que entre em contato comigo e poste aqui no tópico.
Créditos:
Absolute
Roksas
ViitinG
Espero que gostem, afinal raro alguém disponibilizar algo tão desejado e útil assim!
Até o próximo sistema.
Absolute on tibiaking =p
-
avalax deu reputação a Eytor em [8.54] Servidor + Client Naruto B&W [EXCLUSIVO]OLÁ USUARIOS DO TIBIA KING .. HOJE ESTAREI TRAZENDO UMA NOVIDADE .. O SERVIDOR DE NTO EXCLUSIVO DO NTO BLACK & WHITE(AKELE OT NOVO QUE FOI CRIADO A 1 MES POR E MIN E POR O [ADM] Johnatan).
VALE LEMBRAR QUE O NTO BLACK WHITE FOI UM DOS SERVIDORES DE NARUTIBIA QUE MAIS CRESCEU NOS ULTIMOS TEMPOS .. EM APENAS 1 SEMANA DE NTO JÁ ATINGIMOS A META DE 70 ~ 80 USUARIOS ONLINE FIXOS DIARIOS, E ESSE É O SERVIDOR MAIS RECENTE DO NTO BLACK WHITE BASEADO NO DO SERVIDOR MADARA RINNEGAN EDITADO POR MIN E POR O JOHNATA.
ANTES DE MAIS NADA GOSTARIA DE EXPLICAR O MOTIVO DE TAR POSTANDO O SERVER .. BEM O JOHNATAN ERA QUEM FAZIA PRATICAMENTE TUDO NAS ATUALIZAÇÕES E TAALS .. POREM ELE PAROU COM NTO AI TIVE QUE DESMONTAR O NTO B&W PORQUE EU NÃO TINHA CONDIÇÕES PRA DAR CONTA DO NTO SOZINHO.
CHEGA DE BLABLA E VAMOS LÁ!!
[+] NOVIDADES & CARACTERISTICAS
[+] ERROS E BUGS
[+] PRINTS DO SERVER
[+] DOWNLOAD
[+] CREDITOS
[+] NOVIDADES & CARACTERISTICAS
[+] ERROS E BUGS
[+] PRINTS DO SERVER
[+] Downloads
Servidor Naruto B&W: Clique Aqui
Client(descompilado): Clique Aqui
[+] Creditos
- Madara Rinnegan (servidor base)
- [ADM] Johnata Editar Praticamente Todo o Servidor
- Eu Por umas Besteiras q eu Coloquei e Por Postar
GOSTOU DO SERVIDOR?
DA UM REP++
-
avalax deu reputação a Wise em (Resolvido)Comando !RebattleJá testei os scripts que fiz e está tudo certo.
O problema não está neles, desculpe amigo.
-
avalax deu reputação a xWhiteWolf em [Spell] Katara's SenseFala pessoal do TK, hoje vim trazer uma spell bem bonita que veio na minha cabeça.
em 14:06 desse vídeo dá pra ver oque eu tentei criar
http://tvuol.uol.com.br/video/avatar--livro-3-fogo--ep-48--a-manipuladora-de-fantoches-04028C98306ED8A90326/
mas por conta dos efeitos precários que o Tibia possui não ficou tão legal qnt eu imaginei mas em todo caso eu decidi compartilhar o código com vocês.
O resultado final foi esse daqui:
Se vocês se interessaram é só criar um arquivo em spells/scripts e colocar isso daqui dentro dele:
function onCastSpell(cid, var) local config = { spins = 1, delay = 120 } local k = checkGroundInArray(getPositionsByDirection(cid), grass) if #k < 1 then doSendMagicEffect(getThingPos(cid), CONST_ME_POFF) doPlayerSendCancel(cid, "You need to be around grass to cast this spell.") return false end for i = 1, #k do addEvent(function() if isPlayer(cid) then local pos = k[i] local grama = getThingFromPos(pos) doTransformItem(grama.uid, driedgrass[math.random(1, #driedgrass)]) a = (i < 9) and doSendMagicEffect(pos, 1) or doSendMagicEffect(pos, 53) doSendDistanceShoot(pos, getThingPos(cid), 36) end end, (config.delay/2) * i) end range = #k > 4 and 7 or 5 addEvent(function() if isPlayer(cid) then local pos = k[i] local lastPos = false for i = 1, range do local position = getPositionByDirection(getCreaturePosition(cid), getCreatureLookDirection(cid), i) if isWalkable(position, false, true, true) then local creature = getTopCreature(position) if (creature.uid > 0) then doSendDistanceShoot(getCreaturePosition(cid), getCreaturePosition(creature.uid), 36) doTargetCombatHealth(cid, creature.uid, COMBAT_PHYSICALDAMAGE, -142 * (#k - 1), -150 * (#k - 1), CONST_ME_NONE) break end lastPos = position end if lastPos then doSendDistanceShoot(getCreaturePosition(cid), lastPos, 36) end end end end, (config.delay + (4 * config.delay * config.spins)) ) addEvent(function() for j = 1, #k do addEvent(function() local pos = k[j] local grama = getThingFromPos(pos) if isInArray(driedgrass, grama.itemid) then doTransformItem(grama.uid, grass[math.random(1, #grass)]) end end, (config.delay/2) * j) end end, config.delay * 100) spinRotate(cid, config.spins, config.delay) return true end e em spells.xml vc adiciona:
<instant name="TK" words="kataras sense" lvl="8" mana="35" prem="0" casterTargetOrDirection="1" exhaustion="1500" needlearn="0" event="script" value="nomedoarquivo.lua"> </instant> OBS: Note que esse script usa funções da new library. Você pode conseguir essas funções aqui: http://www.tibiaking.com/forum/topic/46015-new-library-v-10/
Espero que tenham curtido, esse é só o começo! Testada em TFS 0.3.6 Tibia 8.54.
-
avalax deu reputação a buddha em (Resolvido)[Pedido] Server Salva em 30 em 30 segundosO server dele pode ser em milissegundos. 7200000 é 2 horas em milissegundos.
Edit:
Caso seu TFS seja 1.0 ou o script do amigo acima não funcione, pode testar esse também:
Tag:
<globalevent name="Server Save" interval="7200000" script="serversave.lua"/>
-
avalax deu reputação a eunaosei123 em (Resolvido)[Pedido] Server Salva em 30 em 30 segundosVá em data/globalevents/script e crie um arquivo chamado save e cole isso dentro
agora vá em data/globalevents e abra o globalevents.XML e cole isso la dentro
você configura nesse canto
interval="7200" você coloca o tempo que quiser em segundos
ai já ta em 2 em 2hrs
-
avalax deu reputação a Wise em (Resolvido)Ao equipar um item X no meu slot serta vocartion mudara a outfitO aumento de velocidade e magic level, você pode editar em items.xml, aplicando as seguintes linhas no código referente ao item:
<attribute key="speed" value="50" /> <attribute key="magiclevelpoints" value="50" /> <attribute key="showattributes" value="1" />
Enquanto aos scripts do item:
itemoutfit.lua (data/movements/scripts):
local tab = { [1] = {outfit = 123}, -- [vocID] = {outfit = lookTypeNumber} [300] = {outfit = 456} } function onEquip(cid, item, slot) doSetCreatureOutfit(cid, {lookType = tab[getPlayerVocation(cid)].outfit}, -1) return true end function onDeEquip(cid, item, slot) doRemoveCondition(cid, CONDITION_OUTFIT) return true end
Tag - movements.xml (data/movements):
<movevent type="Equip" itemid="ITEMID" slot="VALUE" event="script" value="itemoutfit.lua"/> <movevent type="DeEquip" itemid="ITEMID" slot="VALUE" event="script" value="itemoutfit.lua"/>
Configure a tag com o ID do item e o VALUE do slot, que varia de acordo com o item (onde ele pode ser equipado).
Caso você não saiba como configurar, os valores que você pode utilizar são:
Values: head necklace backpack armor right-hand, left-hand two-handed, hand/shield legs feet ring ammo
itemlogout.lua (data/creaturescripts/scripts):
local item = {1234, 5} -- {itemID, slotNumber} function onLogout(cid) if getPlayerSlotItem(cid, item[2]).itemid == item[1] then doPlayerSendCancel(cid, "You need to remove your "..getItemNameById(item[1]).." from the slot to logout.") return false end return true end
Pra configurar o slotNumber da tabela item no script, basta adicionar o número do slot de acordo com o que seu item é equipado.
Aqui estão eles:
--slotVariableName(slotNumber) = slotValue: CONST_SLOT_HEAD (1) = head (helmet) CONST_SLOT_NECKLACE (2) = necklace (amulet) CONST_SLOT_BACKPACK (3) = backpack CONST_SLOT_ARMOR (4) = armor CONST_SLOT_LEFT (5) = left hand CONST_SLOT_RIGHT (6) = right hand CONST_SLOT_LEGS (7) = legs CONST_SLOT_FEET (8) = boots CONST_SLOT_RING (9) = ring CONST_SLOT_AMMO (10) = ammo Lembrando que o callback usado no script não registra creature event.
Tag - creaturescripts.xml (data/creaturescripts):
<event type="logout" name="ItemLogout" event="script" value="itemlogout.lua"/> -
avalax deu reputação a ferlations em !deathlistMatheus, dai o tibia iria fechar sozinho, sem mostrar para enviar o relatório, iria fechar de qualquer jeito, não?
Amigo, use o do Matheus, mas antes faça isso:
Vá até a pasta Talkactions abra o arquivo Talkactions.xml e adicione esta Tag:
<talkaction words="!deathlist" event="script" value="deathlist.lua"/> Dai então use o script do Matheus. -
avalax recebeu reputação de wellyson em (Resolvido)Scripts para ntoclica gostei. e melhor resposta vlw
-
avalax recebeu reputação de wellyson em (Resolvido)Scripts para ntoeu tenho a minha to meu serve testa ai
Ajudei Rep+
-
avalax deu reputação a Rofl em Como Criar um ForumNeste vídeo explica passo-a-passo de como instalar o MyBB:
Não tem erro, é só prestar atenção!
-
avalax deu reputação a vinhzika em [Urgente!] Erro Dat EditorBaixe o object builder essa dat e spr está extendida procure saber mais sobre o assunto antes de iniciar com as sprites no object builder boa sorte