Newbie Spellweaver
- Joined
- Sep 25, 2013
- Messages
- 81
- Reaction score
- 6
no idea how to show this buff
Follow along with the video below to see how to install our site as a web app on your home screen.
Note: This feature currently requires accessing the site using the built-in Safari browser.
/**
* Guild Skill
*/
public static class Guild extends Skills {
// <editor-fold defaultstate="collapsed" desc="Guild Skills">
public static final int MesoUp = 91000000;
public static final int ExperienceUp = 91000001;
public static final int DefenceUp = 91000002;
public static final int ATTnMAGUp = 91000003;//?
public static final int AgilityUp = 91000004;
public static final int BusinessEfficiencyUp = 91000005;
public static final int RegularSupport = 91000006;
// </editor-fold>
}
This is a guildPQ buff? In what version? I just started coding the guild system in my source so I can look into it, but if that's a buff, that may be a Guild skill in newer versions and I don't have Guild skills yet
If it's just a regular Guild skill like in v95+ like the rest, then it's possibly even one of these skills:
Code:/** * Guild Skill */ public static class Guild extends Skills { // <editor-fold defaultstate="collapsed" desc="Guild Skills"> public static final int MesoUp = 91000000; public static final int ExperienceUp = 91000001; public static final int DefenceUp = 91000002; public static final int ATTnMAGUp = 91000003;//? public static final int AgilityUp = 91000004; public static final int BusinessEfficiencyUp = 91000005; public static final int RegularSupport = 91000006; // </editor-fold> }
You possibly have a video? That would probably help.
this buff in register guildPQ will have
in guildPQ when open already have, no v95+ guild skill
3621;"UI/UIWindow.img/TemporaryStatView/%d"
void __thiscall CTemporaryStatView::TEMPORARY_STAT::TEMPORARY_STAT(CTemporaryStatView::TEMPORARY_STAT *this, int nType, int nID, int tDuration, UINT128 uFlagTemp, ZXString<char> sToolTip, int nSubID, int nHideTime)
GuildRes_GuildQuest_NoticeOrder = 0x4F,
public static byte[] OnGuildResult(byte nChannelIdx, int nNoticeOrder) {
OutPacket oPacket = new OutPacket();
oPacket.Encode2(GuildResult);//short header -> the GUILD_OPERATION packet.
oPacket.Encode1(GuildResCode.GuildQuest_NoticeOrder.getCode());//byte result code -> 0x4F NoticeOrder.
oPacket.Encode1(nChannelIdx);//byte Channel ID
oPacket.Encode4(nNoticeOrder);//int Notice Order.
return oPacket.ToArray();
}
0 -> Reset the temporary stat of the buff (removes it i guess)
1-> Sends message "Please go see the Guild Quest NPC at Channel %s immediately to enter." (I think this enables the buff?)
2-> Sends message "Your guild is up next. Please head to the Guild Quest map at Channel %s and wait."
3-> Sends message "There's currently 1 guild participating in the Guild Quest, and your guild is number %d on the waitlist."
Yep it's not a guild skill. The icon seemed familiar to me, I remember stumbling upon it and being confused what it was so many times when I did wz editing. Took me a bit but I remembered that I found it in UI.wz.
It's called "TemporaryStatView".
So I thought I'd find it in the client using SP's.. Just as I thought, there was one.
Code:3621;"UI/UIWindow.img/TemporaryStatView/%d"
So I traced the SP value in the client to the function
Code:void __thiscall CTemporaryStatView::TEMPORARY_STAT::TEMPORARY_STAT(CTemporaryStatView::TEMPORARY_STAT *this, int nType, int nID, int tDuration, UINT128 uFlagTemp, ZXString<char> sToolTip, int nSubID, int nHideTime)
There wasn't really much to see besides it utilizing the StringPool and having a nType value of 3 which is the first argument. It's only xref is SetTemporary, which is the function called from OnTemporaryStatSet. However, there's only one other XREF -- and that is from OnGuildResult! Which definitely make sense considering it is GPQ. It also sends nType as 3 just like it should. This buff is sent from mode 79 (0x4F). The official Nexon name of this value is called
Code:GuildRes_GuildQuest_NoticeOrder = 0x4F,
It follows the following structure:
Code:public static byte[] OnGuildResult(byte nChannelIdx, int nNoticeOrder) { OutPacket oPacket = new OutPacket(); oPacket.Encode2(GuildResult);//short header -> the GUILD_OPERATION packet. oPacket.Encode1(GuildResCode.GuildQuest_NoticeOrder.getCode());//byte result code -> 0x4F NoticeOrder. oPacket.Encode1(nChannelIdx);//byte Channel ID oPacket.Encode4(nNoticeOrder);//int Notice Order. return oPacket.ToArray(); }
The "nNoticeOrder" variable is another mode that switches. It is as follows:
Code:0 -> Reset the temporary stat of the buff (removes it i guess) 1-> Sends message "Please go see the Guild Quest NPC at Channel %s immediately to enter." (I think this enables the buff?) 2-> Sends message "Your guild is up next. Please head to the Guild Quest map at Channel %s and wait." 3-> Sends message "There's currently 1 guild participating in the Guild Quest, and your guild is number %d on the waitlist."
Weird part is, technically modes 1,2, and 3 all call the SetTemporary function. Except 0, that has a label jump and just disables the buff. I think the way Nexon probably handles it which is honestly stupid (though I haven't coded this from BMS yet so I can't confirm lmao) is they send the error first (1,2,3) and then send 0 so you don't see the buff.
Don't know too much otherwise as I have yet to work on this, I only just started guilds..
Hope this helps!
thanks, and oldms have summon buff mask?
why odinms use combo buff mask