Jump to content

VegaS

Banned
  • Posts

    363
  • Joined

  • Last visited

  • Days Won

    40
  • Feedback

    0%

Everything posted by VegaS

  1. You're welcome, we try to help as much as time allows. But nobody here is master, everyone is good at what he do and in different areas. Some of the world's more famous "programmers" are famous not so much for their programming skills (though they may be excellent) but for their innovations in certain aspects of this process - is the personality of that person.
  2. This is a user contest and is not related in any form to metin2dev. Hello everybody and especially our artists, What you need to do in order to win is to create a signature for metin2dev. Deadline: 01.12.2016 (Need to be 15+ participants) Sizes of signatures: 450x200 or 600x300 (horizontal signature). PS: Need to contain the name of forums, logo or other text about (Metin2Dev). Prizes will be awarded from me via paypal. Theme: Winter: must be metin2 related and something about forums. No specific render to use: you can choose it freely! If you are really the best, i won't let you without being awarded. the prizes are: 1st place: 35E 2nd place: 20E 3rd place: 10E Rules: You can enter only 1 signature into this contest. Once you have entered a signature, you may not change your entry. The signature must fit the theme chosen. The signature cannot be pre-made. Ripping of any kind is strictly forbidden and will automatically remove you from the contest. Use an anonymous uploader such as Imgur or Tinypic. You can use every kind of editing program such as: Gimp, Photoshop, Paint etc A screenshot of the .psd of the signature must be posted too, so that we can see all the different layers of your work. This should represent the metin2dev board (no official), signature will be worn by many users even on other forums for a more intensive advertising, and for the intended uses of each user if desired. For people who appreciate the idea, and would not attend are asked to provide a post like this to know the number of like for this activity. Good luck, and sorry for my english ^^ PS: Prize is not very big, but it matters intent xD Copyrights about idea and some texts from topic: WoM2
  3. I did not understand what you want, but I think you look for a person to make you a trailer for your server. So, the guy one of the best in this domain is here: @Alekos Portfolio: https://www.youtube.com/user/KyrasosMitin2/videos
  4. I dont read all what you say but maybe this can be help you, idk. xD Here is better version via c++ //@ //server//locale/country/test.lua: quest get_duration begin state start begin when 70001.use begin local item_id = item.get_id() syschat("<Debug Mode> QUEST get_duration result : "..pc.get_duration(item_id).." xD") end end end //@ //server//locale/country/questfunction: //1.) Add where you want: pc.get_duration //@ /svn/Server/game/src/questlua_pc.cpp //1.) Search: { "reset_status", pc_reset_status }, //2.) Add bellow: { "get_duration", pc_get_duration }, //3.) Search: int pc_get_hp(lua_State * L) { lua_pushnumber(L, CQuestManager::instance().GetCurrentCharacterPtr()->GetHP()); return 1; } //4.) Add bellow: int pc_get_duration(lua_State * L) { if (!lua_isnumber(L, 1)) { sys_err("QUEST get_duration call error : wrong argument"); return 0; } int duration = lua_tonumber(L, 1); LPCHARACTER ch = CQuestManager::instance().GetCurrentCharacterPtr(); if (ch) lua_pushnumber(L, ch->GetDuration(duration)); return 1; } //@ /svn/Server/game/src/char.h //1.) Search: void ClearItem(); //2.) Add bellow: int GetDuration(int dwItem); //@ /svn/Server/game/src/char.cpp //1.) Add in end line: int CHARACTER::GetDuration(int dwItem) { char szQuery[CHAT_MAX_LEN + 1]; snprintf(szQuery, sizeof(szQuery), "SELECT duration FROM player.new_petsystem WHERE id = %d LIMIT 1", dwItem); std::auto_ptr<SQLMsg> msg(DBManager::instance().DirectQuery(szQuery)); int duration = 0; if (msg->Get()->uiNumRows == 0) { return duration; } else { MYSQL_ROW row = mysql_fetch_row(msg->Get()->pSQLResult); str_to_number(duration, row[0]); /* Poker face */ return duration; } }
  5. Yes is released on category c++. 1. Version what is released is from 16.02.2016, is the first version of system. (some people was changed name and some informations, and put other date.) 2. Some bugs. 3. Ugly and crap code (sorry for that, was my first system without revision code). 4. Well, this is a prime indicator that tells whether or not you will succeed in life. 5. In the Holy Bible says: "Seek and you shall find." 6. Hint: Part python
  6. Or much funny like this: if itemVnum in (50011, 50012, 50013): pItem_list = { 50011 : ["[i]", "TextLine 1!", "TextLine 2!", "TextLine 3!", "TextLine 4!"], # bla bla bla 50012 : ["[i]", "TextLine 1!", "TextLine 2!", "TextLine 3!", "TextLine 4!"], 50013 : ["[i]", "TextLine 1!", "TextLine 2!", "TextLine 3!", "TextLine 4!"]} self.AppendSpace(5) for i in xrange(len(pItem_list[itemVnum])): self.AppendTextLine(pItem_list[itemVnum][i], self.SPECIAL_POSITIVE_COLOR)
  7. File: root/uiInventory.py: //1.) Search: if self.wndBelt: self.wndBelt.Show(self.isOpenedBeltWindowWhenClosingInventory) //2.) Delete and replace with this: if self.wndBelt: self.wndBelt.Show() //1.) Search: def Show(self, openBeltSlot = FALSE): self.__LoadWindow() self.RefreshSlot() ui.ScriptWindow.Show(self) if openBeltSlot: self.OpenInventory() else: self.CloseInventory() //2.) Delete and replace with this: def Show(self): self.__LoadWindow() self.RefreshSlot() ui.ScriptWindow.Show(self) self.OpenInventory() Not tested, but need to work this shit xD ^^
  8. "Part python" fucking easy here (example): you need to duplicate other func haha if app.PARTY_EXP_DISTRIBUTION_EQUAL: partyEqual = ui.RadioButton() partyEqual.SetParent(self) partyEqual.SetWindowHorizontalAlignCenter() partyEqual.SetEvent(ui.__mem_func__(self.OnClickEXPDistributeEqual)) partyEqual.SetUpVisual("d:/ymir work/ui/public/large_button_01.sub") partyEqual.SetOverVisual("d:/ymir work/ui/public/large_button_02.sub") partyEqual.SetDownVisual("d:/ymir work/ui/public/large_button_03.sub") partyEqual.SetText(localeInfo.PARTY_EXP_DISTRIBUTION_MODE_EQUAL) partyEqual.SetToolTipText(localeInfo.PARTY_EXP_DISTRIBUTION_MODE_EQUAL_TOOLTIP, 70) partyEqual.Show() self.modeButtonList[player.PARTY_EXP_DISTRIBUTION_EQUAL] = partyEqual if app.PARTY_EXP_DISTRIBUTION_EQUAL: def OnClickEXPDistributeEqual(self): self.__SetModeButton(self.distributionMode) if self.isLeader: net.SendPartyParameterPacket(player.PARTY_EXP_DISTRIBUTION_EQUAL) if app.PARTY_EXP_DISTRIBUTION_EQUAL: partyMenu.SetSize(106, 70 + 70 + 30) else: partyMenu.SetSize(106, 70 + 70)
  9. File: //UserInterface//InstanceBase.cpp: //1.) Search: if (GetVirtualID() == rkInstVictim.GetVirtualID()) return false; //2.) Add bellow: #ifdef ENABLE_DISABLE_ATTACK_SPECIALS_MAP //vegasfunctionTest874 std::string strGetMapName = CPythonBackground::Instance().GetWarpMapName(); const char* arrayMapList[] = {"metin2_map_a1", "metin2_map_b1", "metin2_map_c1"}; /* loaded from atlasinfo.txt */ for (int idx = 0; idx < _countof(arrayMapList); idx++) { if (IsPC() && rkInstVictim.IsPC() && arrayMapList[idx] == strGetMapName) return false; } #endif File: //UserInterface//Locale_inc.h: #define ENABLE_DISABLE_ATTACK_SPECIALS_MAP
  10. Ignore him, he searched only attention and make +1. Translate here (thanks to google) :
  11. Haha bro, that is nice xD *this script and all script for pickup, called a simple function player.PickCloseItem() with delay automatically. He want to make a special functions to send to binary to check vnum xD. That means you need to make a new functions in binary. Ahh here is a point how to make, i made this long time ago. if app.ENABLE_SPECIAL_AUTOPICKUP_BY_VNUM def BINARY_AutoPickUp_Append(self, reason): import player as ch import chat as msg if reason == "open": global bCheckActive if bCheckActive == 0: bCheckActive = 1 ch.PickItemByVnum() # New Function need to create on binary msg.AppendChat(msg.CHAT_TYPE_INFO, "Enabled BINARY_AutoPickUp_Append") else: msg.AppendChat(msg.CHAT_TYPE_INFO, "Disabled BINARY_AutoPickUp_Append") bCheckActive = 0 #ifdef ENABLE_SPECIAL_AUTOPICKUP_BY_VNUM void CPythonPlayer::PickItemByVnum(DWORD dwItem) { /********* * author: VegaS * description: Function called from python for autopickup with check to pick item only if exist in dwTableAcces * date: Feb. 27 2016, 01:36 am */ CInstanceBase * ch = NEW_GetMainActorPtr(); if (!ch) return; TPixelPosition chPos; ch->NEW_GetPixelPosition(&chPos); DWORD dwTableAcces[] = { 50011, 53001, 53002, 53003, 53004, 53005, 53006, 53007, 53008, 53009, 53010, 53011, 53012, 53013, 53014, 53015, 53016, 53017, 53018, 53019, 53020, 53021, 53022, 53023, 53024, 53025 }; for (DWORD idxVnum = 0; idxVnum < _countof(dwTableAcces); idxVnum++) { if (dwItem == dwTableAcces[idxVnum]) { TraceError("CPythonPlayer::PickItemByVnum:: Vid = [%d] Name = [%s] Vnum = (%d)", ch->GetVirtualID(), ch->GetNameString(), dwItem); SendClickItemPacket(dwItem); } else TraceError("CPythonPlayer::PickItemByVnum:: Vnum %d is not in table for can pickup him.", dwItem); } } #endif If u use small part of brain you can do this fucking easy ^^.
  12. You can not do that because there a lot the types of programs that you can find ip which are connected in launcher or with fucking shit command. You can find ip and port's core very easy and any guy can do that. - Open notepad - Copy the following lines @echo @color 09 @netstat -n @echo. @pause - Save as getip.cmd - Move it to the desktop (or anywhere that catches your fancy). - Run the launcher or main (much better if minimized). - And when you are on the server select screen double click on getip.cmd and you will see the IP and PORT address of the server. But it can be done through other methods, but not to protect you 100%.
  13. Curea2 (Shit) - Stolen stuff from Karma2. Please no speak about curea2 here. Ok, i will speak with staff member today and if I receive consent i will post interface karma2 public for all people, to stop to sell other shit guy.
  14. It is not allowed to do so here. A member of staff was part of the team Karma2, so it no will be possible sale of free things or posting of links leading to their work. This topic is considered as part of the hacking, because the client is / was encrypted with a pretty good protection, and who will sell or will post it is not allowed. Than the main author of the server if I am not mistaken was * DeSkOrNeR, only he can post those links or sell these files. All the best, and next time try creating your own stuff.
  15. root/uiInventory,py (search and delete) this: if self.wndBelt: self.wndBelt.Show(self.isOpenedBeltWindowWhenClosingInventory) And delete EQUIPMENT_BELT from inventoryWindow.
  16. Hello Community, as you know, our serverstart was moved on to an indefinite time because of legal problems. But we have good news. The start will only be moved a couple of days. Please wait for more Information till tomorow. Then we have ALL INFORMATION for you. It will be before the evening tomorow! THANK YOU!.
  17. if (!IsGM() && IsPolymorphed() && pkVictim->IsPC() && 5 <= GetLevel() && GetLevel() <= 15) { if (GetEmpire() != pkVictim->GetEmpire()){ const char * m_nEmpire[EMPIRE_MAX_NUM] = {"", "Red", "Yellow", "Jinno"}; for (int index = 1; index < 3; index++) { if (pkVictim->GetEmpire() == index) { ChatPacket(CHAT_TYPE_INFO, "<<Debug>> Informations about victim <Name: %s> <Level: %d> <Empire %s> cannot make that!", pkVictim->GetName(), pkVictim->GetLevel(), m_nEmpire[index]); return false; } } } }
  18. Photo from me (discussion between me and an owner who is in that list, one of the largest.) Stop stealing this photo and put it on other forums.
  19. The time has come. Congratulations, Gameforge (if it is true). http://lavanda2.net/ - Online
  20. int m_nCheckMyLevel = 15, m_nCheckVictimLevel = 15; if (!IsGM() && IsPolymorphed() && pkVictim->IsPC()) /** If you are GM, you can attack other player when u are polymorphed, but if you not are a GM, cannot make this. **/ { if (GetLevel() < m_nCheckMyLevel && pkVictim->GetLevel() >= m_nCheckVictimLevel) /** If you have level the lesser 15 and your victim the level as high as 15, you will not be able to attack him. **/ { ChatPacket(CHAT_TYPE_INFO, "<<Debug>> Informations about victim <Name: %s> <Level: %d>, cannot make that.", pkVictim->GetName(), pkVictim->GetLevel()); return false; } } m_nCheckMyLevel = /** Check if you have the lesser 15 **/ m_nCheckVictimLevel = /** Check if the victim is greater than or equal to 15. **/
  21. In much you were right about: your method might be correct depending on how you do it , but it will result in you having to wast more time. PS: For those who want another example to work more efficiently, feel free to forward your ideas. List = { "selected" : { 0 : 0, 1 : 0 } } self.m_nTCheckBox = { 0 : [uiModuleTest.CheckTable(self, x, x, lambda x = 0: self.SetArgument(x)), 0, self.SetText(x, y, "A")], 1 : [uiModuleTest.CheckTable(self, x, y, lambda x = 1: self.SetArgument(x)), 0, self.SetText(x, y, "B")], } def SetArgument(self, x): for index in xrange(len(List["selected"])): if x == index: if List["selected"][x] > 0: self.m_nTCheckBox[x][0].AppendCheck(false) List["selected"][x] = 0 else: self.m_nTCheckBox[x][0].AppendCheck(true) List["selected"][x] = 1 chat.AppendChat(chat.CHAT_TYPE_INFO, "<Index selected> <Argument %d> <Check %d>" % int(x), int(List["selected"][index]))
  22. I would prefer to work more nice. List = [ ] List = [ [[ui.TextClass, 0], [0, 0], [x, y], [["SetDefaultFontName", [""]]], []], [[ui.ImageClass, ""], [0, 0], [x , y], [["LoadImage", ["image"]]], ["movable", "float"]], ] def SetText(self, index, msg = None): self.List[0].SetText("Text" + msg) self.List[1].Show() self.List = [ {"name": "A", "number": 1}, {"name": "B", "number": 2}, ] self.Select = {} self.Select["A"] = self.Loader.Button(self.Board, 'A', '', 15, 50, self.Main, 'A', 'A', 'A') self.Select["B"] = self.Loader.Button(self.Board, 'B', '', 15, 50*2, self.Main, 'B', 'B', 'B') for i in xrange(len(self.List)): self.Select[self.List[i]["name"]].Show()
  23. [File: src/game/char_battle.cpp -> Function: bool CHARACTER::Attack(LPCHARACTER pkVictim, BYTE bType)] if (!IsGM() && IsPolymorphed() && pkVictim->IsPC()) // If you are GM, you can attack other player when u are polymorphed, but if you not are a GM, cannot make this. { ChatPacket(CHAT_TYPE_INFO, "<<Debug>> Victim %s is a player, you cannot attack him!", pkVictim->GetName()); return false; }
×
×
  • 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.