Tudo que Lyu postou
-
(Resolvido)[Cast System] OTX 8.60
Sim, os arquivos spectators.cpp/spectators.h são responsáveis por enviar bytes aos espectadores. Por alguma razão, sua source não possui as funções informadas no erro do console.
- EMOTE SPELLS DINÂMICO!
-
Anti Divulgação em LUA
tem sim, porém o script está adaptado para a concatenação com pontos, porque um tempo atrás lembro que havia um problema de palavras, por exemplo "internet' que contém "net" e bloqueava a mesma. Se eu arranjar um tempinho, posso dar uma olhada nesse detalhe e qualquer coisa, atualizo o script.
-
(Resolvido)anti mc
olhe de novo, eu editei o post
-
(Resolvido)anti mc
Provavelmente o erro ocorre se o player deslogar imediatamente após o login. Repita esse processo de deslogamento imediato e veja se realmente ocorre erros, depois, você pode testar se minha modificação resolveu : local config = { max = 4, -- Número de players permitido com o mesmo IP. group_id = 1 -- Kikar apenas player com o group id 1. } local accepted_ip_list = {} -- Lista dos players permitidos a usar MC, exemplo: {"200.85.3.60", "201.36.5.222"} local function antiMC(p) if isCreature(p.pid) then if #getPlayersByIp(getPlayerIp(p.pid)) >= p.max then doRemoveCreature(p.pid) end end return true end function onLogin(cid) if not isPlayer(cid) then return true end if getPlayerGroupId(cid) <= config.group_id then if isInArray(accepted_ip_list,doConvertIntegerToIp(getPlayerIp(cid))) == false then addEvent(antiMC, 1000, {pid = cid, max = config.max+1}) end end return true end
- Anti Divulgação em LUA
-
Anti Divulgação em LUA
Olá @You Know Nothing, vejo que você está afim de utilizar este meu script por mais antigo que seja. Bom, aqui está a correção para o seu problema : local domains = {'org', 'no-ip', 'net', 'com', 'pl', 'biz', 'servegame', 'br', 'sytes', 'info'} local symbols = {'.', ',', ';', '-'} function onSay(cid, words) for _, w in ipairs(domains) do for _, s in ipairs(symbols) do if(words:lower():gsub(' ', ''):find(s .. w, 1, true)) then return doPlayerSendCancel(cid, 'Você não tem permissão para divulgar outros servidores.') end end end end
-
(Resolvido)Ajuda Script de Ban
query:free() somente se a consulta for um sucesso amiguinhos, segue abaixo a correção : function isBanned(GUID) local query = db.getResult("SELECT active FROM bans WHERE param = "..GUID) if query:getID() > -1 then repeat if query:getDataInt("active") == 1 then return true end until not query:next() query:free() -- somente se query:getID() for maior que -1 end return false end
- Aprenda a utilizar 'Metamethods' em TFS 0.4
- Aprenda a utilizar 'Metamethods' em TFS 0.4
-
Acrescentar tempo em um script.
3600 x 720 = 2.592.000
-
(Resolvido)Ganhar mais exp com cast aberto.
Boa tarde, só com adaptação, pois 0.4 são vários estados LUA.
-
(Resolvido)Domar Creature
É a constante TALKTYPE_MONSTER_SAY, pode remover deixando a função doCreatureSay apenas com dois parâmetros.
-
(Resolvido)Domar Creature
Beleza! Fiz simpleszinho pra você testar a principal funcionalidade, e também porque estou enrolado hoje.
-
(Resolvido)Domar Creature
local monsters = { ['Dragon'] = {chance = 25, rewarditem = {2352, 1}}, ['Dragon Lord'] = {chance = 14, rewarditem = {8858, 1}} } function onUse(cid, item, fromPosition, itemEx, toPosition) if not isMonster(itemEx.uid) then return false end local monster = monsters[getCreatureName(itemEx.uid)] if not monster then return doPlayerSendCancel(cid, 'Esse monstro não é capturável.') end if monster.chance < math.random(100) then doCreatureSay(cid, 'Ops, a criatura conseguiu escapar.', TALKTYPE_MONSTER_SAY) else doCreatureSay(cid, 'Criatura capturada com sucesso.', TALKTYPE_MONSTER_SAY) doSendMagicEffect(getCreaturePosition(itemEx.uid), 14) doPlayerAddItem(cid, monster.rewarditem[1], monster.rewarditem[2]) end doRemoveCreature(itemEx.uid) doRemoveItem(item.uid, 1) return true end <action itemid="7253" event="script" value="domar.lua"/>
-
[AJUDA] Tirar Healling em % da sourcer. URGENTE!!
game.cpp Função Game::CombatChangeHealth
-
Function onAttack muito RÁPIDO
esse evento não é o ideal para essa situação, utilize statschange que o seu problema será resolvido. na sua lógica, quem está atacando receberia um efeito em si mesmo, certo? então faremos : function onStatsChange(cid, attacker, type, combat, value) if combat == COMBAT_HEALING then return true end if getPlayerStorageValue(attacker, 13540) >= 1 then doSendMagicEffect(attacker, 40) end return true end O script será executado quando cid (alvo) receber dano. Abraços.
-
(Resolvido)Raid-Channel
Só se adaptar, porque esse foi feito baseado em tfs 1.3
-
Exp Muito Alta! Como faço para deixa-la normal?
basicamente é em rateExp no config.lua também existem as experience stages que você pode habilitar em data/xml/stages.xml
-
(Resolvido)Raid-Channel
A constante para mensagens brancas deve ser diferente em protocolos mais atuais, de qualquer forma, troca TALKTYPE_CHANNEL_W por TALKTYPE_CHANNEL_O que resolve.
-
(Resolvido)Raid-Channel
Opa eai @Jobs, beleza? Fiz aqui rapidinho, testa ai meu bom! raids.cpp Procure : extern ConfigManager g_config; Adicione isso abaixo : extern Chat* g_chat; Agora no mesmo arquivo, procure : g_game.broadcastMessage(message, messageType); Remova e adicione isso no lugar : ChatChannel* channel = g_chat->getChannelById(0x14/*CHANNEL_RAID*/); channel->sendToAll(message, TALKTYPE_CHANNEL_W); data/chatchannels/chatchannels.xml <channel id="20" name="Raid Channel" script="raid.lua" /> data/chatchannels/scripts/raid.lua function onSpeak(player, type, message) return false end Isso deve enviar mensagens de Raid diretamente para o Channel 20 ao invés de um broadcastMessage, não sei se era isso que você queria mas espero que sim haha. Abraços!
-
(Resolvido)Erro na script talkactions
A função de criar monstro não encontrou monstro com o nome informado, só arrumar as strings, acho que errei na digitação.
-
(Resolvido)Erro na script talkactions
function onSay(cid) if getPlayerAccess(cid) < 2 then return true end local positions = { {x=1051, y=1060, z=7}, {x=1052, y=1060, z=7}, {X=1046, Y=1061, Z=7}, {X=1046, Y=1061, Z=7}, {X=1046, Y=1061, Z=7}, {X=1050, Y=1040, Z=7}, {X=1050, Y=1040, Z=7}, {X=1051, Y=1041, Z=7}, {X=1074, Y=1058, Z=7}, {X=1074, Y=1058, Z=7}, {X=1075, Y=1059, Z=7}, {X=1011, Y=1046, Z=7}, {X=1011, Y=1045, Z=7}, {X=1014, Y=1046, Z=7} } for i = 1, 14 do doCreateMonster(i == 1 and 'HERO Demon Gengar' or 'HERO Venusaur', positions[i]) end return broadcastMessage("Oh nao , Pokemons misteriosos estao invadiando saffron corra para proteger a cidade", MESSAGE_EVENT_ADVANCE) end
- Alavanca de itens aleatória!
-
Anti Spoofing
local config = { max = 5, group_id = 1 } local accepted_ip_list = {} local function antiMC(p) if #getPlayersByIp(getPlayerIp(p.pid)) >= p.max then return false end return true end function onLogin(cid) if getPlayerGroupId(cid) <= config.group_id then if isInArray(accepted_ip_list,doConvertIntegerToIp(getPlayerIp(cid))) == false then return antiMC({pid = cid, max = config.max+1}) end end return true end <event type="login" name="AntiMC" event="script" value="antimc.lua"/> É em creaturescripts. Você configura em max o número máximo de logins por IP. Abraços.