Ir para conteúdo

persin47

Membro
  • Registro em

  • Última visita

Histórico de Curtidas

  1. Gostei
    persin47 deu reputação a arthurluna em [Resolvido] /ban não funciona   
    coloquei isso em data/talkactions


    <talkaction log="yes" words="/ban" access="2" event="script" value="ban.lua"/> <talkaction log="yes" words="/unban" access="3" event="script" value="unban.lua"/> ban.lua local TYPE_ACCESS = { [1] = { "Player" }, [2] = { "Player" }, [3] = { "Account", "Player" }, [4] = { "Account", "Player" }, [5] = { "Account", "Player", "IP" } } function onSay(cid, words, param, channel) unregisterCreatureEventType(cid, "channelrequest") unregisterCreatureEventType(cid, "textedit") doPlayerSendChannels(cid, TYPE_ACCESS[getPlayerAccess(cid)]) registerCreatureEvent(cid, "Ban_Type") return true end unban.lua function onSay(cid, words, param, channel) if(param == '') then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Command param required.") return true end local account, tmp = getAccountIdByName(param), false if(account == 0) then account = getAccountIdByAccount(param) if(account == 0) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Player or account '" .. param .. "' does not exists.") return true end tmp = true end local ban = getBanData(account, BAN_ACCOUNT) if(ban and doRemoveAccountBanishment(account)) then local name = param if(tmp) then name = account end doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, name .. " has been " .. (ban.expires == -1 and "undeleted" or "unbanned") .. ".") end if(tmp) then return true end tmp = getIpByName(param) if(isIpBanished(tmp) and doRemoveIpBanishment(tmp)) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "IP Banishment on " .. doConvertIntegerToIp(ip) .. " has been lifted.") end local guid = getPlayerGUIDByName(param, true) if(guid == nil) then return true end ban = getBanData(guid, BAN_PLAYER, PLAYERBAN_LOCK) if(ban and doRemovePlayerBanishment(guid, PLAYERBAN_LOCK)) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Namelock from " .. param .. " has been removed.") end ban = getBanData(guid, BAN_PLAYER, PLAYERBAN_BANISHMENT) if(ban and doRemovePlayerBanishment(guid, PLAYERBAN_BANISHMENT)) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, param .. " has been " .. (ban.expires == -1 and "undeleted" or "unbanned") .. ".") end return true end COLOQUE ISSO EM data\creaturescripts. <event type="channelrequest" name="Ban_Type" event="script" value="ban/type.lua"/> <event type="channelrequest" name="Ban_Action" event="script" value="ban/action.lua"/> <event type="textedit" name="Ban_Finish" event="script" value="ban/finish.lua"/> action.lua local ACCESS = { [1] = { 8 }, [2] = { 1, 2, 4, 5, 7, 9 }, [3] = { 1, 2, 3, 4, 5, 6, 7, 9 }, [4] = { 1, 2, 3, 4, 5, 6, 7, 9 }, [5] = { 1, 2, 3, 4, 5, 6, 7, 9 } } function onChannelRequest(cid, channel, custom) unregisterCreatureEvent(cid, "Ban_Action") if(not custom or type(channel) ~= 'number') then doPlayerSendCancel(cid, "Invalid action.") return false end if(not isInArray(ACCESS[getPlayerAccess(cid)], channel)) then doPlayerSendCancel(cid, "You cannot do this action.") return false end local output = "Name:\n\nComment:\n" if(isInArray({1, 5}, channel)) then output = "Name:\n\n(Optional) Length:\n\nComment:\n" end doShowTextDialog(cid, 2599, output, true, 1024) doCreatureSetStorage(cid, "banConfig", table.serialize({ type = (channel > 4 and 2 or 1), subType = channel })) registerCreatureEvent(cid, "Ban_Finish") return false end finish.lua local config = { banLength = getConfigValue('banLength'), finalBanLength = getConfigValue('finalBanLength'), ipBanLength = getConfigValue('ipBanLength'), notationsToBan = getConfigValue('notationsToBan'), warningsToFinalBan = getConfigValue('warningsToFinalBan'), warningsToDeletion = getConfigValue('warningsToDeletion') } function onTextEdit(cid, item, text) unregisterCreatureEvent(cid, "Ban_Finish") if(item.itemid ~= 2599) then return true end local data = table.unserialize(getCreatureStorage(cid, "banConfig")) if(not data.type) then return true end if(text:len() == 0) then return false end text = text:explode("\n") if(not data.subType or isInArray({1, 5}, data.subType)) then if(text[1] ~= "Name:" or text[3] ~= "(Optional) Length:" or text[5] ~= "Comment:") then doPlayerSendCancel(cid, "Invalid format.") return false end local size = table.maxn(text) if(size > 6) then data.comment = "" for i = 6, size do data.comment = data.comment .. text[i] .. "\n" end else data.comment = text[6] end if(text[4]:len() > 0) then data.length = loadstring("return " .. text[4])() end elseif(text[1] ~= "Name:" or text[3] ~= "Comment:") then doPlayerSendCancel(cid, "Invalid format.") return false else data.comment = text[4] end data.name = text[2] if(data.type == 1) then errors(false) local player = getPlayerGUIDByName(data.name, true) errors(true) if(not player) then doPlayerSendCancel(cid, "Player not found.") return false end local account = getAccountIdByName(data.name) if(account == 0 or getAccountFlagValue(cid, PLAYERFLAG_CANNOTBEBANNED)) then doPlayerSendCancel(cid, "You cannot take action on this player.") return false end local warnings, warning = getAccountWarnings(account), 1 if(data.subType == 1) then if(not tonumber(data.length)) then data.length = os.time() + config.banLength if((warnings + 1) >= config.warningsToDeletion) then data.length = -1 elseif((warnings + 1) >= config.warningsToFinalBan) then data.length = os.time() + config.finalBanLength end else data.length = os.time() + data.length end doAddAccountBanishment(account, player, data.length, data.comment, getPlayerGUID(cid)) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, getPlayerNameByGUID(player) .. " (warnings: " .. (warnings + 1) .. ") has been banned.") elseif(data.subType == 2) then doAddAccountBanishment(account, player, config.finalBanLength, data.comment, getPlayerGUID(cid)) if(warnings < config.warningsToFinalBan) then warning = config.warningsToFinalBan - warnings end doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, getPlayerNameByGUID(player) .. " (warnings: " .. warning .. ") has been banned.") elseif(data.subType == 3) then doAddAccountBanishment(account, player, -1, data.comment, getPlayerGUID(cid)) if(warnings < config.warningsToDeletion) then warning = config.warningsToDeletion - warnings end doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, getPlayerNameByGUID(player) .. " (warnings: " .. warning .. ") has been deleted.") elseif(data.subType == 4) then local notations = getNotationsCount(account) + 1 if(notations >= config.notationsToBan) then data.length = os.time() + config.banLength if((warnings + 1) >= config.warningsToDeletion) then data.length = -1 elseif((warnings + 1) >= config.warningsToFinalBan) then data.length = os.time() + config.finalBanLength end doAddAccountBanishment(account, player, data.length, data.comment, getPlayerGUID(cid)) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, getPlayerNameByGUID(player) .. " (warnings: " .. (warnings + 1) .. ") has been banned reaching notations limit.") else doAddNotation(account, player, data.comment, getPlayerGUID(cid)) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, getPlayerNameByGUID(player) .. " (account notations: " .. notations .. ") has been noted.") warning = 0 end end if(warning > 0) then doAddAccountWarnings(account, warning) doRemoveNotations(account) local pid = getPlayerByGUID(player) if(pid) then doPlayerSendTextMessage(pid, MESSAGE_STATUS_WARNING, "You have been banned.") doSendMagicEffect(getThingPosition(pid), CONST_ME_MAGIC_GREEN) addEvent(valid(doRemoveCreature), 1000, pid, true) end end elseif(data.type == 2) then errors(false) local player = getPlayerGUIDByName(data.name, true) errors(true) if(not player) then doPlayerSendCancel(cid, "Player not found.") return false end local account = getAccountIdByName(data.name) if(account == 0 or getAccountFlagValue(account, PLAYERFLAG_CANNOTBEBANNED)) then doPlayerSendCancel(cid, "You cannot take action on this player.") return false end data.subType = data.subType - 4 if(data.subType == 1) then if(not tonumber(data.length)) then local warnings = getAccountWarnings(account) + 1 data.length = os.time() + config.banLength if(warnings >= config.warningsToDeletion) then data.length = -1 elseif(warnings >= config.warningsToFinalBan) then data.length = os.time() + config.finalBanLength end else data.length = os.time() + data.length end doAddPlayerBanishment(data.name, 3, data.length, data.comment, getPlayerGUID(cid)) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, getPlayerNameByGUID(player) .. " has been banned.") local pid = getPlayerByGUID(player) if(pid) then doPlayerSendTextMessage(pid, MESSAGE_STATUS_WARNING, "You have been banned.") doSendMagicEffect(getThingPosition(pid), CONST_ME_MAGIC_GREEN) addEvent(valid(doRemoveCreature), 1000, pid, true) end elseif(data.subType == 2) then doAddPlayerBanishment(data.name, 3, -1, data.comment, getPlayerGUID(cid)) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, getPlayerNameByGUID(player) .. " has been deleted.") elseif(data.subType == 3) then local warnings, notations = getAccountWarnings(account) + 1, getNotationsCount(account, player) + 1 if(notations >= config.notationsToBan) then data.length = os.time() + config.banLength if(warnings >= config.warningsToDeletion) then data.length = -1 elseif(warnings >= config.warningsToFinalBan) then data.length = os.time() + config.finalBanLength end doAddPlayerBanishment(account, 3, data.length, data.comment, getPlayerGUID(cid)) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, getPlayerNameByGUID(player) .. " has been banned reaching notations limit.") local pid = getPlayerByGUID(player) if(pid) then doPlayerSendTextMessage(pid, MESSAGE_STATUS_WARNING, "You have been banned.") doSendMagicEffect(getThingPosition(pid), CONST_ME_MAGIC_GREEN) addEvent(valid(doRemoveCreature), 1000, pid, true) end else doAddNotation(account, player, data.comment, getPlayerGUID(cid)) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, getPlayerNameByGUID(player) .. " (notations: " .. notations .. ") has been noted.") end elseif(data.subType == 4) then doAddPlayerBanishment(data.name, 1, -1, data.comment, getPlayerGUID(cid)) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, getPlayerNameByGUID(player) .. " has been reported.") elseif(data.subType == 5) then doAddPlayerBanishment(data.name, 2, -1, data.comment, getPlayerGUID(cid)) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, getPlayerNameByGUID(player) .. " has been namelocked.") local pid = getPlayerByGUID(player) if(pid) then doPlayerSendTextMessage(pid, MESSAGE_STATUS_WARNING, "You have been banned.") doSendMagicEffect(getThingPosition(pid), CONST_ME_MAGIC_GREEN) addEvent(valid(doRemoveCreature), 1000, pid, true) end end elseif(data.type == 3) then local ip = getIpByName(data.name) if(not ip) then doPlayerSendCancel(cid, "Player not found.") return false end local account = getAccountIdByName(data.name) if(account == 0 or getAccountFlagValue(account, PLAYERFLAG_CANNOTBEBANNED)) then doPlayerSendCancel(cid, "You cannot take action on this player.") return false end if(not tonumber(data.length)) then data.length = config.ipBanLength end doAddIpBanishment(ip, 4294967295, os.time() + data.length, data.comment, getPlayerGUID(cid)) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, getPlayerNameByGUID(player) .. " has been banned on IP: " .. doConvertIntegerToIp(ip) .. ".") local pid = getPlayerByGUID(player) if(pid) then doPlayerSendTextMessage(pid, MESSAGE_STATUS_WARNING, "You have been banned.") doSendMagicEffect(getThingPosition(pid), CONST_ME_MAGIC_GREEN) addEvent(valid(doRemoveCreature), 1000, pid, true) end end return false end type.lua local TYPES, ACCESS = { { event = "Ban_Action", actions = { [1] = "Banishment", [2] = "Banishment + Final Warning", [3] = "Deletion", [4] = "Notation" } }, { event = "Ban_Action", actions = { [5] = "Banishment", [6] = "Deletion", [7] = "Notation", [8] = "Report", [9] = "Lock" } }, { event = "Ban_Finish" } }, { type = { [1] = { 1 }, [2] = { 1 }, [3] = { 1, 2 }, [4] = { 1, 2 }, [5] = { 1, 2, 3 } }, action = { [1] = { 8 }, [2] = { 8 }, [3] = { 1, 4, 5, 7, 9 }, [4] = { 1, 2, 4, 5, 7, 9 }, [5] = { 1, 2, 3, 4, 5, 6, 7, 9 }, } } function onChannelRequest(cid, channel, custom) unregisterCreatureEvent(cid, "Ban_Type") if(not custom or type(channel) ~= 'number') then doPlayerSendCancel(cid, "Invalid action.") return false end local type = TYPES[channel] if(not type) then doPlayerSendCancel(cid, "Invalid action.") return false end local access = getPlayerAccess(cid) if(not isInArray(ACCESS.type[access], channel)) then doPlayerSendCancel(cid, "You cannot do this action.") return false end registerCreatureEvent(cid, type.event) if(type.actions) then access = ACCESS.action[access] if(not access or table.maxn(access) == 0) then return false end local actions = {} for _, action in ipairs(access) do local tmp = type.actions[action] if(tmp) then actions[action] = tmp end end doPlayerSendChannels(cid, actions) else doShowTextDialog(cid, 2599, "Name:\n\n(Optional) Length:\n\nComment:\n", true, 1024) doCreatureSetStorage(cid, "banConfig", table.serialize({ type = channel })) end return false end
  2. Gostei
    persin47 deu reputação a arthurluna em [Resolvido] /ban não funciona   
    Nada, Qualquer coisa estou aki pra ajuda o TK a evoluir
  3. Gostei
    persin47 deu reputação a Gaonner em [LINK OFF]Global Full 150% / Server + Site + DB   
    Bom,coloquei 150% porque to muitos caras tão colocando servers globais,e falam que é 100% , mais não chega nem perto .
    Então coloquei um.

    Ele contém :

    Items completos
    Training Offline
    Gray Island,
    Quirefang,
    Montarias (Todas),
    Magias 9.60 Full ,
    Task System 100%,
    War Of Emperium,
    Raids automaticas,
    War Castle,
    Dota,
    Zombie event,
    RookWar (Próprio),
    Fire Storm (Próprio),
    Database Completa.
    Respawns próprios e personalizados.


    O Site é um Gesior Acc sem erros com sistemas de pagamento automático (PayPal e PagSeguro), deve-se modificar os email nos scripts de pagamento.

    ----------------------------


    Downloads


    Download do Servidor: http://www.2shared.c..._Tibia_960.html
    Scan: https://www.virustot...sis/1348361601/

    Sources do Servidor: http://www.2shared.c...ources_960.html

    Imagens :






    Obs:
    *Não tente usar teleports falantes;
    *Distro está em 32bits: TBOT.exe! Mas acompanha sources.
    *Modifique os emails nos sitemas de pagamento.
    *Retirei o mapa pra fazer o Scan.

    ---------------------------------

    Créditos :
    - Walef Xavier - Pelo Global

    - Gaonner - Trazer um global full pro tk.
  4. Gostei
    persin47 deu reputação a Guilherme. em Anti-Bot System   
    Bom, esse é um sistema anti-bot que vai funcionar da seguinte forma:

    O Jogador fica online por 15 minutos
    [Antibot]: Por favor escreva !antibot 5%8&9^2*3 sem simbolos. Ex: code: 1*5^8¿6%9 -> !antibot 15869.
    Lembre-se você tem 2 minutos para fazer isso ou será kickado.
    Jogador: !antibot 58923
    [Antibot]: Aproveite seu tempo!

    Caso o código esteja incorreto:

    [Antibot]: Voce tem mais 2 chances para tentar novamente.

    Caso o jogador escreva o código 3 vezes errado, será kickado, ou então, caso o jogador não escrever o código nos próximos 2 minutos (configurável) será kickado também.

    Primeiro vá em data/creaturescripts/scripts/ e crie um arquivo chamado antibot.luae então cole:


    local symbols = {"*", "^", "¿", "%", "&", "$"} local timeBetweenQuestion = 15 * 60 --15 minutes local timeToKick = 2 * 60 --2 minutes local timeStorage = 65117 local codeStorage = 65118 local kickStorage = 65119 local timesStorage = 65121 function onThink(cid, interval) if not isPlayer(cid) or getPlayerGroupId(cid) >= 3 then return end if getCreatureStorage(cid, timeStorage) < 1 then doCreatureSetStorage(cid, timeStorage, os.time() + timeBetweenQuestion) end if getCreatureStorage(cid, kickStorage) > 0 and os.time() >= getCreatureStorage(cid, kickStorage) then local tmp = {timeStorage, kickStorage, timesStorage, codeStorage} for i = 1, #tmp do doCreatureSetStorage(cid, tmp[i], 0) end return doRemoveCreature(cid) end if os.time() >= getCreatureStorage(cid, timeStorage) then local code, set = "", 0 set = math.random(1, 100000) local s, e = 1, 1 for i = 1, string.len(set) do code = (code == "" and string.sub(set, s, e) or code .. symbols[math.random(#symbols)] .. string.sub(set, s, e)) s, e = s + 1, e + 1 end doCreatureSetStorage(cid, codeStorage, set) doCreatureSetStorage(cid, kickStorage, os.time() + timeToKick) doCreatureSetStorage(cid, timeStorage, os.time() + timeBetweenQuestion) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "[Antibot]: Por favor escreva !antibot " .. code .. " sem simbolos. Ex: code: 1*5^8¿6%9 -> !antibot 15869. Lembre-se voce tem " .. timeToKick / 60 .. " minutos para fazer isso ou sera kickado.") end return end Agora cole isso em data/creaturescripts/creaturescripts.xml: <event type="think" name="Antibot" event="script" value="antibot.lua"/> Cole isso em data/creaturescripts/scripts/login.lua: local timeStorage = 65117 local codeStorage = 65118 local kickStorage = 65119 local timesStorage = 65121 registerCreatureEvent(cid, "Antibot") doCreatureSetStorage(cid, codeStorage, 0) doCreatureSetStorage(cid, kickStorage, 0) doCreatureSetStorage(cid, timesStorage, 0) doCreatureSetStorage(cid, timeStorage, 0) Agora vá em data/talkactions/scripts,crie um arquivo criado antibot.lua e cole: local codeStorage = 65118 local kickStorage = 65119 local timesStorage = 65121 local times = 3 function onSay(cid, words, param, channel) if getCreatureStorage(cid, codeStorage) == 0 then return doPlayerSendCancel(cid, "Not yet.") elseif tonumber(param) == tonumber(getCreatureStorage(cid, codeStorage)) then doCreatureSetStorage(cid, codeStorage, 0) doCreatureSetStorage(cid, kickStorage, 0) doCreatureSetStorage(cid, timesStorage, 0) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "[Antibot]: Aproveite seu tempo!") return true else if getCreatureStorage(cid, timesStorage) < 0 then doCreatureSetStorage(cid, timesStorage, 0) end doCreatureSetStorage(cid, timesStorage, getCreatureStorage(cid, timesStorage) + 1) if getCreatureStorage(cid, timesStorage) == times then doCreatureSetStorage(cid, codeStorage, 0) doCreatureSetStorage(cid, kickStorage, 0) doCreatureSetStorage(cid, timesStorage, 0) doRemoveCreature(cid) return true else return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "[Antibot]: Voce tem " .. times - getCreatureStorage(cid, storageTimes) .. " oportunidades para tentar novamente.") end end return true end Agora cole isso em data/talkactions/talkactions.xml: <talkaction words="!antibot" event="script" value="antibot.lua"/> Caso você queria deixar o jogador banido por 1 (uma) hora, coloque isto: return doAddAccountBanishment(getPlayerAccountId(cid),getPlayerGUID(cid), os.time() + 1*60*60, 12, 7, "Away from keyboard botter") and doRemoveCreature(cid) No lugar de: return doRemoveCreature(cid)

    E isso é tudo pessoal, aproveitem o código, que por sinal, foi completamente feito por darkhaos com alguma colaboração de Gomgom e uma pequena parte minha, que deixei as frases em Português (BR) !
  5. Gostei
    persin47 deu reputação a Gaonner em Anti Divulgacao   
    Bem,não vou dar explicações, esse código é da otland,e eu coloquei aqui no Tibiaking pra disposição.
    Pois to vendo sites vendendo esse code.
    Esse code impede que qualquer jogador fale uma frase com .servegame / .no-ip

    Vá em game.cpp e procure por:








    Em baixo você adiciona:










    Se você quiser adicionar mais de 2 tipos de servidores (.servegame;no-ip)
    Adicione(exemplo) :


    int(text.find("otglobal.com")) > 0)



    Ficando assim :






    --------------

    Salve,Compile,e pronto,seu console anti divulgação está pronto.

    Créditos :
    - Summ - Criador
    - Gaonner - Trazer o Conteúdo
  6. Gostei
    persin47 deu reputação a toty1234 em (Resolvido) [Dúvida] Problema com o hit da magia   
    Tenta isso, dei uma modificada, qe o dano vai ser mais baseado no level do que no ml ...
    Testa ae e responde se ficou bom


    local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_ICEDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_ICETORNADO) function onGetFormulaValues(cid, level, maglevel) local min = -((level*5)+(maglevel/10)+15) local max = -((level*6)+(maglevel/8)+30) return min, max end setCombatCallback(combat, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues") local area = createCombatArea(AREA_CROSS5X5) setCombatArea(combat, area) function onCastSpell(cid, var) return doCombat(cid, combat, var) end
  7. Gostei
    persin47 deu reputação a Tryller em [DUVIDAa] Tutor falar em laranja   
    Isso é flags
    seu grupo de tutor deve estar sem flags
    Para ver os flags que voce deseja ultilize esta ferramenta http://hem.bredband.net/johannesrosen/playerflags.html
    Marque a opção "Talk orange in help-channel"
    Depois veja o valor e coloque no seu groups.xml o valor da flag
    Depois não esqueça de dar um Rep++ pra eu auhauaa

    Espero que e ajude
  8. Gostei
    persin47 deu reputação a Gustavo Ferreira em Global 8.70 Full [Chaito Soft e Otprojects]   
    Global Chaito Soft 8.70




    Servidor que está sendo vendido pela chaito soft e otshop




    Fala galera estou aqui para apresentar Global que a chaito soft vende no seu site, Bom estou disponibilizando grátis para vocês, Otimo servidor testei aqui , Agora de graça para vocês que querem um bom server global, Confira abaixo alguns detalhes do servidor!!!!










    • Cidades:
    ├ Carlin
    ├ Thais
    ├ Ab'Dendriel
    ├ Venore
    ├ Liberty Bay
    ├ Outlaw Camp
    ├ Ankrahmun
    ├ Zao + Razachai!
    ├ Edron
    ├ Kazordoon
    ├ Port Hope
    ├ Svargrund
    ├ Yalahar
    ├ Darashia
    └ e muitas outras..






    • O Que Contêm no Servidor:
    - War of Emperium (Evento)
    - Zombie Attack (Evento)
    - Raids Automáticas (Script)
    - Bonus 50+ (Script)
    - Database completa (DB)
    - Wrath of Emperor (Mapa-quest)
    - Zao e New Banuta Piece (Mapa)
    - TFS 0.4 (Distro: Anti-Divulgação, War System e No-otbm check)
    - Task 100% RL (Script: Com ranking e bonus bosses)
    - War System com escudos (Script)
    - VIP System (Script)
    - 10 Cidades e 15 Ilhas VIPS (Mapa)





    • Lista Das Principais Quests (Todas Funcionando 100%):



    The Annihilator Quest
    ├ Demon Helmet Quest
    ├ The Elemental Spheres Quest
    ├ Firewalker Boots Quest
    ├ The Inquisition Quest
    ├ Killing in the Name of... Quest
    ├ The Pits of Inferno Quest
    ├ Shadows of Yalahar Quest
    ├ Children of the Revolution Quest
    ├ The New Frontier Quest
    ├ The Demon Oak Quest
    ├ Tomes of Knowledge Quest
    └ In Service of Yalahar Quest








    • Proibido postar?:





    Me manda PM se achar ruim! Ta ae de GRAÇA!





    Lembrando que o servidor está sem DLLS e Distro Mais vou Disponibilizar uma aqui!





    DOWNLOADS





    MAPA
    http://www.mediafire...qk0yyueloljej9t




    DISTRO E SOURCES





    [Distro 0.4]



    [Executável]
  9. Gostei
    persin47 deu reputação a gpedro em Correção Clonar items NPC usando ElfBot   
    Se você já teve um servidor, já sabe como que é isso. Por falha humana, em todos npcs esquecerem de definir um valor minimo para os itens agrupáveis ser vendido, com isso se você coloca-se no elfbot auto buyitems IDdoITEM 0 ele iria comprar e não pagar nada. Para os que não corrigiram pelos NPCS tambem há como corrigir pelas sources.

    npc.cpp

    if(NpcState* npcState = getState(player, true)) { npcState->amount = amount; npcState->subType = count; npcState->itemId = itemId; npcState->buyPrice = getListItemPrice(itemId, SHOPEVENT_BUY); npcState->ignoreCap = ignoreCap; npcState->inBackpacks = inBackpacks; const NpcResponse* response = getResponse(player, npcState, EVENT_PLAYER_SHOPBUY); executeResponse(player, npcState, response); } substitua por if(NpcState* npcState = getState(player, true)) { if(amount <= 0){ amount = 1; } npcState->amount = amount; npcState->subType = count; npcState->itemId = itemId; npcState->buyPrice = getListItemPrice(itemId, SHOPEVENT_BUY); npcState->ignoreCap = ignoreCap; npcState->inBackpacks = inBackpacks; const NpcResponse* response = getResponse(player, npcState, EVENT_PLAYER_SHOPBUY); executeResponse(player, npcState, response); }

    Créditos: Matheus Mkalo

Informação Importante

Confirmação de Termo