-
Total de itens
1347 -
Registro em
-
Última visita
-
Dias Ganhos
36
Tudo que Oneshot postou
-
Verifique se arma editada tem todas as propriedades de um bow ou crossbow.
-
@tonynamoral Já tive o trabalho de fazer o script e testar, não darei suporte por instalação incorreta. @SmiX Só quis dizer que existe uma função que adiciona níveis de skill. @Slicer Funciona. Só colocar SKILL__MAGLEVEL no lugar de SKILL_FIST.
-
@Roksas Não vou falar nada, mas estude mais Lua, ok? Pois desse jeito, você está parecendo o SkyLigh @Maenilse local damageTypes = {COMBAT_HOLYDAMAGE, COMBAT_FIREDAMAGE, COMBAT_ICEDAMAGE, COMBAT_PHYSICALDAMAGE, COMBAT_ENERGYDAMAGE, COMBAT_EARTHDAMAGE, COMBAT_DEATHDAMAGE} local effects = {11, 11, 11, 11, 11, 11, 11} local shootEffects = {11, 17, 18, 19, 7, 27, 28} local combats = {} for i = 0, 6 do combats[i] = createCombatObject() setCombatParam(combats[i], COMBAT_PARAM_TYPE, (damageTypes[i] or 255)) setCombatParam(combats[i], COMBAT_PARAM_EFFECT, (effects[i] or 255)) setCombatParam(combats[i], COMBAT_PARAM_DISTANCEEFFECT, (shootEffects[i] or 255)) setCombatFormula(combats[i], COMBAT_FORMULA_LEVELMAGIC, -25, -25, -25, -25) end function onUseWeapon(cid, var) for i = 0, (#combats - 1) do addEvent(doCombat, i * 100, cid, combats[i], var) end return true end
-
Uma olhada no LUA_FUNCTIONS localizado em data/docs doPlayerAddSkill(cid, skill[, amount = 1[, round = false]]) local config = { skillName = SKILL_FIST, skillAmount = 5, magicEffect = CONST_ME_MAGIC_BLUE, removeable = "yes" } --[[ SKILL_FIST SKILL_CLUB SKILL_SWORD SKILL_AXE SKILL_DISTANCE SKILL_SHIELD SKILL_FISHING SKILL__MAGLEVEL SKILL__LEVEL ]]-- function onUse(cid, item, fromPosition, itemEx, toPosition) doPlayerAddSkill(cid, config.skillName, config.skillAmount, true) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Your ".. SKILL_NAMES[config.skillName] .." has grown up.") doSendMagicEffect(fromPosition, config.magicEffect) if getBooleanFromString(config.removeable) == true then doRemoveItem(item.uid, 1) end return true end
-
pedido Pedido Colocar Tempo Para Responder O Sistema Anti-Bot. (Help Aki Vodkart)
pergunta respondeu ao KennyConrad de Oneshot em Scripts
Odeio quem pede ajuda para um scripter específico. RadBR Antibot -
Ah, claro, você quer utilizar Burst Arrow com Fire Axe. Faz muito sentido, isso.
-
[Encerrado] [Socorro] E So Eu Dar /clean Que O Ot Cai
tópico respondeu ao luizhenrique99 de Oneshot em Tópicos Sem Resposta
Procure isso no seu config.lua storeTrash Deixe assim storeTrash = true Abraços. -
Criei um novo resolutor de equações, agora ele detecta o grau da equação e ensina a resolver por passos. Para resolver equações do segundo grau: /calc 3x²-27 Lembrando que tudo é muito robótico, então, ele vai calcular até o fim, e se a raiz do discriminante for quebrada, ele dará raízes do tipo: -5.23123451241290439214 +3.21312309129492149 Abraços.
-
if getPlayerWeaponId(cid) == 7438 then return doCombat(cid, combat, var) end Estranho, aqui funcionou muito bem. O ID deve ser modificado ali naquela linha, abraços.
-
Provavelmente seu servidor possui um arquivo chamado burst_arrow.lua na pasta data/weapons/scripts, abra-o, apague tudo que há dentro dele e cole o seguinte conteúdo abaixo: local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_BLOCKARMOR, 1) setCombatParam(combat, COMBAT_PARAM_BLOCKSHIELD, 1) setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_FIREAREA) setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_BURSTARROW) setCombatFormula(combat, COMBAT_FORMULA_SKILL, 1, 0, 1, 0) local area = createCombatArea({ {1, 1, 1}, {1, 3, 1}, {1, 1, 1} }) setCombatArea(combat, area) local function getPlayerWeaponId(cid) -- By Oneshot local ret = 0 for slot = 6, 5, -1 do local item = getPlayerSlotItem(cid, slot) if item.itemid > 0 and isInArray({1, 2, 3, 4}, getItemInfo(item.itemid).weaponType) then ret = item.itemid break end end return ret end function onUseWeapon(cid, var) if getPlayerWeaponId(cid) == 7438 then return doCombat(cid, combat, var) end doPlayerSendCancel(cid, "You cannot use this arrow with this ordinary bow.") return false end
-
passa seu skype ae \o/
-
Tanto membros quanto alguns da equipe. me add msn falar com você skydangerous@xtibia.com me add também, quero falar com vcs henrom@live.com
-
Me pediram por mensagem pessoal, uma talkaction que resolvesse strings de equações de primeiro grau. Fiz um pog interessante e ela está funcionando bem legal. 10:28 1x+3x+4x+88 = 0 10:28 8x = -88 10:28 x = -11 1. Crie um arquivo de nome calc.lua em talkactions/scripts, cole o conteúdo abaixo: local delay = 500 function onSay(cid, words, param, channel) local a = 0 local b = 0 local c = 0 doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, param .." = 0") for s, x2 in string.gmatch(param, "([-+]*)%s*(%d+)x²") do param = string.gsub(param, "[-+]*%s*%d+x²", "") a = a + tonumber(s .. x2) end for s, x in string.gmatch(param, "([-+]*)%s*(%d+)x") do param = string.gsub(param, "[-+]*%s*%d+x", "") b = b + tonumber(s .. x) end for s, n in string.gmatch(param, "([-+]*)%s*(%d+)") do c = c + tonumber(s .. n) end if param == "" then return doPlayerSendCancel(cid, "O comando precisa de uma equação válida.") end addEvent(doPlayerSendTextMessage, delay, cid, MESSAGE_STATUS_CONSOLE_RED, "1. Detectar o grau da equação.") if a > 0 then local delta = (math.pow(b, 2) - (4 * a * c)) local x1, x2 if delta >= 0 then x1 = ((-b - math.sqrt(delta)) / 2 * a) x2 = ((-b + math.sqrt(delta)) / 2 * a) end addEvent(doPlayerSendTextMessage, 2 * delay, cid, MESSAGE_STATUS_CONSOLE_BLUE, "Essa é uma equação de segundo grau.") addEvent(doPlayerSendTextMessage, 3 * delay, cid, MESSAGE_STATUS_CONSOLE_RED, "2. Organizar a equação.") addEvent(doPlayerSendTextMessage, 4 * delay, cid, MESSAGE_STATUS_CONSOLE_BLUE, "".. a .."x²".. (b < 0 and (" - ".. (b * -1)) or (" + ".. b)) .."x".. (c < 0 and (" - ".. (c * -1)) or (" + ".. c)) .." = 0") addEvent(doPlayerSendTextMessage, 5 * delay, cid, MESSAGE_STATUS_CONSOLE_RED, "2. Calcular o discriminante da equação.") addEvent(doPlayerSendTextMessage, 6 * delay, cid, MESSAGE_STATUS_CONSOLE_BLUE, "D = b² - 4ac = ".. delta .."") if delta < 0 then addEvent(doPlayerSendTextMessage, 7 * delay, cid, MESSAGE_STATUS_CONSOLE_RED, "O discriminante é menor que 0, a equação não possui raízes reais.") return true elseif delta == 0 then addEvent(doPlayerSendTextMessage, 7 * delay, cid, MESSAGE_STATUS_CONSOLE_RED, "O discriminante é igual a 0, a equação possui duas raízes iguais.") addEvent(doPlayerSendTextMessage, 8 * delay, cid, MESSAGE_STATUS_CONSOLE_BLUE, "X¹ = X² = -b / 2 * a = ".. x1 .."") return true else addEvent(doPlayerSendTextMessage, 7 * delay, cid, MESSAGE_STATUS_CONSOLE_RED, "O discriminante é maior que 0, a equação possui duas raízes diferentes.") addEvent(doPlayerSendTextMessage, 8 * delay, cid, MESSAGE_STATUS_CONSOLE_BLUE, "X = (-b - ²D) / 2 * a = ".. x1 .."") addEvent(doPlayerSendTextMessage, 9 * delay, cid, MESSAGE_STATUS_CONSOLE_BLUE, "X² = (-b + ²D) / 2 * a = ".. x2 .."") return true end addEvent(doPlayerSendTextMessage, 10 * delay, cid, MESSAGE_STATUS_CONSOLE_RED, "Fácil, né?") elseif b > 0 then local x = -c/b addEvent(doPlayerSendTextMessage, 2 * delay, cid, MESSAGE_STATUS_CONSOLE_BLUE, "Essa é uma equação de primeiro grau.") addEvent(doPlayerSendTextMessage, 3 * delay, cid, MESSAGE_STATUS_CONSOLE_RED, "2. Organizar a equação.") addEvent(doPlayerSendTextMessage, 4 * delay, cid, MESSAGE_STATUS_CONSOLE_BLUE, "".. b .."x".. (c < 0 and (" - ".. (c * -1)) or (" + ".. c)) .." = 0") addEvent(doPlayerSendTextMessage, 5 * delay, cid, MESSAGE_STATUS_CONSOLE_RED, "3. Passe o que não está multiplicando x para o outro lado.") addEvent(doPlayerSendTextMessage, 6 * delay, cid, MESSAGE_STATUS_CONSOLE_BLUE, "".. b .."x = ".. -c .."") addEvent(doPlayerSendTextMessage, 7 * delay, cid, MESSAGE_STATUS_CONSOLE_RED, "4. Passe o que está multiplicando x para outro lado, dividindo.") addEvent(doPlayerSendTextMessage, 8 * delay, cid, MESSAGE_STATUS_CONSOLE_BLUE, "x = ".. x .."") addEvent(doPlayerSendTextMessage, 9 * delay, cid, MESSAGE_STATUS_CONSOLE_RED, "Facil, né?") else addEvent(doPlayerSendTextMessage, 2 * delay, cid, MESSAGE_STATUS_CONSOLE_BLUE, "Essa não é uma equação válida.") end return true end 2. Adicione a seguinte linha no seu talkactions.xml <talkaction words="/calc" event="script" value="calc.lua"/> Bugs conhecidos - Você precisa colocar todos os coeficientes, mesmo que seja 1, do contrário o burro sistema não consegue resolver. - Se você embaralhar muito a equação, talvez ocorra algum erro, por exemplo: 1x + 44 + 32 - 1x + 2x + 44 - 2x + 3x - 32 + 1x Abraços.
-
Aulas Básicas Com O Sr. Iunix: 1# Lua, O Que É?.
tópico respondeu ao iunix de Oneshot em Tutoriais de Scripting
Parabéns, meu filhote. Que bom que você voltou a ativa e migrou para cá. Ótimo tutorial, de fato. \o/ -
Nome: Oneshot's Anti-bot Autor: Oneshot Tipo: Sistema Descrição Este é um sistema de anti-bot simples, que envia um código numérico de 6 dígitos para cada jogador online e pede para que, através de um comando, este código de verificação seja ativado. O jogador tem um limite de tempo para fazer isso, e caso não faça, este é banido por um tempo configurável ou então, preso em um certo lugar do mapa. Instalação 1. Em data/lib, crie um arquivo chamado antibot.lua e cole o conteúdo abaixo: ANTIBOT_STORAGE_1 = 109001 ANTIBOT_STORAGE_2 = 109002 ANTIBOT_STORAGE_3 = 109003 ANTIBOT_TYPE = 2 -- [1] = Banimento, [2] = Prisão ANTIBOT_DURATION = 120 -- Em segundos ANTIBOT_DURATION_DELAY = 10 -- Em segundos ANTIBOT_MESSAGE = "[Oneshot's Anti-bot]\nSeu código de verificação é %s, responda através do comando !antibot, caso contrário, será ".. (ANTIBOT_TYPE == 1 and "banido" or "preso") ..".\nVocê têm %s segundos." ANTIBOT_BAN_TIME = 24 * 60 * 60 ANTIBOT_PRISON = {x = 1019, y = 867, z = 7} ANTIBOT_PRISON_FROMPOSITION = {x = 1018, y = 865, z = 7} ANTIBOT_PRISON_TOPOSITION = {x = 1020, y = 869, z = 7} ANTIBOT_PRISON_DURATION = 3 * 60 * 60 ANTIBOT_TEMPLE = {x = 1027, y = 912, z = 5} function AntiBot(cid) if not isCreature(cid) then return end local time = getCreatureStorage(cid, ANTIBOT_STORAGE_1) local answer = getCreatureStorage(cid, ANTIBOT_STORAGE_2) if getPlayerAccess(cid) >= 3 or not(getPlayerAccountManager(cid) == MANAGER_NONE) then return end if isInRange(getThingPosition(cid), ANTIBOT_PRISON_FROMPOSITION, ANTIBOT_PRISON_TOPOSITION) then return end if time == -1 and answer == -1 then return end if os.time() >= time then doCreatureSetStorage(cid, ANTIBOT_STORAGE_1, -1) doCreatureSetStorage(cid, ANTIBOT_STORAGE_2, -1) doBroadcastMessage("[ANTI-BOT] O jogador ".. getCreatureName(cid) .." foi ".. (ANTIBOT_TYPE == 1 and "banido" or "preso") .." por uso de bot.") if ANTIBOT_TYPE == 1 then doAddAccountBanishment(getPlayerGUID(cid), 0, (os.time() + ANTIBOT_BAN_TIME), 12, 3, "[ANTI-BOT]") doRemoveCreature(cid) else doTeleportThing(cid, ANTIBOT_PRISON) doCreatureSetStorage(cid, ANTIBOT_STORAGE_3, os.time() + ANTIBOT_PRISON_DURATION) addEvent(function() if isCreature(cid) then doTeleportThing(cid, ANTIBOT_TEMPLE) end end, ANTIBOT_PRISON_DURATION * 1000) end else doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, ANTIBOT_MESSAGE:format(answer, (time - os.time()))) addEvent(AntiBot, ANTIBOT_DURATION_DELAY * 1000, cid) end end 2. Crie um arquivo chamado antibot.lua em data/globalevents/scripts, cole o conteúdo abaixo function onThink(interval) for _, cid in ipairs(getPlayersOnline()) do local answer = math.random(100000, 999999) doCreatureSetStorage(cid, ANTIBOT_STORAGE_1, os.time() + ANTIBOT_DURATION) doCreatureSetStorage(cid, ANTIBOT_STORAGE_2, answer) AntiBot(cid) end return true end Adicione a seguinte linha em globalevents.xml <globalevent name="antibot" interval="900" event="script" value="antibot.lua"/> 3. Crie um arquivo em data/creaturescripts/scripts, cole o conteúdo abaixo function onLogin(cid) local time = getCreatureStorage(cid, ANTIBOT_STORAGE_1) local answer = getCreatureStorage(cid, ANTIBOT_STORAGE_2) if answer == -1 then return true end if isInRange(getThingPosition(cid), ANTIBOT_PRISON_FROMPOSITION, ANTIBOT_PRISON_TOPOSITION) then if os.time() > getCreatureStorage(cid, ANTIBOT_STORAGE_3) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Seu tempo de prisão acabou.") doTeleportThing(cid, ANTIBOT_TEMPLE) else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você ainda está preso por uso de bot.") end return true end if os.time() > ANTIBOT_STORAGE_1 then doCreatureSetStorage(cid, ANTIBOT_STORAGE_1, os.time() + ANTIBOT_DURATION) return true end AntiBot(cid) return true end Adicione a seguinte linha em seu creaturescripts.xml <event type="login" name="Antibot" event="script" value="antibot.lua"/> 4. Crie um arquivo chamado antibot.lua em data/talkactions/scripts, cole o conteúdo abaixo function onSay(cid, words, param, channel) param = tonumber(param) or "" local time = getCreatureStorage(cid, ANTIBOT_STORAGE_1) local answer = getCreatureStorage(cid, ANTIBOT_STORAGE_2) if time == -1 and answer == -1 then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "O anti-bot não está ativado.") return true end if param == "" then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Digite uma senha de verificação válida.") return true end if param ~= answer then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você digitou a senha incorreta. Digite corretamente, caso contrário, será banido.") return true end doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Ótimo! Você digitou a resposta correta. O anti-bot foi desativado.") doCreatureSetStorage(cid, ANTIBOT_STORAGE_1, -1) doCreatureSetStorage(cid, ANTIBOT_STORAGE_2, -1) return true end Adicione a seguinte linha em seu talkactions.xml <talkaction words="!antibot" event="script" value="antibot.lua"/> Você pode fazer várias configurações na lib do sistema ANTIBOT_STORAGE_1 = 109001 ANTIBOT_STORAGE_2 = 109002 ANTIBOT_STORAGE_3 = 109003 ANTIBOT_TYPE = 2 -- [1] = Banimento, [2] = Prisão ANTIBOT_DURATION = 120 -- Em segundos ANTIBOT_DURATION_DELAY = 10 -- Em segundos ANTIBOT_MESSAGE = "[Oneshot's Anti-bot]\nSeu código de verificação é %s, responda através do comando !antibot, caso contrário, será ".. (ANTIBOT_TYPE == 1 and "banido" or "preso") ..".\nVocê têm %s segundos." ANTIBOT_BAN_TIME = 24 * 60 * 60 ANTIBOT_PRISON = {x = 1019, y = 867, z = 7} ANTIBOT_PRISON_FROMPOSITION = {x = 1018, y = 865, z = 7} ANTIBOT_PRISON_TOPOSITION = {x = 1020, y = 869, z = 7} ANTIBOT_PRISON_DURATION = 3 * 60 * 60 ANTIBOT_TEMPLE = {x = 1027, y = 912, z = 5} Como a duração do ban, a posição da prisão, o tempo de prisão, dentre outras coisas. Como não consegui fazer funcionar o banimento de um jogador só na versão 0.3.6pl1, sendo isto possível apenas na 0.4.0, resolvi colocar para o tipo de banimento ser na conta toda. Abraços.
-
Deixa eu ver se eu entendi, você queria promoção, aí não quiseram te dar, aí você pediu demissão da equipe. Legal, cara.
-
Não curto puzzles, mas postei pela amizade, flw.
-
Seu lugar não é aqui, favor voltar para OTBR.
-
Arrumei a framerate da gif e coloquei para ir e voltar.
-
Tópico Musical 2.0
-
O Que Vocês Gostariam De Aprender A Fazer No Photoshop?
tópico respondeu ao DiogoTemporario de Oneshot em Lixeira Pública
Tá bom então, quero aprender tuning virtual, tipografias e pen tool para fazer logomarcas. -
O Que Vocês Gostariam De Aprender A Fazer No Photoshop?
tópico respondeu ao DiogoTemporario de Oneshot em Lixeira Pública
Como usar o smudge seguindo o flow de uma sign, e também aprender ótimas configurações de smudge e os melhores brushes para a ferramenta.
-
Quem Está Navegando 0 membros estão online
- Nenhum usuário registrado visualizando esta página.