• 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!
  • 2026 staff recruitment is open! Check it out and consider applying!

Lua Send Letter

_M4G0_

Intermediate OT User
Joined
Feb 6, 2016
Messages
550
Solutions
17
Reaction score
108
good night, i changed some things from a script to create this script to send a letter to Player "X", it all works.
but always need to change text and reload, is possible adapt to used /sendletter X, Text?


local letter = {2598
}

function onSay(player, words, param)
if not player:getGroup():getAccess() then
return true
end

local target
if param == '' then
target = player:getTarget()
if not target then
player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, 'To send: /addletter <player name>')
return false
end
else
target = Player(param)
end

if not target then
player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, 'Player ' .. param .. ' is currently not online.')
return false
end

if target:getAccountType() > player:getAccountType() then
player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, 'Cannot perform action.')
return false
end

for i = 1, #letter do
target:addItem(letter, 1):setAttribute(ITEM_ATTRIBUTE_TEXT, "Text Here\n" .. player:getName() .. ".")
end

player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, 'Letter sent ' .. target:getName() .. '.')
target:sendTextMessage(MESSAGE_STATUS_WARNING, "[Server] You have received a notification from
" .. player:getName() .. ".")
return false
end

 
Code:
local letter = 2598

function onSay(player, words, param)
    if not player:getGroup():getAccess() then
        return true
    end

    local split = string.split(param, ',')

    if not split[1] or not split[2] then
        player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, 'To send: /addletter <player name>, <text>')
        return false
    end

    local target = Player(split[1])

    if not target then
        player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, 'Player ' .. split[1] .. ' is currently not online.')
        return false
    end

    if target:getAccountType() > player:getAccountType() then
        player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, 'Cannot perform action.')
        return false
    end

    target:addItem(letter, 1):setAttribute(ITEM_ATTRIBUTE_TEXT, split[2])

    player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, 'Letter sent to ' .. target:getName() .. '.')
    target:sendTextMessage(MESSAGE_STATUS_WARNING, "[Server] You have received a notification from " .. player:getName() .. ".")
    return false
end
try this
 
Back
Top