Jump to content

EnKor

Premium
  • Posts

    239
  • Joined

  • Last visited

  • Feedback

    0%

Posts posted by EnKor

  1. 2 minutes ago, Amun said:

    Because line[0] isn't 491, line[0] is 4, because 4 is the first character on that line. 

    If you'd want it to work that way, you'd actually have to use it like this:

    if(GetRace() == atoi(line))

    { do something }

     

    You have to convert the string(because that's what line is) to a number. Line is ALWAYS a string, no matter what the content of that line is.

    "Because line[0] isn't 491, line[0] is 4, because 4 is the first character on that line. " Ok. i got it!

     

    if(GetRace() == atoi(line)) <<<< all i need! lol

    ❤️ ❤️ THANK YOU!!!!!!  ❤️ ❤️ 

     

     

    • Love 1
  2. 56 minutes ago, Amun said:

    Why not just add specular to your client's and dump_proto's TMobTable and then just set it while building mob_proto? The client's going to load all of it anyway, so I guess that's the most sensical thing to do.

    Something like this

      Reveal hidden contents
    typedef struct SMobTable
    {
    	[...]
    	// mob specular
    	float		fSpecular;
    } TMobTable;

     

    Add the same thing to your dump_proto's TMobTable, and then, in

    bool Set_Proto_Mob_Table

    Add in the beginning

    	char	line[256];
    	FILE* fp;
    
    	fopen_s(&fp, "myMobsWithSpecularFile.txt", "r");
    	if (!fp)
    		return false;
    
    	// using a map just so we don't have to loop over all mobs to see if we have one
    	std::unordered_map<uint8_t, uint8_t> vMobWithSpecular;
    	while (fgets(line, 256, fp))
    	{
    		if(line[0] == '\n' || line[0] == '#')//skip empty lines and the ones starting with #
              continue;
    		
          	vMobWithSpecular.emplace(std::make_pair(atoi(line), 1));
    	}
    
    	fclose(fp);

    And at the end, before return just add:

    	if (vMobWithSpecular.find(mobTable->dwVnum) != vMobWithSpecular.end())
    		mobTable->fSpecular = 1.0f;
    	else
    		mobTable->fSpecular = 0.0f;

    Now your locale mob_proto has specular and your client will load all of it automatically when building m_NonPlayerDataMap.

    You'll just have to make a function to get that specular when you want to use it. Something like this:

    float CPythonNonPlayer::GetMonsterSpecular(DWORD dwVnum)
    {
    	const TMobTable* c_pTable = GetTable(dwVnum);
    	if (!c_pTable)
    		return 0;
    
    	return c_pTable->fSpecular;
    }

     

    help me understand this please!

    line[0] returns value inside .txt right?  for exemple, if 491 is the only value inside .txt

    why client cant "convert" line[0] to 491?

    why this dont work:     if (GetRace() == line[0])  

    Why binary cant see line[0] is 491 ?

    I only need to make this line... nothing more 😕

     if (GetRace() == line[0])    /////  if (GetRace() == 491 )    <<<<< this is all i need...

  3. Just now, WeedHex said:

    Ohhh I understood python ahahah

     

    Should be a thing like that:

    	FILE* fpr = fopen("test.txt", "r");
    	if (fpr)
    	{
    		while (fgets(str, buffSize, fpr))
    		{
    			printf("%s", str);
    		}
    	}
    	fclose(fpr);

    I don't have time to run the code now sorry, I'm using other formats for these things with new c++. Let me know the output ò_ò

     

    Back allway back to start 😛

    I can print the value.... But i need to check GetRace() with value from inside .txt

    if (GetRace() == "%s", str)    <<<< something like this

  4. Just now, WeedHex said:

    Idk, I would do it in c++ only. If there aren't lot of mobs I would skip also the txt reading making a const list/map.

     

    before and its 100% working. But ugly as hell lol

    Spoiler
    if (
    		GetRace() >= 491 && GetRace() <= 494 ||
    		GetRace() == 591 ||
    		GetRace() >= 691 && GetRace() <= 693 ||
    		GetRace() >= 791 && GetRace() <= 795 ||
    		GetRace() >= 1091 && GetRace() <= 1095 ||
    		GetRace() == 1304 || GetRace() == 1334 ||
    		GetRace() >= 1306 && GetRace() <= 1310 ||
    		GetRace() >= 1901 && GetRace() <= 1906 ||
    		GetRace() >= 2091 && GetRace() <= 2094 ||
    		GetRace() >= 2191 && GetRace() <= 2192 ||
    		GetRace() >= 2206 && GetRace() <= 2207 ||
    		GetRace() == 2291 ||
    		GetRace() >= 2306 && GetRace() <= 2307 ||
    		GetRace() >= 2491 && GetRace() <= 2492 ||
    		GetRace() >= 2494 && GetRace() <= 2495 ||
    		GetRace() >= 2591 && GetRace() <= 2598 ||
    		GetRace() >= 3090 && GetRace() <= 3091 ||
    		GetRace() >= 3190 && GetRace() <= 3191 ||
    		GetRace() >= 3290 && GetRace() <= 3291 ||
    		GetRace() >= 3390 && GetRace() <= 3391 ||
    		GetRace() >= 3490 && GetRace() <= 3491 ||
    		GetRace() >= 3590 && GetRace() <= 3591 ||
    		GetRace() >= 3595 && GetRace() <= 3596 ||
    		GetRace() >= 3690 && GetRace() <= 3691 ||
    		GetRace() >= 3790 && GetRace() <= 3791 ||
    		GetRace() >= 3890 && GetRace() <= 3891 ||
    		GetRace() >= 3960 && GetRace() <= 3964 ||
    		GetRace() >= 5161 && GetRace() <= 5163 ||
    		GetRace() == 6005 || GetRace() == 6009 ||
    		GetRace() == 6051 || GetRace() == 6109 ||
    		GetRace() == 6116 || GetRace() == 6151 ||
    		GetRace() == 6193 || GetRace() == 6207 ||
    		GetRace() >= 6391 && GetRace() <= 6392 ||
    		GetRace() >= 6407 && GetRace() <= 6408 ||
    		GetRace() >= 6415 && GetRace() <= 6419 ||
    		GetRace() >= 6430 && GetRace() <= 6438 ||
    		GetRace() >= 6500 && GetRace() <= 6504 ||
    		GetRace() >= 9002 && GetRace() <= 9003 ||
    		GetRace() == 9005 || GetRace() == 9008 ||
    		GetRace() >= 9012 && GetRace() <= 9014 ||
    		GetRace() == 20007 || GetRace() == 20009 ||
    		GetRace() >= 20015 && GetRace() <= 20016 ||
    		GetRace() >= 20047 && GetRace() <= 20059 ||
    		GetRace() == 20091 ||
    		GetRace() >= 20104 && GetRace() <= 20125 ||
    		GetRace() >= 20201 && GetRace() <= 20252 ||
    		GetRace() >= 20254 && GetRace() <= 20255 ||
    		GetRace() >= 20257 && GetRace() <= 20277 ||
    		GetRace() == 20422 ||
    		GetRace() >= 30301 && GetRace() <= 30306 ||
    		GetRace() >= 30309 && GetRace() <= 30313 ||
    		GetRace() >= 34001 && GetRace() <= 34037 ||
    		GetRace() == 34039 ||
    		GetRace() >= 34041 && GetRace() <= 34042 ||
    		GetRace() >= 34045 && GetRace() <= 34050 ||
    		GetRace() >= 34053 && GetRace() <= 34065 ||
    		GetRace() >= 34070 && GetRace() <= 34072 ||
    		GetRace() >= 34077 && GetRace() <= 34078 ||
    		GetRace() >= 34082 && GetRace() <= 34085 ||
    		GetRace() >= 34090 && GetRace() <= 34094 ||
    		GetRace() == 34097 || GetRace() == 34099 ||
    		GetRace() >= 34103 && GetRace() <= 34105 ||
    		GetRace() >= 34109 && GetRace() <= 34111 ||
    		GetRace() >= 34114 && GetRace() <= 34121 ||
    		GetRace() >= 34133 && GetRace() <= 34137 ||
    		GetRace() >= 34141 && GetRace() <= 34143 ||
    		GetRace() >= 34145 && GetRace() <= 34146 ||
    		GetRace() == 34148 ||
    		GetRace() >= 34150 && GetRace() <= 34155 )
    
    	{
    		fSpecular = 1.0;
    	}

     

     

    After if i get some some help:

    Spoiler
    FILE *fpr;
    	char str[100];
    	fpr = fopen("test.txt", "r");
    
    	if (fpr == NULL) {
    		return;
    	}
    
    	while (1)
    	{
    		if (fgets(str, 10, fpr) == NULL)
    			break;
    		else
    			printf("%s", str);	//file print 101 from inside .txt
    
    			if (GetRace() == "%s", str)	// and i need the value 101,1022 etc.... from inside txt in there
    			{
    				fSpecular = 1.0;
    			}
    			
    	}
    	fclose(fpr);

     

     

  5. I have .txt file with values:

    101
    102

     

    but i realy dont know how to get the all values from inside txt

    Spoiler
    FILE *fpr;
    	char str[100];
    	fpr = fopen("test.txt", "r");
    
    	if (fpr == NULL) {
    		return;
    	}
    
    	while (1)
    	{
    		if (fgets(str, 10, fpr) == NULL)
    			break;
    		else
    			printf("%s", str);	//file print 101 from inside .txt
    
    			if (GetRace() == "%s", str)	// and i need the value 101, 102 and all values from inside .txt in here
    			{
    				//so this function can work
    			}
    			
    	}
    	fclose(fpr);

     

    Any help please 😕

  6. [EDIT]:2 How can i make this?

    Spoiler
    void CActorInstance::SetShape(DWORD eShape, float fSpecular)
    {
    	
    #ifdef ENABLE_NPC_SPECULAR
    	
    	FILE *fpr;
    	char str[100];
    	fpr = fopen("npc_specular.txt", "r");
    
    	if (fpr == NULL) {
    		return;
    	}
    
    	/*Loop for reading the file till end*/
    	while (1)
    	{
    		if (fgets(str, 10, fpr) == NULL)
    			break;
    		else
    			printf("%s", str);
    			if (GetRace() == need_something_here_but_dont_know_what)
    			{
    				fSpecular = 1.0;
    			}
    	}
    	/*Closing the input file after reading*/
    	fclose(fpr);
    
    
    
    
    #endif
    
    ....
    }

     

     

  7. On 9/5/2022 at 9:20 PM, pewpew5 said:

    Hello sorry to bother you guys again! But can yah help me with making a file.quest that checks if an emotion mask is equipped and if so block exp gain.

    My first question is i have seen suggestions of pc.block_exp(), the input on the function is true = block and false = unblock?

    my second question is how do i check if a certain item is equipped using the functions from the function list?

     

     

     

    Maybe this help:

    ####  Src/game/char.cpp

    Spoiler
    ///in: 		case POINT_EXP:
    
    //Search:
    				[...]
    				else
    				{
    					if (gPlayerMaxLevel <= GetLevel())
    						return;
    
    					if (test_server)
    						ChatPacket(CHAT_TYPE_INFO, "You have gained %d exp.", amount);
                                                         
    //Add after:
                        LPITEM pItem = GetWear(WEAR_WEAPON);
    					if (NULL != pItem && pItem->GetVnum() == 10){
    						return;
    					}                                

     

     

     

     

     

     

     

     

  8. On 11/6/2021 at 6:18 AM, narcisxb said:

    I literally tested the code. As soon as I commented it I could add 6/7 again. (I tested it two or three times). With this fix tou can t add 6/7 (it always fails) using that system. Give it a try yourself I was just as surprised.

    I got 100% same error as you. But in my case it was because i add FIX before 

    Spoiler
    for (int i = 0; i < MAX_APPLY_NUM; ++i)
    	{
    		const TItemAttrTable& r = g_map_itemRare[i];
    
    		if (r.dwApplyIndex != 0 && r.bMaxLevelBySet[nAttrSet] > 0 && HasRareAttr(i) != true)
    		{
    			avail.push_back(i);
    		}
    	}

     

    Fix need to be after like he say

     

    On 7/4/2021 at 2:20 PM, Gurgarath said:

    Under this block of code:

    	for (int i = 0; i < MAX_APPLY_NUM; ++i)
    	{
    		const TItemAttrTable& r = g_map_itemRare[i];
    
    		if (r.dwApplyIndex != 0 && r.bMaxLevelBySet[nAttrSet] > 0 && HasRareAttr(i) != true)
    		{
    			avail.push_back(i);
    		}
    	}

    Add the following check:

    if (avail.empty())
    	{
    		sys_err("Couldn't add a rare bonus - item_attr_rare has incorrect values!");
    		return false;
    	}

     

     

  9. 8 minutes ago, Syreldar said:

    So what you're saying is that humanity as a whole is a big scam since literally every human being prefers the least effort way of doing things.

    Not so far from the truth, but still delusional.

    There's alot of things that make people scam others. One for one reason, one for other. But for me all start when people start asking money to help others in very simple steps. And yes! I start in metin2 when people help for free and for pleasure. and i was present in metin2 when people start "asking money". At the time, i see this will happen.

    And i can agree with you in "but still delusional."... but, i'm not "so far from the truth" 

     

    edit: xD

    I recall now, some years ago, in skype we have a very very very big group in there. Many of the best Developers this days was in that skype group. And i recall 100% of one BIG discusion i have with T4EMP (something like this) because of this point. Someone start asking money to help in that skype group.... And i disagree and that generate a BIG discusion lol! This was.... 8 years ago?!

  10. 3 minutes ago, Syreldar said:

    "...You don't create scammers, it's human nature to try and get advantages with the least effort.

    What you're saying makes no sense.

    It's not what scammers do? "get advantages with the least effort"

    3 minutes ago, Syreldar said:

    What you're saying makes no sense.

     

    makes all sence for me 😕

  11. im not complain about anything 😞 i just say my point of view why people scam (or why i belive it is)

    If you wanna ask money to help other... do it! If you wanna help for free do it too.... I only say why i think people scam thats all 😕

     

    I don't pay for "starter developers". If i need to pay someone for services, i will look for REAL Developers. Like Vegas, Marty and many others. Its not hard at all find True developers in metin2dev

    And yes, Metin2dev, Turkkmo, epvp and many many many others forums have almos everyting you need to solve bugs without pay anything. If you spend time to search for soluction, you will find it. No reason at all to get scam or scam others!

    But once again, and my final 2cents 😄   "Asking money to solve free bugs create scammers"

  12. 8 hours ago, dumita123 said:

    What you're trying to say is that the "noobs" will only climb their way up the ladder by scamming, however if that's what they're thinking, it's already a scammer mindset."...

    That's not at all what im saying. We all was noob one day. All of us! And we're NOT all scammers. Not even 95% of us. And i belive MODTeam ban all scammers in here. so, Metin2dev is a very clean place.

    What im trying to say is: Every player asking money to solve simple bugs. Who asking for help, most of the times cant find the soluction and the soluction is free. But many players ask for money to help others. And this create Scammers! Because later, they will find the soluction free somewhere, but he have to pay! Im talikng about small bugs\small lines of code!

    And once again, i 100% hate scammers but my english is bad and i can't explain better what i think about scammers and why they scam. 

     

    8 hours ago, dumita123 said:

    "....
    TL;DR: helping is not spoon-feeding. Information is key, use google before asking for help.

     

    And this.... this is part of the problem but i dont know how to explain. Why you say "google before asking" if we are talking about Metin2 in Metin2dev forum. 

    This forum was not supose help others!? People can go google and try to find help. But if they know Metin2dev, one or even maybe, the best place for all about Metin2dev... why they need google?

    Please.... dont get me wrong. But i belive, if someone ask you for some kind of help. I realy belive you will say "Go google or i can help you for XXXXX€"

    Then you came here, Search the topic someone did explain how to solve the problem, make copy-paste and you sell the soluction. Because someone, cant find it or dont know how to find it.

     

    And once again... sorry.... but what you did was not HELP\sell Service. What you did was Scam!  

     

  13. 1 hour ago, ASIKOO said:

    It won't happen here, I check the global moderation history of the forum every day. I may not always see a deleted question, I restore the post and the topic author will get warning points.

    Metin2dev is one of the best forum for metin2

    And please, dont get me wrong of what i say. My english is very bad and i can't find the right words to explain better what i say. 

    But the "main" problem for me with scammers is that. Scammers players starts when people start asking money to help is simple problems.

     

    Here it go a very very simple exemple:

     

    When i start in Metin2 +/- 6 years ago. Shogun make a 100% step-by-step in how to start a clean server. (He show us every single step we need to create a server and compile source) This was for FreeBSD 9.2 if im not mistake. (at the time, there was many others free tutorials, but for me shogun did the perfect job!

    If people wanna start today, with 100% clean files mainline+novaline and  Free BSD15!? 16? Mysql8?? 9!? Theres no step-by-step tutorial. Simple... if users can't create own files.... well.... they will scammer to buy ones. and once again, i 100% hate scammers!!!!

    The point is: in preset day, its very hard for noob players start is own project. Scammer is more easy then start is own projects (Last version of BSD+last sql+clean source etc...)

     

     

    • Good 1
  14. On 8/26/2022 at 2:34 AM, Owsap said:

    There are several scammers and resellers out there but there are plenty more and even worse...
    I would say one of names but I guess some of you already know the top scammers out there.

    These people with this kind of behavior are a complete disgrace to society and themselves, toxic in the Metin2 community and greedy to seek every opportunity they can to make money at the expense of others.

    For creators, these people will always copy what you do, they will try to buy your works to resell them cheaper and/or more expensive, they will try to get into a project pretending to be someone to steal your work and others, they will try to sell you things that are not in reality and they will scam you in every possible way to make their living.

    There are others who will pretend to be someone to deceive you, there are others who will message you to buy services / protections and if you don't accept they will attack you until they get tired.

    There are others who are so jealous that they will put you under a rock because they cannot see others succeed and reach the top, as they cannot fight for themselves, they will try to put you in misery as they already are.

    Unfortunately, especially in the Metin2 community, they see everything as a reason to make money and they act like primitives hunting for survival.

    Finally, they will always be everywhere, creating another fake account and fake information to scam you again so please be careful and avoid these people, do some research first!

     

    first of all: "i 100% hate scammers"

     

    But why there's alot of scammers this days? For me the reason is only one!

    Some time(years) ago, when people have any question about this or that. People go into Skype and people help others for free.

    They come to foruns, ask help.... and they get help for free.

     

    Until..... "Developers" start asking for money to solve easy bugs... or other not so easy! But the problem start when people start asking for money to help others.

    Many create one topic to ask for help and they are helped for free.... Later they return to topic (not only here) and they remove the question. Why? Because if "someone" ask for the same problem... they will ask money!

     

    The problem of scammers is this. "noob" people have to pay for almost anything this days.... They dont have money.... the scamme others!

     

    Ask for money for a new Source? I 100% agree with that.

    Ask for money for a new System? I 100% agree with that.

    Ask for money to put all working (Server+site+protections etc...)? I 100% agree with that.

     

    But asking money to help others in solve bugs (once they are online but now they are hiden)...... <<<<< and this create scammers.

     

    Sorry for my bad english

    • Not Good 1
    • Good 1
  15. This "fix" is causing this error:

     

    0820 10:31:33723 :: Cannot find item by 2972
    0820 10:31:45273 :: Cannot find item by 2972
    0820 10:31:45849 :: Cannot find item by 2972
    0820 10:31:46098 :: Cannot find item by 2972
    0820 10:31:46924 :: Cannot find item by 2972
     

     

    Any ideia why? I have 100% sure it's something in uitooltip.py

    If i follow all the fix i have that error, if i remove it i have none, and if i do all fix, but do not change uitooltip. Error come back!

     

    Edit2

    Error come from item 72702 . This item have no description and if i move the mouse over him, i see the uitooltip with no problem, but i got 

    syserr  0820 10:31:33723 :: Cannot find item by 2972

     

     

    Any help?

     

    EDIT3

    I change this function:

    Spoiler
    	def __CalculateToolTipWidth(self):
    		affectTextLineLenList = []
    
    		metinSocket = self.metinSlot
    		if metinSocket > 0:
    			for socketIndex in metinSocket:
    				if socketIndex:
    					item.SelectItem(socketIndex)
    
    					affectType, affectValue = item.GetAffect(0)
    					affectString = self.__GetAffectString(affectType, affectValue)
    					if affectString:
    						affectTextLineLenList.append(len(affectString))
    
    			if self.itemVnum:
    				item.SelectItem(self.itemVnum)
    			self.metinSlot = None
    
    		if self.toolTipWidth == self.TOOL_TIP_WIDTH:
    			if affectTextLineLenList:
    				self.toolTipWidth += max(affectTextLineLenList) + 10
    
    		self.AlignTextLineHorizonalCenter()

     

    with:

    Spoiler
    	def __CalculateToolTipWidth(self):
    		affectTextLineLenList = []
    		affectType, affectValue = item.GetAffect(0)
    		affectString = self.__GetAffectString(affectType, affectValue)
    		if affectString:
    			affectTextLineLenList.append(len(affectString))
    
    		if self.toolTipWidth == self.TOOL_TIP_WIDTH:
    			if affectTextLineLenList:
    				self.toolTipWidth += max(affectTextLineLenList) + 10
    
    		self.AlignTextLineHorizonalCenter()

     

    And no more syserr and i belive all tooltips are ok....

    But if i have cause anyother error, let me know please

  16. #### Server/game/src/horse_rider.cpp

    Spoiler
    // Search:
    void CHorseRider::FeedHorse()
    {
    	[...]
    }
    
    // Add after:
    void CHorseRider::KillHorse()
    {
    	if (GetHorseLevel() > 0 && GetHorseHealth() >= 0)
    	{
    		UpdateHorseHealth( -GetHorseHealth());
    		ResetHorseHealthDropTime();
    	}
    }

     

     

    #### Server/game/src/horse_rider.h

    Spoiler
    // Search:
    		void FeedHorse();
    
    // Add after:
    		void KillHorse();

     

     

    #### Server/game/src/questlua_horse.cpp

    Spoiler
    // Search:
    	int horse_feed(lua_State* L)
    	{
    		[...]
    	}
    
    // Add after:
    	int kill_horse(lua_State* L)
    	{
    		LPCHARACTER ch = CQuestManager::instance().GetCurrentCharacterPtr();
    		ch->KillHorse();
    		return 0;
    	}
    
    
    // Search:
                { "feed",            horse_feed                },
    
    // Add after:
                { "kill",            kill_horse                },

     

     

    quest_functions

    Spoiler
    horse.kill

     

     

    quest:

    Spoiler
    when 40003.use with pc.is_gm() begin
    		local s = select("Kill Horse", "Revive Horse", "Exit")
    		if s == 1 then
    			if horse.is_dead() then syschat("Horse is dead") return end
    			horse.kill()
    			horse.summon()
    		elseif s == 2 then
    			if horse.is_dead() == false then return end
    			horse.revive()
    		end
    	end

     

     

  17. On 8/6/2022 at 10:58 AM, dotMatryx said:

    Just when you done , replace the \n with [ENTER] ( FOR THE SPECIFIC STRINGS YOU WROTE)

    thats not what i need. I wanna type the quest in a simple mode. Like this:

     say("
    	
    	It's great that you're here - I need your help!
    	I'm collecting information about all the creatures that 
    	live on our continent. 
    	It's a very complicated task, that I just can't handle by
    	myself. 
    	If you help me, I will of course give you a reward. 
    
    	")

     

    Have to be some way...

    up!

  18.  

    Any way to write quest like this: (very very simple mode)

     say("
    	It's great that you're here - I need your help!
    	I'm collecting information about all the creatures that 
    	live on our continent. 
    	It's a very complicated task, that I just can't handle by
    	myself. 
    	If you help me, I will of course give you a reward. ")

     

    and NOT like this:

    say("It's great that you're here - I need your help.[ENTER]I'm collecting information about all the[ENTER]creatures that live on our continent. It's a very[ENTER]complicated task, that I just can't handle by[ENTER]myself. If you help me, I will of course give you[ENTER]a reward. ")

    and NOT like this:

    say("It's great that you're here - I need your help.")
    say("I'm collecting information about all the ")
    say("creatures that live on our continent. It's a very ")
    say("complicated task, that I just can't handle by ")
    say("myself. If you help me, I will of course give you ")
    say("a reward. ")

     

  19. Soluction:

    I dont know if this is the best one, and maybe its not.... but it's what we have until someone can make it better.

     

    open: interfacemodule.py and edit like:

     

    Spoiler
    	def BINARY_RecvQuest(self, index, name, iconType, iconName):
    		btn = self.__FindQuestButton(index)
    		
    		if 0 != btn:
    			self.__DestroyQuestButton(btn)
    
    		btn = uiWhisper.WhisperButton()
    		[...]
    
    
    //Edit like:
    	def BINARY_RecvQuest(self, index, name, iconType, iconName):
    		btn = self.__FindQuestButton(index)
    		
    		if 0 != btn:
    			self.__DestroyQuestButton(btn)
    		
    		if name.find("deleteme") != -1:
    			btn.SetEvent(0)
    			self.questButtonList.insert(1, btn)
    			self.questButtonList.remove(btn)
    			self.__ArrangeQuestButton()
    			return
    
    		btn = uiWhisper.WhisperButton()
    		[...]

     

    in quest if you send:

    send_letter("deleteme")

    Spoiler
    when __TARGET__.target.click begin
    			target.delete("__TARGET__")
    			say_title(mob_name(npc.get_race())..":[ENTER]")
    			say("bah !! ")
    			wait()
    			send_letter("deleteme")
    			clear_letter()
    			set_state(start)
    		end

     

    Icon will not show.  

     

    Like i say, it's not the best soluction... but i belive its ok

×
×
  • 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.