• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!

RevScripts Creating script to broadcast message

johnsamir

Advanced OT User
Joined
Oct 13, 2009
Messages
920
Solutions
6
Reaction score
155
Location
Nowhere
Hello, I'm trying to make an script in revscript
i don't want to check frags i only want to check if player has gained skull, example white or red. If player has gained white or red a message will be broadcasted to the whole server. I'm trying but don't get it to work and this is what i have until now the console ask me for a then but it does not work
Lua:
function messageevent.onKill(player, target)

player:registerEvent("skull_greet")


if player:getSkull(SKULL_WHITE)
player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "a player has gained white skull go find him")
player:getSkull(SKULL_RED)
player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "a player has gained red skull go and get his loot")
if player:getSkull(SKULL_BLACK)
player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "a player has gained black skull go and get his loot")
end
   return true


messageevent:register()


tried this too now im facing more errors
Lua:
local message = CreatureEvent("skull_regards")
function messageevent.onKill(player, target)

 if player:getSkull(SKULL_WHITE) then
player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "a player has gained white skull go find him")
if player:getSkull(SKULL_RED) then
player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "a player has gained red skull go and get his loot")
 if player:getSkull(SKULL_BLACK) then
player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "a player has gained black skull go and get his loot")
end
end
   return true
end
end


messageevent:register()
Post automatically merged:

now i have made this, there are no errors in console but the script is not working
Code:
local creatureevent = CreatureEvent("greet_skull")
function creatureevent.onKill(player, target)


 if player:getSkull(SKULL_WHITE) then
player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "a player has gained white skull go find him")
if player:getSkull(SKULL_RED) then
player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "a player has gained red skull go and get his loot")
 if player:getSkull(SKULL_BLACK) then
player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "a player has gained black skull go and get his loot")
end
end
   return true
end
end


creatureevent:register()
 
Last edited:
thank @Roddet same problem, the script is not displaying problem but message are not being sent
Lua:
local creatureevent = CreatureEvent("greet_skull")
function creatureevent.onKill(player, target)


 if player:getSkull() == SKULL_WHITE then
player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "a player has gained white skull go find him")
if player:getSkull() == SKULL_RED then
player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "a player has gained red skull go and get his loot")
 if player:getSkull() == SKULL_WHITE then
player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "a player has gained black skull go and get his loot")
end
end
   return true
end
end


creatureevent:register()
 
thank @Roddet same problem, the script is not displaying problem but message are not being sent
Lua:
local skulls = {
    [SKULL_WHITE] = "white",
    [SKULL_RED] = "red",
}

local creatureevent = CreatureEvent("greet_skull")
function creatureevent.onKill(player, target)
    local skull = skulls[player:getSkull()]
    if skull then
        player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "a player has gained "..skull.." skull go find him")
    end
    return true
end
creatureevent:register()


local skls = CreatureEvent("bcSkull")
function skls.onLogin(player)
    player:registerEvent("greet_skull")
    return true
end
skls:register()
 
Lua:
local skulls = {
    [SKULL_WHITE] = "white",
    [SKULL_RED] = "red",
}

local creatureevent = CreatureEvent("greet_skull")
function creatureevent.onKill(player, target)
    local skull = skulls[player:getSkull()]
    if skull then
        player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "a player has gained "..skull.." skull go find him")
    end
    return true
end
creatureevent:register()


local skls = CreatureEvent("bcSkull")
function skls.onLogin(player)
    player:registerEvent("greet_skull")
    return true
end
skls:register()
I'm going to test, thank you. Could you add a seccond message for if skull white red or black? so i can use different messages on the script for each skull please.
 
Sure
Lua:
local skulls = {
    [SKULL_WHITE] = "%s has gained white skill",
    [SKULL_RED] = "%s has gained red skull, go find him",
}

local creatureevent = CreatureEvent("greet_skull")
function creatureevent.onKill(player, target)
    local skull = skulls[player:getSkull()]
    if skull then
        player:sendTextMessage(MESSAGE_EVENT_ADVANCE, skull:format(player:getName()))
    end
    return true
end
creatureevent:register()

If you dont want to display players name then you can simple change player:getName() to "a player"
 
ohh i didn't see it at first my bad, thank you bro. i tested and messages are not being sent. I have tried this and get no errors in console but it does not work
Lua:
local skulls = {
    [SKULL_YELLOW] = "%s has gained yellow skull, someone stop him!",
    [SKULL_WHITE] = "%s has gained yellow skull, someone stop him!",
}

local creatureevent = CreatureEvent("greet_skull")

function creatureevent.onKill(player, target)
   local skull = skulls[player:getSkull()]
  if player:getSkull() == SKULL_YELLOW then
   player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "a player has gained "..skull.." skull go find him")
   return true
end
   if player:getSkull() == SKULL_WHITE then
   player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "a player has gained "..skull.." skull go find him")
end
   return true
end

creatureevent:register()
 
We are suppose to use Game.broadcastMessage o_O

I added an addEvent instead to correctly display messages (white -> red), no need to verify userdata
Lua:
local skulls = {
    [SKULL_WHITE] = "%s has gained white skill",
    [SKULL_RED] = "%s has gained red skull, go find him",
}

local creatureevent = CreatureEvent("greet_skull")
function creatureevent.onKill(player, target)
    addEvent(function()
        local skull = skulls[player:getSkull()]
        if skull then
            Game.broadcastMessage(skull:format(player:getName()))
        end
    end, 0)
    return true
end
creatureevent:register()
 
We are suppose to use Game.broadcastMessage o_O

I added an addEvent instead to correctly display messages (white -> red), no need to verify userdata
Lua:
local skulls = {
    [SKULL_WHITE] = "%s has gained white skill",
    [SKULL_RED] = "%s has gained red skull, go find him",
}

local creatureevent = CreatureEvent("greet_skull")
function creatureevent.onKill(player, target)
    addEvent(function()
        local skull = skulls[player:getSkull()]
        if skull then
            Game.broadcastMessage(skull:format(player:getName()))
        end
    end, 0)
    return true
end
creatureevent:register()
omg! none of the scripts has worked, that is strange, what about if it count frags?
 
Have you registered the event on players login? player:registerEvent("greet_skull") I just tested it and worked
 
Solution
Have you registered the event on players login? player:registerEvent("greet_skull") I just tested it and worked
oh my gosh. No man, apart of the declaration in the script. I thought this is not requeried in revscripts, where does should it go?
sorry for this lol

Lua:
local skulls = {
    [SKULL_YELLOW] = "%s has gained white skill",
    [SKULL_WHITE] = "%s has gained red skull, go find him",
}

local creatureevent = CreatureEvent("greet_skull")
function creatureevent.onKill(player, target)
    addEvent(function()
        local skull = skulls[player:getSkull()]
        if skull then
            Game.broadcastMessage(skull:format(player:getName()))
        end
    end, 0)
    return true
end
creatureevent:register()
edit: in data/creaturescripts/login.lua? Rofl
This work
 
Last edited:
Back
Top