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

Lua Talkactions transform

adrenyslopez

Member
Joined
Dec 22, 2015
Messages
201
Reaction score
15
Anyone know transform this to revscriptsys?

XML:
<talkaction words="!go" script="go.lua"/>

Lua:
--[[
outfit.lookMount = getField<uint16_t>(L, arg, "lookMount");
    outfit.lookAddons = getField<uint8_t>(L, arg, "lookAddons");

    outfit.lookFeet = getField<uint8_t>(L, arg, "lookFeet");
    outfit.lookLegs = getField<uint8_t>(L, arg, "lookLegs");
    outfit.lookBody = getField<uint8_t>(L, arg, "lookBody");
    outfit.lookHead = getField<uint8_t>(L, arg, "lookHead");--]]

function onSay(cid, words, param, channel)
local player = Player(cid)
local playerGuildLevel = getPlayerGuildLevel(cid)
        if(playerGuildLevel < GUILDLEVEL_LEADER) then
            doPlayerSendCancel(cid, "Você precisa ser lider de sua guild para utilizar este comando!")
            return TRUE
        end
        local playerGuild = getPlayerGuildId(cid)
        if(playerGuild == FALSE) then
            doPlayerSendCancel(cid, "Desculpe, você não possuí uma guild.")
            return TRUE
        end

local outfit = getCreatureOutfit(cid)
outfit.lookMount = 0
outfit.lookAddons = 0
local no = 0
local members = getOnlinePlayers()
        for i = 1,#members do
            if(getPlayerGuildId(members[i]) == playerGuild and cid ~= members[i]) then
                if canPlayerWearOutfit(members[i], outfit.lookType, addons) then
                outfit.lookAddons = outfit.lookAddons
                doCreatureChangeOutfit(members[i], outfit)
                else
                outfit.lookAddons = getCreatureOutfit(members[i]).lookAddons
                doCreatureChangeOutfit(members[i], outfit)
                end
                    if player:hasMount(getCreatureOutfit(members[i]).lookMount) then
                        outfit.lookMount = 0
                        doCreatureChangeOutfit(members[i], outfit)
                    else
                        outfit.lookMount = 0
                        doCreatureChangeOutfit(members[i], outfit)
                    end
                    no = no + 1
                    doPlayerSendCancel(cid, ""..no.." tiveram suas outifits mudadas com sucesso!")
            end
        end
    return true
end
 
Last edited by a moderator:
Solution
S
GUILDLEVEL_LEADER = 1
shouldn't that be 3?
i use this one for colors, @Sarah Wesker created it to me before i learn coding, all credits to him/her
Lua:
  local minRequireGuildLevel = 2 -- 3 is leader
    local sendEffectToChange = CONST_ME_BLACKSMOKE

    function onSay(player, words, param)

    local guild = player:getGuild()
    if not guild then
        player:sendCancelMessage('Sorry, you no have guild.')
        return false
    end

    local guildLvl = player:getGuildLevel()
    if guildLvl < minRequireGuildLevel then
        player:sendCancelMessage('Sorry, you no have guild level required.')
        return false
    end

    local outfit = player:getOutfit()
    local members = guild:getMembersOnline()
    if #members > 0...
data/scripts/guild_outfit.lua
Lua:
GUILDLEVEL_LEADER = 1

local talk = TalkAction("!go", "!guildOutfit")

function talk.onSay(leader, words, param, type)
    local guild = leader:getGuild()
    if not guild then
        leader:sendCancelMessage("You no have a guild!")
        return false
    end

    if guild:getRankByLevel(leader:getGuildLevel()).id ~= GUILDLEVEL_LEADER then
        leader:sendCancelMessage("You are not the leader of the guild!")
        return false
    end

    local leaderOutfit = leader:getOutfit()
    for _, memberOnline in pairs(guild:getMembersOnline()) do
        memberOnline:setOutfit(leaderOutfit)
        local memberPos = memberOnline:getPosition()
        memberPos:sendMagicEffect(CONST_ME_BATS)
        memberOnline:say("Guild Change Outfit!", TALKTYPE_MONSTER_SAY, false, memberOnline, memberPos)
    end
    return true
end

talk:register()

TalkAction words: !go or !guildOutfit

Example GIF:
GIF 24-04-2021 02-25-30 a. m..gif
 
data/scripts/guild_outfit.lua
Lua:
GUILDLEVEL_LEADER = 1

local talk = TalkAction("!go", "!guildOutfit")

function talk.onSay(leader, words, param, type)
    local guild = leader:getGuild()
    if not guild then
        leader:sendCancelMessage("You no have a guild!")
        return false
    end

    if guild:getRankByLevel(leader:getGuildLevel()).id ~= GUILDLEVEL_LEADER then
        leader:sendCancelMessage("You are not the leader of the guild!")
        return false
    end

    local leaderOutfit = leader:getOutfit()
    for _, memberOnline in pairs(guild:getMembersOnline()) do
        memberOnline:setOutfit(leaderOutfit)
        local memberPos = memberOnline:getPosition()
        memberPos:sendMagicEffect(CONST_ME_BATS)
        memberOnline:say("Guild Change Outfit!", TALKTYPE_MONSTER_SAY, false, memberOnline, memberPos)
    end
    return true
end

talk:register()

TalkAction words: !go or !guildOutfit

Example GIF:
View attachment 57968
Could it be that only the colors are changed and not the outfit?
 
data/scripts/guild_outfit.lua
Lua:
GUILDLEVEL_LEADER = 1

local talk = TalkAction("!go", "!guildOutfit")

function talk.onSay(leader, words, param, type)
    local guild = leader:getGuild()
    if not guild then
        leader:sendCancelMessage("You no have a guild!")
        return false
    end

    if guild:getRankByLevel(leader:getGuildLevel()).id ~= GUILDLEVEL_LEADER then
        leader:sendCancelMessage("You are not the leader of the guild!")
        return false
    end

    local leaderOutfit = leader:getOutfit()
    for _, memberOnline in pairs(guild:getMembersOnline()) do
        memberOnline:setOutfit(leaderOutfit)
        local memberPos = memberOnline:getPosition()
        memberPos:sendMagicEffect(CONST_ME_BATS)
        memberOnline:say("Guild Change Outfit!", TALKTYPE_MONSTER_SAY, false, memberOnline, memberPos)
    end
    return true
end

talk:register()

TalkAction words: !go or !guildOutfit

Example GIF:
View attachment 57968
TEST.png
 
Here I made a modification so that now only the colors are changed, let me know if it works
Lua:
GUILDLEVEL_LEADER = 1

local talk = TalkAction("!go", "!guildOutfit")

function talk.onSay(leader, words, param, type)
    local guild = leader:getGuild()
    if not guild then
        leader:sendCancelMessage("You no have a guild!")
        return false
    end

    if guild:getRankByLevel(leader:getGuildLevel()).id > GUILDLEVEL_LEADER then
        leader:sendCancelMessage("You are not the leader of the guild!")
        return false
    end

    local leaderOutfit = leader:getOutfit()
    for _, memberOnline in pairs(guild:getMembersOnline()) do
        local memberOutfit = memberOnline:getOutfit()
        memberOutfit.lookHead = leaderOutfit.lookHead
        memberOutfit.lookBody = leaderOutfit.lookBody
        memberOutfit.lookLegs = leaderOutfit.lookLegs
        memberOutfit.lookFeet = leaderOutfit.lookFeet
        memberOnline:setOutfit(memberOutfit)
        local memberPos = memberOnline:getPosition()
        memberPos:sendMagicEffect(CONST_ME_BATS)
        memberOnline:say("Guild Change Colours!", TALKTYPE_MONSTER_SAY, false, memberOnline, memberPos)
    end
    return true
end

talk:register()
 
Here I made a modification so that now only the colors are changed, let me know if it works
Lua:
GUILDLEVEL_LEADER = 1

local talk = TalkAction("!go", "!guildOutfit")

function talk.onSay(leader, words, param, type)
    local guild = leader:getGuild()
    if not guild then
        leader:sendCancelMessage("You no have a guild!")
        return false
    end

    if guild:getRankByLevel(leader:getGuildLevel()).id > GUILDLEVEL_LEADER then
        leader:sendCancelMessage("You are not the leader of the guild!")
        return false
    end

    local leaderOutfit = leader:getOutfit()
    for _, memberOnline in pairs(guild:getMembersOnline()) do
        local memberOutfit = memberOnline:getOutfit()
        memberOutfit.lookHead = leaderOutfit.lookHead
        memberOutfit.lookBody = leaderOutfit.lookBody
        memberOutfit.lookLegs = leaderOutfit.lookLegs
        memberOutfit.lookFeet = leaderOutfit.lookFeet
        memberOnline:setOutfit(memberOutfit)
        local memberPos = memberOnline:getPosition()
        memberPos:sendMagicEffect(CONST_ME_BATS)
        memberOnline:say("Guild Change Colours!", TALKTYPE_MONSTER_SAY, false, memberOnline, memberPos)
    end
    return true
end

talk:register()
ERROR.png

tells me I'm not a guild leader :(
 
Create a new guild and don't edit the ranks and test please
I have tested the script and it works very well, anyway if you can do other tests, it would be fine
 
GUILDLEVEL_LEADER = 1
shouldn't that be 3?
i use this one for colors, @Sarah Wesker created it to me before i learn coding, all credits to him/her
Lua:
  local minRequireGuildLevel = 2 -- 3 is leader
    local sendEffectToChange = CONST_ME_BLACKSMOKE

    function onSay(player, words, param)

    local guild = player:getGuild()
    if not guild then
        player:sendCancelMessage('Sorry, you no have guild.')
        return false
    end

    local guildLvl = player:getGuildLevel()
    if guildLvl < minRequireGuildLevel then
        player:sendCancelMessage('Sorry, you no have guild level required.')
        return false
    end

    local outfit = player:getOutfit()
    local members = guild:getMembersOnline()
    if #members > 0 then
        for _, member in pairs(members) do
            local mOutfit = member:getOutfit()
            mOutfit.lookHead = outfit.lookHead
            mOutfit.lookBody = outfit.lookBody
            mOutfit.lookLegs = outfit.lookLegs
            mOutfit.lookFeet = outfit.lookFeet
            member:setOutfit(mOutfit)
            member:getPosition():sendMagicEffect(sendEffectToChange)
        end
    end

    return false
    end

vice leaders and leaders only can change members color change the first line to 3 to be only leaders, best solution goes to sarah wesker not me
 
Solution
GUILDLEVEL_LEADER = 1
shouldn't that be 3?
i use this one for colors, @Sarah Wesker created it to me before i learn coding, all credits to him/her
Lua:
  local minRequireGuildLevel = 2 -- 3 is leader
    local sendEffectToChange = CONST_ME_BLACKSMOKE

    function onSay(player, words, param)

    local guild = player:getGuild()
    if not guild then
        player:sendCancelMessage('Sorry, you no have guild.')
        return false
    end

    local guildLvl = player:getGuildLevel()
    if guildLvl < minRequireGuildLevel then
        player:sendCancelMessage('Sorry, you no have guild level required.')
        return false
    end

    local outfit = player:getOutfit()
    local members = guild:getMembersOnline()
    if #members > 0 then
        for _, member in pairs(members) do
            local mOutfit = member:getOutfit()
            mOutfit.lookHead = outfit.lookHead
            mOutfit.lookBody = outfit.lookBody
            mOutfit.lookLegs = outfit.lookLegs
            mOutfit.lookFeet = outfit.lookFeet
            member:setOutfit(mOutfit)
            member:getPosition():sendMagicEffect(sendEffectToChange)
        end
    end

    return false
    end

vice leaders and leaders only can change members color change the first line to 3 to be only leaders, best solution goes to sarah wesker not me
thanks bro
 
Last edited:
Back
Top