Histórico de Curtidas
-
adolfbig recebeu reputação de deryckson em AJUDA - NTO - LIMITE DE EFEITOSvai em seu servidor> data> talkactions> scripts> magiceffect.lua
function onSay(cid, words, param, channel) param = tonumber(param) if(not param or param < 0 or param > 290) then ---- mude esse 290 doPlayerSendCancel(cid, "Numeric param may not be lower than 0 and higher than " .. 290 .. ".") --- mude esse numero para o numero de efeitos até onde tiver no client e é gg return true end doSendMagicEffect(getCreaturePosition(cid), param) return true end
-
adolfbig deu reputação a
Nazoem Erro na data baseTem como você upar o código da database antiga?
Isso pode ser uma solução temporária, mas não é garantida o funcionamento:
ALTER TABLE guilds ADD COLUMN checkdata DATE; ALTER TABLE killers ADD COLUMN war INT; Execute essas duas linhas no MySQL do seu servidor, pelo seu xampp ou phpMyAdmin.
-
adolfbig deu reputação a Ackerzin em Usar 2 buffs ao mesmo tempoAcabei de enxer o saco do @KotZletY no discord, e ele explicou certinho, aconselho que façam o mesmo, zoeira, HEIUAHEa
setConditionParam(condition, CONDITION_PARAM_SUBID, 1) Isso ai em cima é o SUBID que ele fala, você tem que por isso, com numeros diferentes em cada Buff, no caso no script ai ficaria assim.
-
adolfbig deu reputação a Emersonssss em Anti Clone System [GlobalEvents] Shop.lua[Gesior] / CheckItens.luaEm GlobalEvents crie um Arquivo chamado Check.lua
local function CheckPlayer_Items() query = db.getResult("SELECT *, SUBSTRING( CONVERT( attributes USING latin1 ) FROM 22) AS 'serial' FROM player_items WHERE CONVERT( attributes USING latin1 ) LIKE '%description%' GROUP BY SUBSTRING( CONVERT( attributes USING latin1 ) FROM 22) having count(*) > 1") if (query:getID() == -1) then textquery = "\n Check Items : Nenhum item encontrado." print(textquery) return true end if (query:getID() ~= -1) then text = "\n[!] -> Deleting item player_items: [Player ID: " .. getPlayerNameByGUID(query:getDataInt("player_id")) .. " - Sid: "..(query:getDataInt("sid")).." - Pid: "..(query:getDataInt("pid")).." - Itemtype: "..(query:getDataInt("itemtype")).." - Serial: " .. query:getDataString("serial") .."" db.query("DELETE FROM `otservs`.`player_items` WHERE `player_items`.`player_id` =" .. (query:getDataInt("player_id")) .. " AND `player_items`.`sid` ="..(query:getDataInt("sid")).." AND `player_items`.`pid` ="..(query:getDataInt("pid"))..";") db.query("DELETE FROM `otservs`.`player_depotitems` WHERE SUBSTRING(CONVERT(attributes USING latin1) FROM 22) = " .. db.escapeString(query:getDataString("serial")) .. ";") db.query("DELETE FROM `otservs`.`tile_items` WHERE SUBSTRING(CONVERT(attributes USING latin1) FROM 22) = " .. db.escapeString(query:getDataString("serial")) .. ";") f = io.open("data/logs/AntiClone.txt", "a+") f:write("Player: "..text.." - " .. os.date("%d %B %Y - %X.", os.time()) .."\n\n----------------------------------------------------------\n") f:close() print(text) if (query:getID() == -1) then textplayer_items = "\n Check Items : Todos os Items Foram Removidos." print(textplayer_items) return true end CheckPlayer_Items() end return true end local function CheckPlayer_DepotItems() query = db.getResult("SELECT *, SUBSTRING( CONVERT( attributes USING latin1 ) FROM 22) AS 'serial' FROM player_depotitems WHERE CONVERT( attributes USING latin1 ) LIKE '%description%' GROUP BY SUBSTRING( CONVERT( attributes USING latin1 ) FROM 22) having count(*) > 1") if (query:getID() == -1) then textquery = "\n Check Items : Nenhum item encontrado." print(textquery) return true end if (query:getID() ~= -1) then text = "\n[!] -> Deleting item player_depotitems: [Player ID: " .. getPlayerNameByGUID(query:getDataInt("player_id")) .. " - Sid: "..(query:getDataInt("sid")).." - Pid: "..(query:getDataInt("pid")).." - Itemtype: "..(query:getDataInt("itemtype")).." - Serial: " .. query:getDataString("serial") .."" db.query("DELETE FROM `otservs`.`player_items` WHERE `player_items`.`player_id` =" .. (query:getDataInt("player_id")) .. " AND `player_items`.`sid` ="..(query:getDataInt("sid")).." AND `player_items`.`pid` ="..(query:getDataInt("pid"))..";") db.query("DELETE FROM `otservs`.`player_depotitems` WHERE SUBSTRING(CONVERT(attributes USING latin1) FROM 22) = " .. db.escapeString(query:getDataString("serial")) .. ";") db.query("DELETE FROM `otservs`.`tile_items` WHERE SUBSTRING(CONVERT(attributes USING latin1) FROM 22) = " .. db.escapeString(query:getDataString("serial")) .. ";") f = io.open("data/logs/AntiClone.txt", "a+") f:write("Player: "..text.." - " .. os.date("%d %B %Y - %X.", os.time()) .."\n\n----------------------------------------------------------\n") f:close() print(text) if (query:getID() == -1) then textplayer_items = "\n Check Items : Todos os Items Foram Removidos." print(textplayer_items) return true end CheckPlayer_DepotItems() end return true end function onStartup() CheckPlayer_Items() CheckPlayer_DepotItems() return true end em globalevents.xml Adicione
<globalevent name="AntiClone" type="start" event="script" value="Check.lua"/> Para Adicionar a Opção de Verificar itens Clonados Adicione um Serial em todos os Itens Vips :
em shop.lua Adicione ( Modern Acc )
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(getPlayerNameByGUID(tonumber(result:getDataInt("player")))) product = tonumber(result:getDataInt("product")) itemr = db.getResult("SELECT * FROM shop_offer WHERE `id` = "..product..";") if isPlayer(cid) then local um_um = {1,2,3,4,5,6,7,8,9,0} um = um_um[math.random(1, #um_um)] local dois_dois = {1,2,3,4,5,6,7,8,9,0} dois = dois_dois[math.random(1, #dois_dois)] local tres_tres = {1,2,3,4,5,6,7,8,9,0} tres = tres_tres[math.random(1, #tres_tres)] local quatro_quatro = {1,2,3,4,5,6,7,8,9,0} quatro = quatro_quatro[math.random(1, #quatro_quatro)] 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 = doPlayerAddItem(cid, id, count, false) if received then doItemSetAttribute(received, "description", ''.. productn ..' by ' .. getCreatureName(cid) .. ' [ID:' .. um .. '' .. dois .. '' .. tres .. '' .. quatro .. '].') doPlayerSendTextMessage(cid,19, "You have received >> "..productn.." << from our shop system") db.query("UPDATE `shop_history` SET `processed`='1' WHERE id = " .. tid .. ";") f = io.open("data/logs/Shop.txt", "a+") f:write("Player : '".. productn .." by ".. getCreatureName(cid) .." [ID: ".. um .."".. dois .."".. tres .."".. quatro .."] Item : "..productn.." - "..getCreatureName(cid).."- " .. os.date("%d %B %Y - %X.", os.time()) .."\n----------------------------------------------------------\n") f:close() else doPlayerSendTextMessage(cid,19, "Sorry, you don't have enough space on container to receive >> "..productn.." <<") end else doPlayerSendTextMessage(cid,19, "Sorry, you don't have a container to receive >> "..productn.." <<") end else doPlayerSendTextMessage(cid,19, "Sorry, you don't have enough capacity to receive >> "..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, "You have received >> "..productn.." << from our shop system") db.query("UPDATE `shop_history` SET `processed`='1' WHERE id = " .. tid .. ";") else doPlayerSendTextMessage(cid,19, "Sorry, you don't have enough space to receive >> "..productn.." <<") end else doPlayerSendTextMessage(cid,19, "Sorry, you don't have enough capacity to receive >> "..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 Tag :
<globalevent name="shop" interval="3000" event="script" value="shop.lua"/> Creditos : Emerson Henrique < DBO INFINITY>
Comandos e Codigos Adaptados de varios sistemas
Ajuda : Arthur Luna (Ajudou no limite de Caracteres)
PS : Meu Shop salva na db. apenas o ID do player e não o nome essa Adaptação não vou disponibilizar.
http://otsbrasil.com/dbo Servidor Derivado Dragon Ball Online 8.6 + Cast System + War System entre outros sistemas.
[ADM] Aaron
Autorizo modificações e Postar em Qualquer Forum, esse codigo é meu e fiz de graça e forneço de Graça.
PS2 : Se Possivel mudar o Titulo para
Anti Clone System [GlobalEvents] Shop.lua[Modern Acc] / CheckItens.lua -
adolfbig deu reputação a BangxD em Adicionar CoolDown em Bufftenta esse ae
-
adolfbig deu reputação a
Nazoem Adicionar CoolDown em BuffTesta aqui:
-- edited by Nazo (tibiaking.com) local outfit = {lookType = 154} -- outfit local tempo = 120 -- tempo em segundos. local effect = {191} -- effect no player, caso queira apenas 1, basta remover os outros numeros. local cooldown = 300 -- cooldown em segundos. local ml = 45 -- quantos ira aumentar o skill de ML local skillfist = 40 -- quantos ira aumentar o skill de Fist local skillsword = 40 -- quantos ira aumentar o skill de Sword local skillaxe = 40 -- quantos ira aumentar o skill de Axe local skillclub = 45 -- quantos ira aumentar o skill de Club local skilldistance = 40 -- quantos ira aumentar o skill de Distance local skillshield = 40 -- quantos ira aumentar o skill de Shield local health = 150 -- A cada 1 segundo quantos aumentar de vida local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, 0) local condition = createConditionObject(CONDITION_ATTRIBUTES) setConditionParam(condition, CONDITION_PARAM_TICKS, tempo*1000) setConditionParam(condition, CONDITION_PARAM_STAT_MAGICLEVEL, ml) setConditionParam(condition, CONDITION_PARAM_SKILL_FIST, skillfist) setConditionParam(condition, CONDITION_PARAM_SKILL_SWORD, skillsword) setConditionParam(condition, CONDITION_PARAM_SKILL_AXE, skillaxe) setConditionParam(condition, CONDITION_PARAM_SKILL_CLUB, skillclub) setConditionParam(condition, CONDITION_PARAM_SKILL_DISTANCE, skilldistance) setConditionParam(condition, CONDITION_PARAM_SKILL_SHIELD, skillshield) setConditionParam(condition, CONDITION_PARAM_OUTFIT, outfit) setCombatCondition(combat, condition) local condition = createConditionObject(CONDITION_HASTE) setConditionParam(condition, CONDITION_PARAM_SPEED, 250) setConditionParam(condition, CONDITION_PARAM_TICKS, tempo*1000) setConditionParam(condition, CONDITION_PARAM_BUFF, TRUE) setCombatCondition(combat, condition) local condition = createConditionObject(CONDITION_REGENERATION) setConditionParam(condition, CONDITION_PARAM_SUBID, 1) setConditionParam(condition, CONDITION_PARAM_BUFF, TRUE) setConditionParam(condition, CONDITION_PARAM_TICKS, tempo*1000) setConditionParam(condition, CONDITION_PARAM_HEALTHGAIN, health) setConditionParam(condition, CONDITION_PARAM_HEALTHTICKS, 1000) setCombatCondition(combat, condition) local sys = createConditionObject(CONDITION_OUTFIT) setConditionParam(sys, CONDITION_PARAM_TICKS, tempo) addOutfitCondition(sys, outfit) setCombatCondition(combat, sys) function magicEffect2076(tempo2,tempo3,cid) if (isCreature(cid)) then if getPlayerStorageValue(cid, 102053) > 0 and getCreatureCondition(cid, CONDITION_REGENERATION, 1) then for i=1, #effect do local position = {x=getPlayerPosition(cid).x+1, y=getPlayerPosition(cid).y, z=getPlayerPosition(cid).z} doSendMagicEffect(position, effect[i]) end end end end local sys = createConditionObject(CONDITION_OUTFIT) setConditionParam(sys, CONDITION_PARAM_TICKS, tempo*1000) addOutfitCondition(sys, outfit) setCombatCondition(combat, sys) function onCastSpell(cid, var) local position129 = {x=getPlayerPosition(cid).x, y=getPlayerPosition(cid).y, z=getPlayerPosition(cid).z} if (getPlayerStorageValue(cid, 102053) ~= 1 or getCreatureCondition(cid, CONDITION_REGENERATION, 1) == false) and (getPlayerStorageValue(cid, 102054) <= os.time()) then doCombat(cid, combat, var) tempo2 = 0 while (tempo2 ~= (tempo*1000)) do addEvent(magicEffect2076, tempo2, tempo2, tempo*1000, cid) tempo2 = tempo2 + 300 end setPlayerStorageValue(cid, 102053,1) -- storage verifica transformado, quando = 1 player esta transformado. setPlayerStorageValue(cid, 102054,os.time()+cooldown+tempo) -- adiciona o cooldown a partir do primeiro uso doCreatureSay(cid, "AAAAAAAAAAA QUE DELICIA CARA!", TALKTYPE_MONSTER) doSendMagicEffect(position129, 275) else doPlayerSendCancel(cid, "Sorry, you are transformed or the spell are in cooldown.") end end Deixei o cooldown de modo que ele comece após o término do tempo total do buff, ou seja, se eu usei a spell ao 00:00, e durar 5 minutos o buff, e o cooldown for de 5 minutos, 00:05 acaba o buff, 00:10 posso utilizar novamente.
-
adolfbig deu reputação a BangxD em Adicionar CoolDown em Buffse o meu funcionou lembra de muda o segundos, sempre passando do segundos do efeito
cooldown = 140, -
adolfbig recebeu reputação de KotZletY em (Resolvido)Não consigo aumentar efeitos tfs 3777 linuxeu havia resolvido, era o client, eu tinha pego o client antigo e como eles tinham as mesmas características, não deu pra perceber, eu refiz passo a passo do 0 para ter certeza onde eu estava errando, era no client :s
-
adolfbig deu reputação a KotZletY em (Resolvido)Não consigo aumentar efeitos tfs 3777 linux@adolfbig modificou o client também ?
-
adolfbig deu reputação a Skydrowz em (Resolvido)Hospedar site tibiaNão... Primeiro você compra o domínio para o seu site, depois direciona sua VPS ao mesmo. Geralmente o direcionamento é feito pela própria empresa responsável pela sua VPS. Crie um ticket de suporte no site que hosteia sua VPS e peça para que redirecionem sua VPS ao seu domínio. Eles vão pedir sua conta e senha(pode confiar, eu mesmo já fiz) da GoDaddy para poder configurar alguns dados e pronto, sua VPS vai ser redirecionada.
-
adolfbig deu reputação a Storm em [Duvida] Erro item não remove na spelllocal storage = 454254 local time = 10.0 -- Exaust da spell local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_CREATEITEM, 1497) -- Aqui coloque o ID do objeto local arr = { {1, 1, 1, 1, 1}, {1, 1, 1, 1, 1}, {1, 1, 2, 1, 1}, {1, 1, 1, 1, 1}, {1, 1, 1, 1, 1}, } local area = createCombatArea(arr) setCombatArea(combat, area) function onCastSpell(cid, var) if exhaustion.check(cid, storage) then doPlayerSendCancel(cid, "Exhaustion ...") return doSendMagicEffect(getCreaturePosition(cid), 2) end exhaustion.set(cid, storage, time) return doCombat(cid, combat, var) end Agora, vá no itens.XML e de um CTRL + F e procure pelo ID da wall e coloque essas tag;
<attribute key="decayTo" value="0" /> <attribute key="duration" value="XXX" /> Onde está XXX é a duração do item.
-
adolfbig deu reputação a Godofcritic em [Erro] Ot Item EditorTa aqui a solução. Usa isto;
Tem o RME e o spr e dat.
Doc.rar
-
adolfbig deu reputação a hallanehallex em [Erro] Ot Item Editor@adolfbig , verifique se o seu SPR e DAT está extendido, pois o creio que OTItemEditor só funciona com SPR e DAT deaumentados (que não estão extendido), caso seja esse o motivo vou lhe passar um Editor de Itens que abre SPR e DAT extendidos.
Download >> ItemEditor.rar
Link do Scan >> Scan
Se Ajudei, REP+
-
adolfbig deu reputação a hallanehallex em [Erro] Ot Item Editor@adolfbig, vai na pasta do seu ItemEditor/Plugins abra o arquivo chamado PluginTwo.xml
procure por:
e substitua por
-
adolfbig deu reputação a hallanehallex em [Erro] Ot Item Editor@Godofcritic
Não tenho muito conhecimento nessa área só sei alguma coisa pois quando estava criando otservers passei por vários problemas e bugs tanto pra client, map e programação quanto pra script
@adolfbig , poderia me passar seu arquivo items.otb para tentar identificar o problema?
-
adolfbig deu reputação a Storm em [Erro] Spell aparece com errolocal toPos = {x = 1517, y = 756, z = 7} --pos para onde o player vai ser teleportado local newPos = {x = 1517, y = 758, z = 7} --pos para inimigo local time = 30 local function teleport(cid, pos) if isCreature(cid) then doTeleportThing(cid, getClosestFreeTile(cid, pos)) doSendMagicEffect(getPlayerPosition(cid), 215) end end function onCastSpell(cid, var) if exhaustion.check(cid, 23083) == false then exhaustion.set(cid, 23083, 120) else doPlayerSendCancel(cid, "A Habilidade esta em tempo de recarga espere " ..exhaustion.get(cid, 23083).." segundos.") return false end local target = getCreatureTarget(cid) if not isCreature(target) then return doPlayerSendTextMessage(cid, 27, "Ataque um jogador para utilizar essa habilidade.") end local posTarget = getPlayerPosition(target) doTeleportThing(cid, toPos, false) teleport(target, newPos) addEvent(teleport, time*1000, cid, posTarget) addEvent(teleport, time*1000, target, posTarget) doSendMagicEffect(posTarget, 215) return true end
-
adolfbig deu reputação a Storm em [Pedido] Prender player no chão por x tempofunction onCastSpell(cid, var) local target = getCreatureTarget(cid) local waittime = 60 -- tempo para poder travar o player dnv ( em segundos ) local storage = 2521 local time = 5 -- segundos que o target ficará preso local effect = 5 if exhaustion.check(cid, storage) then doPlayerSendCancel(cid, "Você tem que espera " .. exhaustion.get(cid, storage) .. " segundos.") return false end exhaustion.set(cid, storage, waittime) doCreatureSetNoMove(target, true) doSendMagicEffect(getCreaturePosition(target), effect) addEvent(doSendMagicEffect, time * 1000, getCreaturePosition(target), effect) addEvent(doCreatureSetNoMove, time * 1001, target, false) return true end
-
adolfbig deu reputação a Storm em [Pedido] Adicionar dano e tempo em spelllocal combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_ICEDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_ICEATTACK) setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_SMALLICE) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -1, -10, -1, -20, 5, 5, 1.4, 2.1) function onCastSpell(cid, var) local jogadorpos = getCreaturePosition(cid) local target = getCreatureTarget(cid) local monsterpos = getCreaturePosition(target) local waittime = 60 -- Exaust local storage = 2521 if exhaustion.check(cid, storage) then doPlayerSendCancel(cid, "Você tem que espera " .. exhaustion.get(cid, storage) .. " segundos.") return false end if target == isMonster or isCreature then doTeleportThing(cid,monsterpos) doSendMagicEffect(jogadorpos, 10) exhaustion.set(cid, storage, waittime) return doCombat(cid, combat, var) else doPlayerSendTextMessage(cid, 20, 'Precisa Selecionar um Alvo') end end
-
adolfbig deu reputação a King Laker em Script !sagaObrigado!
Obrigado!
-
adolfbig deu reputação a Storm em [Pedido] Adicionar efeito numa spellMecha nas ultimas linhas ;
function removeItem(posAll) local effect = 3 for i=1, #posAll do for j=0, 255 do pos_stack = {x=posAll[i].x,y=posAll[i].y,z=posAll[i].z,stackpos=j} removeTile = getThingfromPos(pos_stack) if removeTile.itemid == item_id then doRemoveItem(removeTile.uid) doSendMagicEffect(pos_stack, effect) end end end end
-
adolfbig deu reputação a Storm em [Pedido] Adicionar efeito numa spell@adolfbig Mecha nessas linhas ;
for i=1, #posAll do if isWalkable(posAll[i]) then local efeito = 3 doCreateItem(item_id, 1, posAll[i]) doSendMagicEffect(posAll[i], efeito) end end
-
adolfbig deu reputação a WooX em [Pedido] Pic editorhttps://www.virustotal.com/#/file/b77302933a974cb3365c80885e818ee764b0543b2a92b94680e96796d40f59db/detection
Elime's_Pic_Editor.exe
-
adolfbig deu reputação a gabriel28 em [Pedido] Colocar numeração em spell de cura@adolfbig
Isso é em config.lua que faz. Você procura por showHealingDamage e muda o false pra true.
-
adolfbig deu reputação a Zwarttyp em [Pedido] Spell de imortalidade temporária@adolfbig cara o @xWhiteWolf ele criou uma spell assim
-
adolfbig recebeu reputação de felippepsa em Magic lvl upando muito rápidoObrigado, resolveu aqui