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

Guild online OnLook

dudie

Member
Joined
May 23, 2016
Messages
128
Reaction score
12
I wanna put when a player look another show total guild members and guild members online...
Like new versions (im using 0.4 - 8.60)

I tried 2 things, not one worked

1 Sources tried: player.cpp
Code:
if(guildId)
{
if(lookDistance == -1)
s << " You are ";
else
s << " " << (sex % 2 ? "He" : "She") << " is ";

s << (rankName.empty() ? "a member" : rankName)<< " of the " << guildName;
if(!guildNick.empty())
s << " (" << guildNick << ")";

size_t memberCount = guildId->getMemberCount();

if (memberCount == 1) {
s << ", which has 1 member, " << guildId->getMembersOnline().size() << " of them online.";
} else {
s << ", which has " << memberCount << " members, " << guildId->getMembersOnline().size() << " of them online.";
}

s << ".";
}

Error on compile:
Code:
player.cpp: In member function ‘virtual std::__cxx11::string Player::getDescription(int32_t) const’:
player.cpp:256:36: error: base operand of ‘->’ is not a pointer
size_t memberCount = guildId->getMemberCount();
^
player.cpp:259:50: error: base operand of ‘->’ is not a pointer
s << ", which has 1 member, " << guildId->getMembersOnline().size() <<
^
player.cpp:261:71: error: base operand of ‘->’ is not a pointer
s << ", which has " << memberCount << " members, " << guildId->getMember
^
Makefile:546: recipe for target 'player.o' failed
make[1]: *** [player.o] Error 1


2- LUA tried
Code:
<event type="look" name="guildmembersonlook" event="script" value="guild_members_online.lua"/>

Code:
registerCreatureEvent(cid, "guildmembersonlook")

Code:
function onLook(cid, thing, position, lookDistance)
if isPlayer(thing.uid) then
  if getPlayerGuildId(thing.uid) > 0 then
  doPlayerSetSpecialDescription(thing.uid, ". Guild has " .. getGuildMembers(getPlayerGuildId(thing.uid)) .. " members, and " .. getGuildMembersOnline(getPlayerGuildId(thing.uid)) .. " of them online")
  end
end
return true
end

Error
Code:
[23:45:35.141] [Error - CreatureScript Interface]
[23:45:35.141] data/creaturescripts/scripts/guild_members_online.lua:onLook
[23:45:35.141] Description:
[23:45:35.141] ...ata/creaturescripts/scripts/guild_members_online.lua:4: attempt to concatenate a table value
[23:45:35.141] stack traceback:
[23:45:35.141]    ...ata/creaturescripts/scripts/guild_members_online.lua:4: in function <...ata/creaturescripts/scripts/guild_members_online.lua:1>

[23:45:35.342] [Error - CreatureScript Interface]
[23:45:35.342] data/creaturescripts/scripts/guild_members_online.lua:onLook
[23:45:35.342] Description:
[23:45:35.342] ...ata/creaturescripts/scripts/guild_members_online.lua:4: attempt to concatenate a table value
[23:45:35.342] stack traceback:
[23:45:35.342]    ...ata/creaturescripts/scripts/guild_members_online.lua:4: in function <...ata/creaturescripts/scripts/guild_members_online.lua:1>

[23:45:35.542] [Error - CreatureScript Interface]
[23:45:35.542] data/creaturescripts/scripts/guild_members_online.lua:onLook
[23:45:35.542] Description:
[23:45:35.542] ...ata/creaturescripts/scripts/guild_members_online.lua:4: attempt to concatenate a table value
[23:45:35.542] stack traceback:
[23:45:35.542]    ...ata/creaturescripts/scripts/guild_members_online.lua:4: in function <...ata/creaturescripts/scripts/guild_members_online.lua:1>

[23:45:37.488] [Error - CreatureScript Interface]
[23:45:37.488] data/creaturescripts/scripts/guild_members_online.lua:onLook
[23:45:37.488] Description:
[23:45:37.488] ...ata/creaturescripts/scripts/guild_members_online.lua:4: attempt to concatenate a table value
[23:45:37.488] stack traceback:
[23:45:37.488]    ...ata/creaturescripts/scripts/guild_members_online.lua:4: in function <...ata/creaturescripts/scripts/guild_members_online.lua:1>

[23:45:39.187] [Error - CreatureScript Interface]
[23:45:39.187] data/creaturescripts/scripts/guild_members_online.lua:onLook
[23:45:39.187] Description:
[23:45:39.187] ...ata/creaturescripts/scripts/guild_members_online.lua:4: attempt to concatenate a table value
[23:45:39.187] stack traceback:
[23:45:39.187]    ...ata/creaturescripts/scripts/guild_members_online.lua:4: in function <...ata/creaturescripts/scripts/guild_members_online.lua:1>

[23:45:39.980] [Error - CreatureScript Interface]
[23:45:39.980] data/creaturescripts/scripts/guild_members_online.lua:onLook
[23:45:39.980] Description:
[23:45:39.980] ...ata/creaturescripts/scripts/guild_members_online.lua:4: attempt to concatenate a table value
[23:45:39.980] stack traceback:
[23:45:39.981]    ...ata/creaturescripts/scripts/guild_members_online.lua:4: in function <...ata/creaturescripts/scripts/guild_members_online.lua:1>

[23:45:40.280] [Error - CreatureScript Interface]
[23:45:40.280] data/creaturescripts/scripts/guild_members_online.lua:onLook
[23:45:40.280] Description:
[23:45:40.280] ...ata/creaturescripts/scripts/guild_members_online.lua:4: attempt to concatenate a table value
[23:45:40.280] stack traceback:
[23:45:40.280]    ...ata/creaturescripts/scripts/guild_members_online.lua:4: in function <...ata/creaturescripts/scripts/guild_members_online.lua:1>

(yes my server have onlook on sources i search and found it)
Code:
std::string CreatureEvent::getScriptEventName() const
{
   switch(m_type)
   {
     case CREATURE_EVENT_LOGIN:
       return "onLogin";
     case CREATURE_EVENT_LOGOUT:
       return "onLogout";
     case CREATURE_EVENT_CHANNEL_JOIN:
       return "onJoinChannel";
     case CREATURE_EVENT_CHANNEL_LEAVE:
       return "onLeaveChannel";
     case CREATURE_EVENT_THINK:
       return "onThink";
     case CREATURE_EVENT_ADVANCE:
       return "onAdvance";
     case CREATURE_EVENT_LOOK:
       return "onLook";
     case CREATURE_EVENT_DIRECTION:
       return "onDirection";
     case CREATURE_EVENT_OUTFIT:
       return "onOutfit";
     case CREATURE_EVENT_MAIL_SEND:
       return "onSendMail";
     case CREATURE_EVENT_MAIL_RECEIVE:
       return "onReceiveMail";
     case CREATURE_EVENT_TRADE_REQUEST:
       return "onTradeRequest";
     case CREATURE_EVENT_TRADE_ACCEPT:
       return "onTradeAccept";
     case CREATURE_EVENT_TEXTEDIT:
       return "onTextEdit";
     case CREATURE_EVENT_REPORTBUG:
       return "onReportBug";
     case CREATURE_EVENT_STATSCHANGE:
       return "onStatsChange";
     case CREATURE_EVENT_COMBAT_AREA:
       return "onAreaCombat";
     case CREATURE_EVENT_PUSH:
       return "onPush";
     case CREATURE_EVENT_TARGET:
       return "onTarget";
     case CREATURE_EVENT_FOLLOW:
       return "onFollow";
     case CREATURE_EVENT_COMBAT:
       return "onCombat";
     case CREATURE_EVENT_ATTACK:
       return "onAttack";
     case CREATURE_EVENT_CAST:
       return "onCast";
     case CREATURE_EVENT_KILL:
       return "onKill";
     case CREATURE_EVENT_DEATH:
       return "onDeath";
     case CREATURE_EVENT_PREPAREDEATH:
       return "onPrepareDeath";
     case CREATURE_EVENT_MOVEITEM:
       return "onMoveItem";
     case CREATURE_EVENT_NONE:
     default:
       break;
   }

   return "";
}

Code:
uint32_t CreatureEvent::executeLook(Player* player, Thing* thing, const Position& position, int16_t stackpos, int32_t lookDistance)
{
   //onLook(cid, thing, position, lookDistance)
 
Code:
getGuildMembers(getPlayerGuildId(thing.uid))
To
Code:
#getGuildMembers(getPlayerGuildId(thing.uid))

Same Here
Code:
getGuildMembersOnline(getPlayerGuildId(thing.uid))
 
Back
Top