• Content count

  • Joined

  • Last visited

Tasho last won the day on July 16

Tasho had the most liked content!

Community Reputation

57 Excellent

About Tasho

  • Rank
  • Birthday 04/12/1994

Profile Information

  • Gender
  1. open

    Try that. // Change the hook function with this: void MoveHook::hook(CInputMain* self, iCHARACTER* ch, const char* data) { if (!ch || !self || !*data) return; if (ch->m_counterxxx == 100) ch->m_counterxxx = 0; ch->m_counterxxx++; instance()->detour->GetOriginalFunction()(self, ch, data); } // Search for: void CHARACTER::Destroy() and add inside: m_counterxxx = 0; // Search for: void CHARACTER::Disconnect(const char * c_pszReason) and add inside: m_counterxxx = 0; The crash is generated when he destroyed the desc, you should check your class destroy and stop if something is nullptr and try to reinitializate the variables store to default. Without full code i can't say too much about that, but i hope you get my points.
  2. open

    yah ... im not a good designer soo I can't make cool backgrounds. xD
  3. open

    yah, first a need to find a good place to make the position for the backgraund... now I dont really like the contrast.
  4. Hi there comunity, today I was a little bored and an idea came to mind, what if I made a replica of the interface from League of Legends for Metin2. So this is the result: I just want to know what do you think and if you think that I need to continue with it.
  5. Replace: if (pkAff->dwType == listAffects) With this: if (pkAff->dwType == listAffects[i])
  6. c++

    bool MessengerManager::IsBlocked(MessengerManager::keyA account, MessengerManager::keyA companion) { return (m_BlockRelation[account].find(companion) != m_BlockRelation[account].end() || m_BlockRelation[companion].find(account) != m_BlockRelation[companion].end()); } There are more things like this what you can do, also there not need a "else" you can do it like this too: if (something) return true; return false;
  7. I think you don't know to read c++ code, the contribution doesn't was the "removed some parentheses" was this: LPDUNGEON dung=it->second.pCharacter->GetDungeon(); dung->ExitAllToStartPosition(); To this: it->second.pCharacter->GetDungeon()->ExitAllToStartPosition(); There we speak about good practice code, if you don't understand, not speak. EDIT: Why you need to do a spam for this? You just make +1 without do something, just speak about me and have child behavior, i do shortened the code and show you the good practices. Show us your skills if you are better then, at the moment you just speak without sense, people what say "i'm better then you", they are more low.
  8. void CParty::UpdateOfflineState(DWORD dwPID) { TPacketGCPartyAdd p; p.header = HEADER_GC_PARTY_ADD; p.pid = dwPID; memset(p.name, 0, CHARACTER_NAME_MAX_LEN + 1); for (TMemberMap::iterator it = m_memberMap.begin(); it != m_memberMap.end(); ++it) { if (it->second.pCharacter && it->second.pCharacter->GetDesc()) { if (it->second.pCharacter->GetDungeon()) it->second.pCharacter->GetDungeon()->ExitAllToStartPosition(); else it->second.pCharacter->GetDesc()->Packet(&p, sizeof(p)); } } }
  9. This is already public since 5 years ago. quest teleport_player begin state start begin when login begin cmdchat("teleport_player "..q.getcurrentquestindex()) end when button or info begin local sname = getinput("getinput") if sname == "" then return end local u_vid = find_pc_by_name(sname) local m_vid = pc.get_vid() if u_vid == 0 then return end local m_name = pc.name local old = pc.select(u_vid) local x,y = pc.get_x()*100,pc.get_y()*100 pc.select(old) if u_vid == m_vid then return end local ok_sign = confirm(u_vid, string.format("Player "..m_name.." want to teleport on you, accepted?", pc.name), 30) if ok_sign == CONFIRM_OK then pc.warp(x, y) end end end end You just duplicate function do_warp and add call from quest..and called "new system". PS: You should stop to rename all functions with your name because that is a child act, to show the people like "i do that" but reality is just duplicate something what ymir already did 10+ years ago. But thanks for release anyway.
  10. solved

    when 20092.chat."Test" with pc.count_item(50602) begin You can.
  11. solved

    if pc.count_item(50602) then -- Check if exist a item in inventory (MIN 1) if pc.count_item(50602) >= value then -- Check if exist a item in inventory (MIN 1 | MAX: value)
  12. I am single who hears 2 songs in one video? Thanks for release.
  13. open

    I speaking about python not lua oh my god and what error say. 0617 03:07:26595 :: IndexError 0617 03:07:26595 :: : 0617 03:07:26595 :: list index out of range 0617 03:07:26595 :: Already i give him a option to check it list by catID if exist, you give him "has_key" what is totally wrong. if int(catId) in self.items: I was speaking about your "has_key" on list python, how you can explain that if you say "you not was blind". You should learn bit python (because as i see you didn't know syntax of lua and python), maybe that say you something. if self.items.has_key(int(catId)): python 'list' object has no attribute 'has_key' I'm not trying to offense you, but as i say there was a list not a dictionary, because if was dictionary was get KeyError not list index out of range, or maybe i'm wrong? @NeXoN That should solved your problem. def SelectCategory(self, catId): categoryID = int(catId) if self.selectedCategory == categoryID or categoryID not in self.items: return self.selectedCategory = categoryID self.categoryList.SetButtonDown(categoryID) self.itemList.ClearItems() for item in self.items[categoryID]: self.itemList.InsertItem(item[0], item[1], item[2], item[3], item[4], item[5], item[6]) PS: @Shang itemsList = [] print (itemsList[999]) #Traceback (most recent call last): #File "python", line 2, in <module> #IndexError: list index out of range itemsDict = {} print (itemsDict[999]) #Traceback (most recent call last): #File "python", line 2, in <module> #KeyError: 999 PS: Now i hope you understand what is list and what is dictionary, have a nice day.
  14. Why not? ch->SetQuestFlag("exp_block", type); ch->ChatPacket(CHAT_TYPE_INFO, "<ExpBlockSystem> [%d] You %s your experience.", ch->GetQuestFlag("exp_block"), (type == 0 ? "lock" : "unlock"));
  15. open

    Array Is a list theoretical , not a dictionary , 'list' no have attribute 'has_key', so that doesn't work. The check of list value should look like that, a simple version: if int(catId) in self.items: # do something