
persin47
Membro
-
Registro em
-
Última visita
Histórico de Curtidas
-
persin47 deu reputação a arthurluna em [Resolvido] /ban não funcionacoloquei 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
-
persin47 deu reputação a arthurluna em [Resolvido] /ban não funcionaNada, Qualquer coisa estou aki pra ajuda o TK a evoluir
-
persin47 deu reputação a Gaonner em [LINK OFF]Global Full 150% / Server + Site + DBBom,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.
-
persin47 deu reputação a Guilherme. em Anti-Bot SystemBom, 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) !
-
persin47 deu reputação a Gaonner em Anti DivulgacaoBem,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
-
persin47 deu reputação a toty1234 em (Resolvido) [Dúvida] Problema com o hit da magiaTenta 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
-
persin47 deu reputação a Tryller em [DUVIDAa] Tutor falar em laranjaIsso é 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
-
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]
-
persin47 deu reputação a gpedro em Correção Clonar items NPC usando ElfBotSe 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