Ir para conteúdo

Farathor

Visconde
  • Total de itens

    320
  • Registro em

  • Última visita

  • Dias Ganhos

    2

Tudo que Farathor postou

  1. Galera, vocês conhecem aquele sistema de forge system? Aquele que você coloca dois items 1 em cada lugarzinho, dai vc aperta a alavanca e o item é forjado ? Então, eu gostaria de um script que por exemplo eu coloco o FIRE BUG em cima do coal verde, e aperto a alavanca, dai eu sou teleportado para uma area configurada
  2. Olá. eu tenho um script aqui, que ele funciona para que o jogador meio que "filtre" qual jogador ele vai atacar ou seja, caso ele use um certo comando, ele só ataca jogadores que tenha SKULL (PK,RED ou Black) Esse meu script, ele tem uma função, que mesmo que o jogador coloque esse filtro, ele ataca jogadores da war do time inimigo, ou seja, esse script não filtra os jogadores da war do time inimigo. Mas tem um problema, ele filtra os jogadores do meu time, ou seja, se eu usar o comando ele não ataca os jogadores do meu time, e eu queria colocar para isso não acontecer, porque se isso acontecer a war ficaria chata local function isInWar(cid) local check = {} if getPlayerGuildId(cid) and getPlayerGuildId(cid) > 0 then local query = db.getResult("SELECT `status` FROM `guild_wars` WHERE `guild_id` = '"..getPlayerGuildId(cid).."'") if query:getID() == -1 then return false end repeat local status = query:getDataInt("status") table.insert(check, status) until not query:next() query:free() if isInArray(check, 1) then return true end end return false end local function isFighting(cid, target) if getPlayerGuildId(cid) and getPlayerGuildId(cid) > 0 and getPlayerGuildId(target) and getPlayerGuildId(target) > 0 then local query = db.getResult("SELECT `enemy_id` FROM `guild_wars` WHERE `guild_id` = '"..getPlayerGuildId(cid).."' AND `status` = '1'") if query:getID() == -1 then local tery = db.getResult("SELECT `enemy_id` FROM `guild_wars` WHERE `guild_id` = '"..getPlayerGuildId(target).."' AND `status` = '1'") if tery:getID() == -1 then return false end local guild = tery:getDataInt("enemy_id") tery:free() if guild == getPlayerGuildId(cid) then return true end else local enemy = query:getDataInt("enemy_id") query:free() if enemy == getPlayerGuildId(target) then return true end end end return false end function onCombat(cid, target) if isPlayer(cid) and isPlayer(target) then if getPlayerGuildId(cid) == getPlayerGuildId(target) and not isInWar(cid) then if getPlayerStorageValue(cid, 0442200) == 1 then return false end end if getPlayerStorageValue(cid, 0442201) == 1 and getCreatureSkull(target) == 0 and not isFighting(cid, target) then return false end if getPlayerStorageValue(cid, 0442202) == 1 and not isFighting(cid, target) then return false end if getPlayerStorageValue(cid, 0442203) ~= -1 and getPlayerLevel(target) < getPlayerStorageValue(cid, 0442203) then return false end end return true end function onTarget(cid, target) if isPlayer(cid) and isPlayer(target) then if getPlayerGuildId(cid) == getPlayerGuildId(target) and not isInWar(cid) then if getPlayerStorageValue(cid, 0442200) == 1 then doPlayerSendCancel(cid, "Voce nao pode atacar alguem da sua guild pois o modo de pvp guild esta ativado.") return false end end if getPlayerStorageValue(cid, 0442201) == 1 and getCreatureSkull(target) == 0 and not isFighting(cid, target) then doPlayerSendCancel(cid, "Voce nao pode atacar alguem sem skull pois o modo de pvp marked esta ativado.") return false end if getPlayerStorageValue(cid, 0442202) == 1 and not isFighting(cid, target) then doPlayerSendCancel(cid, "Voce nao pode atacar alguem que nao esteja em war contra sua guild pois o modo pvp war esta ativado.") return false end if getPlayerStorageValue(cid, 0442203) ~= -1 and getPlayerLevel(target) < getPlayerStorageValue(cid, 0442203) then doPlayerSendCancel(cid, "Voce nao pode atacar alguem com level menor que "..getPlayerStorageValue(cid, 0442203).." pois o modo de pvp level esta ativado.") return false end end return true end function onLogin(cid) registerCreatureEvent(cid, "PVPSystemC") registerCreatureEvent(cid, "PVPSystemT") return true end
  3. POR FAVOOOOR, me ajudem a tirar o salt da sourcers do OTX, poste aqui o que vocês precisam, q eu estarei disponibilizando
  4. Olá, gostaria de saber como eu coloco para essa magia hitar pelo Skill Distance e não pelo ML local combat = createCombatObject() local combat2 = createCombatObject() local meteor = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, 7) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -6.10, -250, -6.40, -250) local meteor2 = createCombatObject() setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat2, COMBAT_PARAM_DISTANCEEFFECT, 18) setCombatParam(combat2, COMBAT_PARAM_EFFECT, 6) setCombatFormula(combat2, COMBAT_FORMULA_LEVELMAGIC, -8.10, -280, -8.40, -280) local arr = { {0, 0, 0, 0, 0}, {0, 0, 1, 0, 0}, {0, 1, 3, 1, 0}, {0, 0, 1, 0, 0}, {0, 0, 0, 0, 0} } local area = createCombatArea(arr) setCombatArea(combat, area) setCombatArea(combat2, area) local function meteorCast(p) doCombat(p.cid, p.combat, positionToVariant(p.pos)) end local function meteorCast2(p) doCombat(p.cid, p.combat2, positionToVariant(p.pos)) end local function stunEffect(cid) doSendMagicEffect(getThingPos(cid), CONST_ME_STUN) end function onTargetTile(cid, pos) if (math.random(0, 0) == 0) then local ground = getThingfromPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 1}) if (isInArray(underWater, ground.itemid) == TRUE) then local pos = getThingPos(getCreatureTarget(cid)) local posy = {x = pos.x, y = pos.y - 1, z = pos.z} local posy2 = {x = pos.x, y = pos.y + 1, z = pos.z} local posx = {x = pos.x - 1, y = pos.y, z = pos.z} local posx2 = {x = pos.x + 1, y = pos.y, z = pos.z} doSendDistanceShoot(getThingPos(cid), posy, 7) doSendDistanceShoot(getThingPos(cid), posy2, 7) doSendDistanceShoot(getThingPos(cid), posx, 7) doSendDistanceShoot(getThingPos(cid), posx2, 7) addEvent(meteorCast, 200, {cid = cid, pos = pos, combat = meteor2_water}) else local pos = getThingPos(getCreatureTarget(cid)) local posy = {x = pos.x, y = pos.y - 1, z = pos.z} local posy2 = {x = pos.x, y = pos.y + 1, z = pos.z} local posx = {x = pos.x - 1, y = pos.y, z = pos.z} local posx2 = {x = pos.x + 1, y = pos.y, z = pos.z} doSendDistanceShoot(getThingPos(cid), posy, 7) doSendDistanceShoot(getThingPos(cid), posy2, 7) doSendDistanceShoot(getThingPos(cid), posx, 7) doSendDistanceShoot(getThingPos(cid), posx2, 7) addEvent(meteorCast, 100, {cid = cid,pos = pos, combat = meteor}) end end end function onTargetTile2(cid, pos) if (math.random(0, 0) == 0) then local ground = getThingfromPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 1}) if (isInArray(underWater, ground.itemid) == TRUE) then local pos = getThingPos(getCreatureTarget(cid)) local posy = {x = pos.x, y = pos.y - 1, z = pos.z} local posy2 = {x = pos.x, y = pos.y + 1, z = pos.z} local posx = {x = pos.x - 1, y = pos.y, z = pos.z} local posx2 = {x = pos.x + 1, y = pos.y, z = pos.z} doSendDistanceShoot(getThingPos(cid), posy, 18) doSendDistanceShoot(getThingPos(cid), posy2, 18) doSendDistanceShoot(getThingPos(cid), posx, 18) doSendDistanceShoot(getThingPos(cid), posx2, 18) addEvent(meteorCast, 200, {cid = cid, pos = pos, combat = meteor_water}) else local pos = getThingPos(getCreatureTarget(cid)) local posy = {x = pos.x, y = pos.y - 1, z = pos.z} local posy2 = {x = pos.x, y = pos.y + 1, z = pos.z} local posx = {x = pos.x - 1, y = pos.y, z = pos.z} local posx2 = {x = pos.x + 1, y = pos.y, z = pos.z} doSendDistanceShoot(getThingPos(cid), posy, 18) doSendDistanceShoot(getThingPos(cid), posy2, 18) doSendDistanceShoot(getThingPos(cid), posx, 18) doSendDistanceShoot(getThingPos(cid), posx2, 18) addEvent(meteorCast, 100, {cid = cid,pos = pos, combat = meteor2}) end end end setCombatCallback(combat, CALLBACK_PARAM_TARGETTILE, "onTargetTile") setCombatCallback(combat2, CALLBACK_PARAM_TARGETTILE, "onTargetTile2") function onCastSpell(cid, var) if (not canPlayerWearOutfit(cid, 156, 3) or not canPlayerWearOutfit(cid, 152, 3)) then return doCombat(cid, combat, var) end return doCombat(cid, combat2, var) end
  5. Mas a questão é que esse script é só para staff usar, então o GOD só teria privilegios de usar o /add e os gms poderiam usar o resto
  6. Esse, é um script para banco ou para o cofre?
  7. você colocou para ele não estar com pz lock certo? mas eu queria que no caso, ele só perdesse items se tivesse com skull mas obrigado, seu script fez eu pensar e eu consegui arrumar, obrigado, reslvido
  8. Esse script, é um script que protege jogador com level menor que 150 para que não percam loot, mas eu queria que ele fizesse isso, mas tem um porém, jogador que tivesse com pk, red ou black irão perder loot, conseguiram entender? function onDeath(cid, corpse, deathList) local config = { onlypremium = false, -- se precisa ser premium para não perder nada exp = true, -- se ao morrer o jogador irá perder exp skills = true, -- se ao morrer vai perder skills magic = true, -- se vai perder magic level loot = false, -- se ao morrer o jogador irá perder o loot level = 150 -- até que level irá proteger o player } if isPlayer(cid) and getPlayerLevel(cid) <= config.level then if config.onlypremium == true and not isPremium(cid) then return TRUE end if config.loot == false then doCreatureSetDropLoot(cid, false) end if config.magic == false then doPlayerSetLossPercent(cid, PLAYERLOSS_MANA, 0) end if config.skills == false then doPlayerSetLossPercent(cid, PLAYERLOSS_SKILLS, 0) end if config.exp == false then doPlayerSetLossPercent(cid, PLAYERLOSS_EXPERIENCE, 0) end return TRUE end return TRUE end
  9. o erro era outro, valeu por ajudarem, resolvido
  10. Galera, eu consigo acessar o PhpMyAdmin normalmente, mas o site não funciona, dá esse erro Not FoundThe requested URL /subtopic=latestnews was not found on this server. Apache/2.4.10 (Ubuntu) Server at 158.69.209.254 Port 80
  11. Esse sistema, funcionaria como um segundo banco, que só poderia ser acessado por GM,CM e GOD (Group 4, 5, 6) Existiriam 4 tipos de comandos, (2 comandos só funcionaria para GOD) /cofreAdd (Só para GOD) Seria para o GOD adicionar dinheiro nesse segundo banco para os GM e CM do OT, funcionaria assim: /cofreAdd, <nome do jogador>, <quantidade>. O GOD, não precisa ter dinheiro em nenhum lugar para adicionar dinheiro no segundo banco ou seja, ele vai adicionar essa grana sem ter que tirar de nenhum outro lugar. /cofreTransfer (Para Todos) Serve para quem tem dinheiro no segundo banco, transferir para jogador, como forma de recompensa de dinheiro etc, funcionaria assim: /cofreTransfer, <nome do jogador>, <quantidade>. Quando o dinheiro for transferido, ele sairá do cofre do jogador que está transferindo e ira para o banco normal do jogador para qual o dinheiro foi transferido /cofreLimits, irá mostrar quanto de dinheiro ainda tem nesse segundo banco do jogador que soltou o comando. /cofreAll(Só para GOD) irá mostrar a quantidade que todos os GMS,CMS tem de dinheiro no banco
  12. não, não fala nome, nem nada, aquela mensagem não aparece
  13. [15/2/2016 1:52:21] [Error - CreatureScript Interface] [15/2/2016 1:52:21] data/creaturescripts/scripts/CastleWar/CastleWar.lua:onDeath [15/2/2016 1:52:21] Description: [15/2/2016 1:52:21] data/creaturescripts/scripts/CastleWar/CastleWar.lua:100: attempt to compare number with nil [15/2/2016 1:52:21] stack traceback: [15/2/2016 1:52:21] data/creaturescripts/scripts/CastleWar/CastleWar.lua:100: in function <data/creaturescripts/scripts/CastleWar/CastleWar.lua:61>
  14. Olha, eu substituí do jeito que vc mandou, mas aconteceu o seguinte erro: [15/2/2016 1:41:56] [Error - CreatureScript Interface] [15/2/2016 1:41:56] data/creaturescripts/scripts/CastleWar/CastleWar.lua:onDeath [15/2/2016 1:41:56] Description: [15/2/2016 1:41:56] data/creaturescripts/scripts/CastleWar/CastleWar.lua:89: attempt to compare nil with number [15/2/2016 1:41:56] stack traceback: [15/2/2016 1:41:56] data/creaturescripts/scripts/CastleWar/CastleWar.lua:89: in function <data/creaturescripts/scripts/CastleWar/CastleWar.lua:61> dai, eu adicionei aquela linha que vc tinha mandado eu adicionar faz tempo if not mx[index] then mx[index] = 0 end o erro sumiu, mas o Knight não ganhou o prêmio, espero que ajude
  15. local st = getPlayerStorageValue(pid, 1827311) local i = getPlayerVocation(pid) local index = i%4 if i == 4 or i == 8 then index = 4 end if not mx[index] then mx[index] = 0 end doBroadcastMessage(index) if st > mx[index] then tudo isso, por isso? a e com o knight sem promote ele printou isso: 01:36 4
  16. cara, acho que descobri o problema, as vocações promote não ganham também, ou seja, 4 ou maior que 4 não ganham
  17. Obrigado por tudo então cara, esse do knight ferrou em, rs se tiver como, teria como ele mandar o prêmio, para o depot do jogador ? vc nao tem ideia do que pode estar causadno o erro no knight? vou testar com Elite knight para ver
  18. esse de resetar os pontos funcionou, mas tem um problema por exemplo, se o jogador não estiver dentro do castelo quando o evento acabar, ele vai acumular os pontos nao vai ?
  19. [14/2/2016 23:58:36] Knight has logged in. [14/2/2016 23:59:7] > Broadcasted message: "{Castle War} O evento acabou, a guild com maior desempenho foi Infinity Alliance, com 553 pontos sobre o castelo.". O Knight parece que nao ganha, e as outras vocações parece que não resetam os hit, vc deu uma olhada no arquivo da LIB q eu postei ? 00:01 {Castle War} O jogador com maior desempenho da vocação sorcerer foi Sorcerer, com 3.365 pontos sobre o castelo. Ele recebeu 1x ferumbras doll como premio. viu
  20. o knight ainda nao consegue ganhar acho que está com um problema olh,a acho que os hits nao estao sendo resetados, os hit dos players 23:40 {Castle War} O evento acabou, a guild com maior desempenho foi Infinity Alliance, com 100 pontos sobre o castelo. 23:40 {Castle War} O jogador com maior desempenho da vocação sorcerer foi Sorcerer, com 3.308 pontos sobre o castelo. Ele recebeu 1x ferumbras doll como premio.
  21. local query = db.query or db.executeQuery local premios = { -- -- [chance] -- itemid,amount [{1, 5}] = {{12674}, {11754}}, [{10, 30}] = {{2390}, {2469}, {2646}, {8306,5}, {2408}}, [{80, 100}] = {{2160,1000}} } local function getGuildNameById(id) local name = "" local query = db.getResult('SELECT `name` FROM `guilds` WHERE `id` = "'.. id ..'"') if query:getID() == -1 then return true end name = query:getDataString("name") query:free() return name end function pointNumber(number) if not tonumber(number) then return false end local str = "" number = tostring(number):reverse() local count = 0 for i = 1, number:len() do count = count + 1 if count <= 3 then if str == "" then str = number:sub(i, i) else str = str..number:sub(i, i) end else count = 1 str = str.."."..number:sub(i, i) end end return str:reverse() end function onStatsChange(cid, attacker, type, combat, value) if isMonster(cid) and isPlayer(attacker) and type == STATSCHANGE_HEALTHLOSS then if isInArray({"Castle Guardian I", "Castle Guardian II", "Castle Guardian III", "Castle Guardian IV", "Castle Generator", "Ice Crystal"}, getCreatureName(cid)) then doPlayerSetStorageValue(attacker, 1827311, getPlayerStorageValue(attacker, 1827311) + value) local quant = guild_hit_count[getPlayerGuildId(attacker)] and guild_hit_count[getPlayerGuildId(attacker)] or 0 guild_hit_count[getPlayerGuildId(attacker)] = quant + value end end return true end local vocation = { "sorcerer", "druid", "paladin", "knight" } function onDeath(cid, corpse, deathList) local gid = 0 local winner = {} if isMonster(cid) and getCreatureName(cid) == "Ice Crystal" then if not getPlayingGuilds() then return true end local guilds = getPlayingGuilds() local max = 0 for index, var in pairs(guild_hit_count) do if var > max then max = var gid = index end end setGlobalStorageValue(1823999, gid) query("UPDATE `castle_dono` SET `guild_id` = '"..gid.."' WHERE `guild_id` > 0") doBroadcastMessage("{Castle War} O evento acabou, a guild com maior desempenho foi "..getGuildNameById(gid)..", com "..pointNumber(max).." pontos sobre o castelo.") updateCastleData() setGlobalStorageValue(18219113, -1) if gid > 0 then local mx = {} for _, pid in pairs(getPlayersOnline()) do if getPlayerGuildId(pid) == gid then local st = getPlayerStorageValue(pid, 1827311) local i = getPlayerVocation(pid) local index = i%4 if index == 0 then index = 4 end if not mx[i%4] then mx[i%4] = 0 end if st > mx[index] then mx[i%4] = st winner[i%4] = pid end end end for i = 1, #winner do if isPlayer(winner) then local r = math.random(1,100) for v, k in pairs(premios) do if r >= v[1] and r <= v[2] then local rand = k[math.random(#k)] itemr, amountr = rand[1], (not rand[2] and 1 or rand[1] and rand[2] or 1) end end local recompensa = doPlayerAddItem(winner, itemr, amountr) doBroadcastMessage("{Castle War} O jogador com maior desempenho da vocação " ..vocation.." foi "..getCreatureName(winner)..", com "..pointNumber(mx).." pontos sobre o castelo. Ele recebeu "..pointNumber(amountr).."x "..getItemNameById(itemr).." como premio.") doItemSetAttribute(recompensa, 'description', "Premio do jogador "..getCreatureName(winner).." ganho no evento castle war do dia "..os.date("%d/%m/%y")..".") local medal = doPlayerAddItem(winner, 10127, 1) doItemSetAttribute(medal, 'description', "Trofeu ganho pelo jogador "..getCreatureName(winner).." no evento castle war do dia "..os.date("%d/%m/%y")..".") end end end for _, pid in pairs(getPlayersOnline()) do if isInArea(getThingPos(pid), {x = 500, y = 574, z = 6}, {x = 575, y = 620, z = 6}) or isInArea(getThingPos(pid), {x = 511, y = 588, z = 5}, {x = 556, y = 607, z = 5}) or isInArea(getThingPos(pid), {x = 511, y = 588, z = 4}, {x = 556, y = 607, z = 4}) or isInArea(getThingPos(pid), {x = 511, y = 588, z = 3}, {x = 556, y = 607, z = 3}) or isInArea(getThingPos(pid), {x = 481, y = 580, z = 7}, {x = 683, y = 798, z = 7}) then doTeleportThing(pid, getTownTemplePosition(getPlayerTown(pid))) end end guild_hit_count = {} end return true end
  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...