• 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!

[REQUEST] Talkaction script

Yaze

Well-Known Member
Joined
Sep 15, 2014
Messages
382
Reaction score
61
Hello dear otlanders, i have a question,


can someone script for me a script like this

A admin should be able to write a talkaction and all players in the screen will get + random levels,
like

/addlevel 300

everyone in my screen gets + MAX 300 levels, means
someone get 20 levels, someone gets 210 levels, someone gets 90 levels.. etc

Thanks who ever will help :p

Kind regards,
 
From my understanding of this code you type
/addskill 300
everyone in range will get a random level from 0 - 300
Code:
function onSay(cid, words, param)
    local rangeX, rangeY = 7, 7
    local spectators = getSpectators(getCreaturePosition(cid), rangeX, rangeY, false)
    local levelAmount = tonumber(param)
    local addlevel = 0
    if spectators then
        for _, spectator in ipairs(spectators) do
            if isPlayer(spectator) and spectator ~= cid then
                addlevel = math.random(0,levelAmount)
                doPlayerAddLevel(spectator, addlevel, true)
                levelAmount = levelAmount-addlevel
            end
        end
    end
end

It should really say using the same words
/addskill 300
Code:
function onSay(cid, words, param)
    local rangeX, rangeY = 7, 7
    local spectators = getSpectators(getCreaturePosition(cid), rangeX, rangeY, false)
    local levelAmount = tonumber(param)
    local addlevel = 0
    if spectators then
        for _, spectator in ipairs(spectators) do
            if isPlayer(spectator) and spectator ~= cid then
                addlevel = math.random(1,levelAmount)
                doPlayerAddLevel(spectator, addlevel, true)
                -- this way you don't subtract a level from the player
                levelAmount = (levelAmount > addlevel) and levelAmount - addlevel or addlevel - levelAmount
            end
        end
    end
end
 
even with /addskill
it doesnt work and gives me this error

Code:
[Error - TalkAction Interface]
data/talkactions/scripts/addlevel.lua:onSay
Description:
data/talkactions/scripts/addlevel.lua:9: bad argument #2 to 'random' (number expected, got nil)
stack traceback:
  [C]: in function 'random'
  data/talkactions/scripts/addlevel.lua:9: in function <data/talkactions/scripts/addlevel.lua:1>
 
Replace
Code:
local levelAmount = tonumber(param)
with
Code:
local levelAmount = tonumber(param)
if not levelAmount then
    levelAmount = 300
end
It will now work without param.
 
Back
Top