Jump to content

Domniq

Premium
  • Posts

    136
  • Joined

  • Last visited

  • Days Won

    7
  • Feedback

    0%

Domniq last won the day on April 1 2018

Domniq had the most liked content!

1 Follower

About Domniq

  • Birthday 11/10/1997

Informations

  • Gender
    Male

Social Networks

  • Skype
    nevisor

Recent Profile Visitors

3075 profile views

Domniq's Achievements

Community Regular

Community Regular (8/16)

  • Very Popular Rare
  • First Post
  • Collaborator
  • Conversation Starter
  • Week One Done

Recent Badges

907

Reputation

  1. @Ulthar Check your TABs in uiTaskBar.py at line 437 or above
  2. There you go, here's my version created some time ago [Hidden Content]
  3. Hey, nice release. Glad you share it with us ? Here's small improvement for bool CItem::IsMythDragonSoul() bool CItem::IsMythDragonSoul() { return ((GetVnum() > 115000 && GetVnum() <= 115099) || (GetVnum() > 115100 && GetVnum() <= 115199) || (GetVnum() > 115200 && GetVnum() <= 115299) || (GetVnum() > 115300 && GetVnum() <= 115399) || (GetVnum() > 115400 && GetVnum() <= 115499) || (GetVnum() > 125000 && GetVnum() <= 125099) || (GetVnum() > 125100 && GetVnum() <= 125199) || (GetVnum() > 125200 && GetVnum() <= 125299) || (GetVnum() > 125300 && GetVnum() <= 125399) || (GetVnum() > 125400 && GetVnum() <= 125499) || (GetVnum() > 135000 && GetVnum() <= 135099) || (GetVnum() > 135100 && GetVnum() <= 135199) || (GetVnum() > 135200 && GetVnum() <= 135299) || (GetVnum() > 135300 && GetVnum() <= 135399) || (GetVnum() > 135400 && GetVnum() <= 135499) || (GetVnum() > 145000 && GetVnum() <= 145099) || (GetVnum() > 145100 && GetVnum() <= 145199) || (GetVnum() > 145200 && GetVnum() <= 145299) || (GetVnum() > 145300 && GetVnum() <= 145399) || (GetVnum() > 145400 && GetVnum() <= 145499) || (GetVnum() > 155000 && GetVnum() <= 155099) || (GetVnum() > 155100 && GetVnum() <= 155199) || (GetVnum() > 155200 && GetVnum() <= 155299) || (GetVnum() > 155300 && GetVnum() <= 155399) || (GetVnum() > 155400 && GetVnum() <= 155499) || (GetVnum() > 165000 && GetVnum() <= 165099) || (GetVnum() > 165100 && GetVnum() <= 165199) || (GetVnum() > 165200 && GetVnum() <= 165299) || (GetVnum() > 165300 && GetVnum() <= 165399) || (GetVnum() > 165400 && GetVnum() <= 165499) ); } replace with this bool CItem::IsMythDragonSoul() { bool bMyth = ((GetVnum() / 1000) % 10) == 5 ? true : false; return bMyth; }
  4. Just take a look at my repo [Hidden Content] - it's compiled under VS 2019 Preview (v142). Here you can download libjpeg-9c prepared for build [Hidden Content] with MT/MTd, just select right toolset.
  5. There is part in my game.py that is doing that as I remember
  6. #update - fix Dice will be executed if it meets the requirements (killer and 1+ party member in range of killer)
  7. There you go //char_battle.cpp find if (GetHP() <= 0) { // replace Stun(); or comment it and add bellow if (!IsDead()) { if (!IsPC() && m_pkParty) { m_pkParty->SendMessage(this, PM_ATTACKED_BY, 0, 0); } sys_log(1, "%s: Stun %p", GetName(), this); PointChange(POINT_HP_RECOVERY, -GetPoint(POINT_HP_RECOVERY)); PointChange(POINT_SP_RECOVERY, -GetPoint(POINT_SP_RECOVERY)); CloseMyShop(); event_cancel(&m_pkRecoveryEvent); // ȸşą ŔĚşĄĆ®¸¦ Á×ŔδŮ. SET_BIT(m_pointsInstant.instant_flag, INSTANT_FLAG_STUN); if (!m_pkStunEvent) { char_event_info* info = AllocEventInfo<char_event_info>(); info->ch = this; m_pkStunEvent = event_create(StunEvent, info, PASSES_PER_SEC(0)); } } #edit2
  8. Nope, for now I don't have much time to spare and focusing mostly on server & bin. Maybe im gonna move my project into official root, locale, uiscript 02.02.2018
  9. That's my way I did year ago, same ingame output as gf There are 2 additional images covering the button so you can just disable "mouse over" for this elements (3 lines of code instead of creating functions etc.) for i in xrange(len(self.NameList)): self.SelectBtnFaceList[i].AddFlag("not_pick") self.SelectBtnNameList[i].AddFlag("not_pick")
  10. #add in localeinfo.py def NumberToString(n) : if n <= 0 : return "0" return ('.'.join([ i-3<0 and str(n)[:i] or str(n)[i-3:i] for i in range(len(str(n))%3, len(str(n))+1, 3) if i ])) self.GetChild("Exp_Value").SetText(localeInfo.NumberToString(str(unsigned32(player.GetEXP()))))
  11. net.SendWhisperPacket(name, localeInfo.SetHexColor(localeInfo.CANNOT_WHISPER_BLOCK))
  12. Add in localeInfo.py def SetHexColor(text, hex="f44242"): #red color by default if there is not 2nd argument (color) return ("|cff%s%s|r" % (hex, text)) then call it: localeInfo.SetHexColor(localeInfo.BLA_BLA)
  13. M2 Download Center Download Here ( Internal ) Heya, as title says it's party dice system self written (without CHAT_TYPE_DICE_INFO, it's up to you) [Hidden Content] (sry for laggs - "wooden pc" ^^) You can test possibility of same score there: [Hidden Content] char_battle.cpp //find if (ch->GetParty()) ch = ch->GetParty()->GetNextOwnership(ch, GetX(), GetY()); //replace with if (ch->GetParty()) { ch = ch->GetParty()->GetNextOwnership(ch, GetX(), GetY()); #ifdef __ENABLE_DICE_SYSTEM__ ch = ch->GetParty()->Dice(ch, GetX(), GetY(), item->GetName()); #endif } party.cpp //at the end of file add #ifdef __ENABLE_DICE_SYSTEM__ LPCHARACTER CParty::Dice(LPCHARACTER ch, long x, long y, const char * szName) //item name { for (TMemberMap::iterator it = m_memberMap.begin(); it != m_memberMap.end(); ++it) { if (it->second.pCharacter->GetDesc() && DISTANCE_APPROX(it->second.pCharacter->GetX() - x, it->second.pCharacter->GetY() - y) < PARTY_DEFAULT_RANGE) { ChatPacketToAllMember(CHAT_TYPE_DICE_INFO, "|cffffe6ba*** Rolling for the following item: %s ***", szName); while (1) { LPCHARACTER pkWinner; int iDice = 0; int iDraw = 0; for (TMemberMap::iterator it = m_memberMap.begin(); it != m_memberMap.end(); ++it) if (it->second.pCharacter->GetDesc() && DISTANCE_APPROX(it->second.pCharacter->GetX() - x, it->second.pCharacter->GetY() - y) < PARTY_DEFAULT_RANGE) { int iScore = number(1, 10000); if (iScore == iDice) iDraw == iScore; else if (iDice == 0 || iScore > iDice) { pkWinner = it->second.pCharacter; iDice = iScore; } ChatPacketToAllMember(CHAT_TYPE_DICE_INFO, "|cffffe6ba*** ->\t\t\t\t\t%s - Dice score: %d ***", it->second.pCharacter->GetName(), iScore); } if (iDice != iDraw) { ChatPacketToAllMember(CHAT_TYPE_DICE_INFO, "|cffbb00ff*** Winner of the item %s is: %s ***", szName, pkWinner->GetName()); return pkWinner; } else { ChatPacketToAllMember(CHAT_TYPE_DICE_INFO, ""); ChatPacketToAllMember(CHAT_TYPE_DICE_INFO, "|cffffe6ba*** Rolling again for the following item: %s ***", szName); } } } } return ch; } #endif party.h //find void P2PSetMemberLevel(DWORD pid, BYTE level); //or bool IsPartyInDungeon(int mapIndex); //add bellow #ifdef __ENABLE_DICE_SYSTEM__ LPCHARACTER Dice(LPCHARACTER ch, long x, long y, const char * szName); #endif length.h enum EChatType { CHAT_TYPE_TALKING, /* 그냥 채팅 */ CHAT_TYPE_INFO, /* 정보 (아이템을 집었다, 경험치를 얻었다. 등) */ CHAT_TYPE_NOTICE, /* 공지사항 */ CHAT_TYPE_PARTY, /* 파티말 */ CHAT_TYPE_GUILD, /* 길드말 */ CHAT_TYPE_COMMAND, /* 일반 명령 */ CHAT_TYPE_SHOUT, /* 외치기 */ CHAT_TYPE_WHISPER, CHAT_TYPE_BIG_NOTICE, CHAT_TYPE_MONARCH_NOTICE, #ifdef __ENABLE_DICE_SYSTEM__ CHAT_TYPE_DICE_INFO, #endif CHAT_TYPE_MAX_NUM };
×
×
  • Create New...

Important Information

Terms of Use / Privacy Policy / Guidelines / We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.