
Tudo que xWhiteWolf postou
-
Creaturescript ou movements (Bosses)
no lugar de "BOSS 1"~ "BOSS 8" vc tem que colocar o nome dos monstros
-
(Resolvido)Fishing Monster Script
local maxChance2 = 400 - fishSkill local maxChance = 200 - fishSkill a maxchance é 200 - o skill. Se o skill for 200 então dá 0 e vai bugar o math.random. Coloca uns numeros maiores tipo 300 e 500 que deve resolver.. mas qnd uparem 300 de fishing vai precisar aumentar dnv
-
(Resolvido)[Spells] Juntar script sem bugar ajuda
a formula é min e max mas no caso como vc queria uma spell que hitasse o level do cara multiplicado por um fator X, o mínimo e o máximo tinham que ser iguais, certo? Por isso eu chamei de min e min. Se vc quiser editar essa spell é só apagar as coisas desnecessárias (tudo), deixa só a área e function onCastSpell.. dai vc coloca em addEvent quantas vezes vc quer que a magia se repita usando a doAreaCombat... Eu não to em casa agora, devo voltar só segunda, se ninguém te ajudar até lá eu prometo que tento fazer pra ti
-
Funções NPC
posta o xml e o script dos npcs aqui
-
(Resolvido)[Spells] Juntar script sem bugar ajuda
o dano tá aqui: doTargetCombatHealth(cid, target, config.damage, -getPlayerLevel(cid), -getPlayerLevel(cid), config.effect) ta dando damage do cid (quem usa a magia) no target (pessoa que tá sendo atacada), o tipo de dano é o config.damage damage = COMBAT_PHYSICALDAMAGE ou seja, dano físico. e o dano minimo e máximo é - o level do player. O efeito que vai sair é o config.effect, Se vc quiser mudar o dano é só fazer doTargetCombatHealth(cid, target, config.damage, -DANO MINIMO, -DANO MÁXIMO, config.effect) lembrando sempre de colocar o - se não ele vai recuperar vida. Se vc quiser que seja 1,5x o level do player só fazer local min = math.ceil(getPlayerLevel(cid) * 1.5) doTargetCombatHealth(cid, target, config.damage, -min, -min, config.effect) ps: se vc quiser fazer em área é só mudar a função doTargetCombatHealth pra doAreaCombatHealth(cid, type, pos, area, min, max, effect) na area vc faz igual um script normal area = {0,0,0,1,0,0,0, 0,0,0,3,0,0,0, 0,0,0,1,0,0,0} e o resto tá no script acima
-
error npc
as funções que estão escritas aí no console devem ter mudado de nome.. daí ele ta executando uma coisa que não existe, e tá retornando nil (valor nulo (acontece quando algo não existe)) Procura ver oque mudou ou pega scripts dessa nova versão e usa como base pra tentar arrumar seus scripts antigos
-
(Resolvido)Pedido - Sistema de Broadcast para players (pago)
<talkaction log="yes" words="/anuncio" event="script" value="broadcast.lua"/> local config = { storage = 19400, -- storage em que será salvo o tempo cor = "green", -- de acordo com o constant.lua da lib tempo = 2, -- em minutos price = 200000, -- quantidade de dinheiro que irá custar level = 100 -- level pra poder utilizar o broadcast } function onSay(cid, words, param, channel) if(param == '') then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Command param required.") return true end if getPlayerLevel(cid) >= config.level then if getPlayerStorageValue(cid, config.storage) - os.time() <= 0 then if doPlayerRemoveMoney(cid, config.price) then setPlayerStorageValue(cid, config.storage, os.time() + (config.tempo*60)) doBroadcastMessage(""..getCreatureName(cid).." [ANUNCIO]: "..param.."", config.cor) doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "You have successfully sent a broadcast, now you'll have to wait " ..config.tempo.. " minute(s) until you broadcast again.") else doPlayerSendCancel(cid, "You don't have " ..config.price.. " gp's for broadcasting.") return true end else doPlayerSendCancel(cid, "You have to wait " ..(getPlayerStorageValue(cid, config.storage) - os.time()).. " seconds until you can broadcast again.") return true end else doPlayerSendCancel(cid, "You have to be level " ..config.level.. " or more in order to use broadcast.") end end ps: editei com doRemoveMoney
-
(Resolvido)Pedido - Sistema de Broadcast para players (pago)
vc tem que ser mais específico cara, 200 thousand dollar notes é contado como money? qual o ID dela? Que versão é seu server? o [ANUNCIO] fica antes ou depois do nome do player?
-
Funções NPC
a distancia dá pra encurtar no script dependendo da versão do seu server.. esse negócio de não poder falar com outro enquanto fala com um é inerente ao server já que ficaria horrível vc falar com um monte de npc ao mesmo tempo e responder buy pra um e acabar comprando coisa do outro.
-
(Resolvido)On Interval Caste Spell
just change at global.lua emoteSpells = true (something like that). If you want for just a specific spells then change "return true" at the end of the script for "return false". But keep in mind that will make the spells being exhaustless and without mana cost. But you can add those functions at the script to solve the problem. If you need help any further in this, feel free to PM me.
-
(Resolvido)Bônus no Conjunto de itens
eu usei uma bota e uma armadura mas enfim, a tabela tá aqui: CONST_SLOT_FIRST = 1 CONST_SLOT_HEAD = CONST_SLOT_FIRST CONST_SLOT_NECKLACE = 2 CONST_SLOT_BACKPACK = 3 CONST_SLOT_ARMOR = 4 CONST_SLOT_RIGHT = 5 CONST_SLOT_LEFT = 6 CONST_SLOT_LEGS = 7 CONST_SLOT_FEET = 8 CONST_SLOT_RING = 9 CONST_SLOT_AMMO = 10 right e left são as mãos. Right é a direita e left a esquerda (literalmente)
-
(Resolvido)[Spells] Juntar script sem bugar ajuda
que estranho, dps eu testo no meu server. @llucas75 sim, vai tirar dano sim, olha: function onGetFormulaValues(cid, level, maglevel) min = -(level*1) max = -(level*1) return min, max end função buscar a formula de dano: os parametros são level e magiclevel o minimo que vai tirar é - o level o máximo q vai tirar é - o level retorna minimo e máximo. end se não for negativo ali ele vai adicionar vida.
-
(Resolvido)[Spells] Juntar script sem bugar ajuda
local combat1 = createCombatObject() setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_ICEDAMAGE) setCombatParam(combat1, COMBAT_PARAM_DISTANCEEFFECT, 28) setCombatParam(combat1, COMBAT_PARAM_EFFECT, 41) local combat2 = createCombatObject() setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_ICEDAMAGE) setCombatParam(combat2, COMBAT_PARAM_DISTANCEEFFECT, 28) setCombatParam(combat2, COMBAT_PARAM_EFFECT, 41) local combat3 = createCombatObject() setCombatParam(combat3, COMBAT_PARAM_TYPE, COMBAT_ICEDAMAGE) setCombatParam(combat3, COMBAT_PARAM_DISTANCEEFFECT, 28) setCombatParam(combat3, COMBAT_PARAM_EFFECT, 41) arr1 = { {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, } arr2 = { {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, } arr3 = { {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, } local area1 = createCombatArea(arr1) local area2 = createCombatArea(arr2) local area3 = createCombatArea(arr3) setCombatArea(combat1, area1) setCombatArea(combat2, area2) setCombatArea(combat3, area3) function onGetFormulaValues(cid, level, maglevel) min = -(level*1) max = -(level*1) return min, max end setCombatCallback(combat1, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues") setCombatCallback(combat2, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues") setCombatCallback(combat3, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues") local function onCastSpell1(parameters) doCombat(parameters.cid, parameters.combat1, parameters.var) end local function onCastSpell2(parameters) doCombat(parameters.cid, parameters.combat2, parameters.var) end local function onCastSpell3(parameters) doCombat(parameters.cid, parameters.combat3, parameters.var) end function onCastSpell(cid, var) local parameters = { cid = cid, var = var, combat1 = combat1, combat2 = combat2, combat3 = combat3 } addEvent(onCastSpell1, 0, parameters) addEvent(onCastSpell2, 350, parameters) addEvent(onCastSpell3, 700, parameters) return true end
-
(Resolvido)O ultimo que ficar no trono ganha o evento!
local config = { tempo = 5*60, -- segundos pos = {x=139, y=56, z=7, stackpos = 253}, -- posição do trono tp = {x=160, y=54, z=7}, -- posição que será criado o teleporte togo = {x=139, y=55, z=7}, --- posição que irá levar o teleporte premio = 2160, --- premio q vai dar count = 1, -- quantidade que vai dar effect = 27 -- efeito que vai sair } function onSay(cid, words, param, channel) doBroadcastMessage("The fight for the throne has begun, the last man standing there after "..config.tempo/60 .." minute(s) will be the winner.", 21) doCreateTeleport(1387, config.togo, config.tp) for j= 0,(config.tempo -1) do addEvent(function() doBroadcastMessage("Time left: ".. config.tempo - j .." second(s)", 25) end, (50+(j*1000))) end addEvent(function() if isPlayer(getThingFromPos(config.pos).uid) then doBroadcastMessage("The winner is "..getCreatureName(getThingFromPos(config.pos).uid)..".", 21) doPlayerAddItem(getThingFromPos(config.pos).uid, config.premio, config.count) doSendMagicEffect(config.pos, config.effect) else doBroadcastMessage("We didn't had a winner.. so sad!", 21) end end, 1000*config.tempo) end
-
[PEDIDO] Boots dar proteção
creaturescripts\scripts\login.lua: adiciona isso antes do ultimo return true ----------MAGMA BOOTS DO FOX---------------- registerCreatureEvent(cid, "magmaboots") if getPlayerStorageValue(cid, 19501) ~= 0 then setPlayerStorageValue(cid, 19501, 0) end --------------------------------------- em creaturescripts.xml adicione essa linha <event type="statschange" name="magmaboots" event="script" value="magmaboots.lua"/> crie um arquivo chamado magmaboots.lua em creaturescripts\scripts e coloque isso dentro dele: local config = { percent = 0.5, --- porcentagem do dano que irá levar (0.5 = 50%) storageskill = 19501, -- storage da skill itemplace = 8, -- lugar q ele deve estar (8 é o feet) itemid = 7891, -- id do item damagemin = 1000 --- minimo de dano que deve ser pro player absorver } function onStatsChange(cid, attacker, type, combat, value) if type == STATSCHANGE_HEALTHLOSS and isPlayer(attacker) and value >= config.damagemin then if getPlayerSlotItem(cid, config.itemplace).itemid == config.itemid then if getPlayerStorageValue(cid, config.storageskill) >= 1 then value = math.ceil(value*(config.percent)) setPlayerStorageValue(cid, config.storageskill, getPlayerStorageValue(cid, config.storageskill)-1) doTargetCombatHealth(attacker, cid, combat, -value, -value, 255) doPlayerSendTextMessage(cid, 23, "Your "..getItemNameById(config.itemid).." absorved "..value.." of damage.") return false end end end return true end agora em action.xml adicione: <action itemid="7891" script="magmaboots.lua"/> e em actions\scripts crie um arquivo chamado magmaboots.lua e adicione o seguinte: local config = { storagetempo = 19500, -- storage que contará os segundos storageskill = 19501, -- storage que vai dizer se a skill está ativada ou desativada itemid = 7891, -- id da boots itemplace = 8, -- feet tempo = 180 -- tempo em segundo (2 minutos) } function onUse(cid, item, frompos, item2, topos) if getCreatureStorage(cid, config.storageskill) <= 0 and (getPlayerSlotItem(cid, config.itemplace).itemid == config.itemid) then if getPlayerStorageValue(cid, config.storagetempo) - os.time() <= 0 then timenow = os.time() + config.tempo doPlayerSetStorageValue(cid, config.storagetempo, timenow) setPlayerStorageValue(cid, config.storageskill, 1) doPlayerSendTextMessage(cid, 23, "You activated your "..getItemNameById(config.itemid)..", it's ready to absorb damages!") for j= 0,(config.tempo -1) do addEvent(function() if isPlayer(cid) then doPlayerSendCancel(cid, "Time until next use: ".. config.tempo - j .." second(s)") end end, (50+(j*1000))) end else doPlayerSendTextMessage(cid, 23, "You have to wait ".. getPlayerStorageValue(cid, config.storagetempo) - os.time() .." second(s) until you can use it again!") end else doPlayerSendTextMessage(cid, 23, "Your "..getItemNameById(config.itemid).." is already active or it isn't equiped.") end return true end F.A.Q: 1) Só pega em 8.54 pra cima por causa da função onStatsChange (a menos que sua source possua esse comando). 2) Não sei colocar pra funcionar em server q não tenha onStatsChange e também não conheço ninguém que saiba 3) tudo que dá pra configurar tá no script escrito 4) Sim, fui eu que fiz o script.. só não coloquei os créditos porque não dá pra eu colocar crédito em algo que já patentearam antes
-
(Resolvido)Bônus no Conjunto de itens
segue essa lógica: movements\scripts\set.lua: -- NW SET SYSTEM local config = { slot1 = 4, slot2 = 8, item1 = 8889, item2 = 11234 } local condition = createConditionObject(CONDITION_ATTRIBUTES) setConditionParam(condition, CONDITION_PARAM_TICKS, -1) setConditionParam(condition, CONDITION_PARAM_SKILL_CLUB, 50) setConditionParam(condition, CONDITION_PARAM_SKILL_SWORD, 50) setConditionParam(condition, CONDITION_PARAM_SKILL_AXE, 50) setConditionParam(condition, CONDITION_PARAM_SKILL_DISTANCE, 50) function onEquip(cid, item, slot) if getPlayerSlotItem(cid, config.slot2).itemid == config.item2 and getPlayerSlotItem(cid, config.slot1).itemid == config.item1 then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Now that you're using the full set you'll receive a special bonus...") doAddCondition(cid, condition) doSendMagicEffect(getCreaturePos(cid), 10) end return true end function onDeEquip(cid, item, slot) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You're no longer receiving the special bonus..") doRemoveCondition(cid, CONDITION_ATTRIBUTES) return true end movements.xml <!-- Set Items --> <movevent type="Equip" itemid="11234" slot="feet" event="script" value="set.lua"/> <movevent type="Equip" itemid="8889" slot="armor" event="script" value="set.lua"/> <movevent type="DeEquip" itemid="11234" slot="feet" event="script" value="set.lua"/> <movevent type="DeEquip" itemid="8889" slot="armor" event="script" value="set.lua"/>
-
(Resolvido)O ultimo que ficar no trono ganha o evento!
eu perguntei oque que vc queria no script e vc disse q era só isso. Eu abro server 1x por semana pra fazer os scripts! Quando for assim, fala EXATAMENTE oque vc quer e explica nos máximos detalhes que daí não fica nesse ping pong de "ah, tem como adicionar isso daqui?" "e isso daqui tb" "ahh, eu queria por actions" "tem como fazer por globalevents??" e me ajuda a te ajudar mais rápido. @poko360 pronto: local config = { tempo = 5*60, -- segundos pos = {x=139, y=56, z=7, stackpos = 253}, -- posição do trono tp = {x=160, y=54, z=7}, -- posição que será criado o teleporte togo = {x=139, y=55, z=7} --- posição que irá levar o teleporte } function onSay(cid, words, param, channel) doBroadcastMessage("The fight for the throne has begun, the last man standing there after "..config.tempo/60 .." minute(s) will be the winner.", 21) doCreateTeleport(1387, config.togo, config.tp) for j= 0,(config.tempo -1) do addEvent(function() doBroadcastMessage("Time left: ".. config.tempo - j .." second(s)", 25) end, (50+(j*1000))) end addEvent(function() if isPlayer(getThingFromPos(config.pos).uid) then doBroadcastMessage("The winner is "..getCreatureName(getThingFromPos(config.pos).uid)..".", 21) else doBroadcastMessage("We didn't had a winner.. so sad!", 21) end end, 1000*config.tempo) end @baiak speeds tentei fazer e não consegui... não sei usar direito o "break" e o stopEvent mas cria um tópico no suporte que talvez alguém possa te ajudar.
- [PEDIDO] Boots dar proteção
-
(Resolvido)O ultimo que ficar no trono ganha o evento!
<talkaction log="yes" words="/start" access="5" event="script" value="throne.lua"/> local config = {tempo = 5*60, -- segundos pos = {x=139, y=56, z=7, stackpos = 253} -- posição do trono } function onSay(cid, words, param, channel) doBroadcastMessage("The fight for the throne has begun, the last man standing there after "..config.tempo/60 .." minute(s) will be the winner.", 21) for j= 0,(config.tempo -1) do addEvent(function() doBroadcastMessage("Time left: ".. config.tempo - j .." second(s)", 25) end, (50+(j*1000))) end addEvent(function() if isPlayer(getThingFromPos(config.pos).uid) then doBroadcastMessage("The winner is "..getCreatureName(getThingFromPos(config.pos).uid)..".", 21) else doBroadcastMessage("We didn't had a winner.. so sad!", 21) end end, 1000*config.tempo) end
-
(Resolvido)[PEDIDO] /b pra player com exausth de 2 minutos pf
@llucas75 tem uma lógica bem simples pra fazer isso que vc quer. Pensa comigo: if getPlayerStorageValue(cid, config.storage) - os.time() <= 0 then setPlayerStorageValue(cid, config.storage, os.time() + config.tempo) Se o storage - o tempo atual for menor ou igual a 0 então Setar o storage como sendo o tempo atual + o tempo. O tempo pra usar novamente será o storage (tempo atual no momento que usou + tempo) - tempo atual (desse momento) @topic Testei no meu server e funcionou perfeitamente. Uso TFS 0.36. Se o seu server for diferente do meu procure as funções variantes e faça as modificações necessárias: local config = { storage = 19400, -- storage em que será salvo o tempo cor = "white", -- de acordo com o constant.lua da lib tempo = 2, -- em minutos price = 1000, -- preço pra usar o broadcast level = 100 -- level pra poder utilizar o broadcast } function onSay(cid, words, param, channel) if(param == '') then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Command param required.") return true end if getPlayerLevel(cid) >= config.level then if getPlayerStorageValue(cid, config.storage) - os.time() <= 0 then if doPlayerRemoveMoney(cid, config.price) then setPlayerStorageValue(cid, config.storage, os.time() + (config.tempo*60)) doBroadcastMessage(""..getCreatureName(cid)..": "..param.."", config.cor) doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "You have successfully sent a broadcast, now you'll have to wait " ..config.tempo.. " minute(s) until you broadcast again.") else doPlayerSendCancel(cid, "You don't have " ..config.price.. " gp's for broadcasting.") return true end else doPlayerSendCancel(cid, "You have to wait " ..(getPlayerStorageValue(cid, config.storage) - os.time()).. " seconds until you can broadcast again.") return true end else doPlayerSendCancel(cid, "You have to be level " ..config.level.. " or more in order to use broadcast.") end end
-
ajuda mudar text da magia
no config.lua deve ter algo parecido com "mutespells" se tiver 1 deixa 0, se tiver true coloca false
- [PEDIDO] Castle 24h
-
[PEDIDOS] Spells
não dá.. o máximo q vc pode fazer sem mexer nas sources é colocar doCreatureSetNoMove(cid, 1) daí ele não poderá se mexer mas se alguem passar do lado ele vai atacar normal e poderá soltar spells
-
(Resolvido)[PEDIDO] /b pra player com exausth de 2 minutos pf
@danihcv: kick1 = addEvent(setPlayerStorageValue, config.tempo*60*1000-1000, cid, config.storage, -1) acho q essa não é a melhor maneira de fazer isso, se ele deslogar vai dar erro na distro, fora q nao entendi esse config.tempo*60*1000-1000; porque - 1000?? @llucas75 isso aqui que você mudou foi só a cor da mensagem que manda pro player.. pra mudar a cor do broadcast tem que alterar isso daqui: doPlayerBroadcastMessage(cid, message[, type]) essa é a função, sendo o type não obrigatório (por isso o [colchetes]). Quando a função não tem o type, ela trata o type como sendo "first"; A lista dos types está no constant.lua dentro da lib. No meu server essa lista é assim: MESSAGE_FIRST = 18 MESSAGE_STATUS_CONSOLE_RED = MESSAGE_FIRST MESSAGE_EVENT_ORANGE = 19 MESSAGE_STATUS_CONSOLE_ORANGE = 20 MESSAGE_STATUS_WARNING = 21 MESSAGE_EVENT_ADVANCE = 22 MESSAGE_EVENT_DEFAULT = 23 MESSAGE_STATUS_DEFAULT = 24 MESSAGE_INFO_DESCR = 25 MESSAGE_STATUS_SMALL = 26 MESSAGE_STATUS_CONSOLE_BLUE = 27 MESSAGE_LAST = MESSAGE_STATUS_CONSOLE_BLUE MESSAGE_TYPES = { ["advance"] = MESSAGE_EVENT_ADVANCE, ["event"] = MESSAGE_EVENT_DEFAULT, ["white"] = MESSAGE_EVENT_DEFAULT, ["orange"] = MESSAGE_STATUS_CONSOLE_ORANGE, ["info"] = MESSAGE_INFO_DESCR, ["green"] = MESSAGE_INFO_DESCR, ["small"] = MESSAGE_STATUS_SMALL, ["blue"] = MESSAGE_STATUS_CONSOLE_BLUE, ["red"] = MESSAGE_STATUS_CONSOLE_RED, ["warning"] = MESSAGE_STATUS_WARNING, ["status"] = MESSAGE_STATUS_DEFAULT } se você quiser branco então coloque uma das coisas a seguir. ["white"] = MESSAGE_EVENT_DEFAULT, MESSAGE_EVENT_DEFAULT = 23, ["event"] = MESSAGE_EVENT_DEFAULT; Ficando assim: doPlayerBroadcastMessage(cid, param, "white") doPlayerBroadcastMessage(cid, param, MESSAGE_EVENT_DEFAULT) doPlayerBroadcastMessage(cid, param, "event") doPlayerBroadcastMessage(cid, param, 23) Lembre-se que você só irá utilizar uma dessas.. escolha uma aí e substitua. qualquer uma dessas irá funcionar. OBS: não sei se é white e event entre aspas... testa aí e depois me fala se é com ou sem aspas.
-
Ajuda remover monstro
talvez isso ajude http://www.tibiaking.com/forum/topic/33870-como-usar-addevent/