Jump to content

Pepineitor

Inactive Member
  • Posts

    57
  • Joined

  • Last visited

  • Feedback

    0%

Posts posted by Pepineitor

  1. Comment this line in input_main.cpp

     

    ConvertEmpireText(bEmpire, converted_msg + namelen, len - namelen, 10 + 2 * d->GetCharacter()->GetSkillPower(SKILL_LANGUAGE1 + bEmpire - 1));

     

    I have does not work

    			if (g_bEmpireWhisper)
    				if (!ch->IsEquipUniqueGroup(UNIQUE_GROUP_RING_OF_LANGUAGE))
    					if (!(pkChr && pkChr->IsEquipUniqueGroup(UNIQUE_GROUP_RING_OF_LANGUAGE)))
    						if (bOpponentEmpire != ch->GetEmpire() && ch->GetEmpire() && bOpponentEmpire // Ľ­·Î Á¦±ąŔĚ ´Ů¸Ł¸éĽ­
    								&& ch->GetGMLevel() == GM_PLAYER && gm_get_level(pinfo->szNameTo) == GM_PLAYER) // µŃ´Ů ŔĎąÝ ÇĂ·ąŔĚľîŔ̸é
    							// Ŕ̸§ ąŰżˇ ¸đ¸Ł´Ď gm_get_level ÇÔĽö¸¦ »çżë
    						{
    							if (!pkChr)
    							{
    								// ´Ů¸Ą Ľ­ąöżˇ ŔÖŔ¸´Ď Á¦±ą ÇĄ˝Ă¸¸ ÇŃ´Ů. bTypeŔÇ »óŔ§ 4şńĆ®¸¦ EmpireąřČŁ·Î »çżëÇŃ´Ů.
    								bType = ch->GetEmpire() << 4;
    							}
    							else
    							{
    								//ConvertEmpireText(ch->GetEmpire(), buf, buflen, 10 + 2 * pkChr->GetSkillPower(SKILL_LANGUAGE1 + ch->GetEmpire() - 1)/*şŻČŻČ®·ü*/);
    							}
    						}
    

     

    It works for me

    if (g_bEmpireWhisper)
    				if (!ch->IsEquipUniqueGroup(UNIQUE_GROUP_RING_OF_LANGUAGE))
    					if (!(pkChr && pkChr->IsEquipUniqueGroup(UNIQUE_GROUP_RING_OF_LANGUAGE)))
    						if (bOpponentEmpire != ch->GetEmpire() && ch->GetEmpire() && bOpponentEmpire // ¼­·Î Á¦±¹ÀÌ ´Ù¸£¸é¼­
    								&& ch->GetGMLevel() == GM_PLAYER && gm_get_level(pinfo->szNameTo) == GM_PLAYER) // µÑ´Ù ÀÏ¹Ý Ç÷¹À̾îÀ̸é
    							// À̸§ ¹Û¿¡ ¸ð¸£´Ï gm_get_level ÇÔ¼ö¸¦ »ç¿ë
    						{
    							if (!pkChr)
    							{
    								// ´Ù¸¥ ¼­¹ö¿¡ ÀÖÀ¸´Ï Á¦±¹ Ç¥½Ã¸¸ ÇÑ´Ù. bTypeÀÇ »óÀ§ 4ºñÆ®¸¦ Empire¹øÈ£·Î »ç¿ëÇÑ´Ù.
    								//bType = ch->GetEmpire() << 4; //Chat Privado Global
    							}
    							else
    							{
    								//ConvertEmpireText(ch->GetEmpire(), buf, buflen, 10 + 2 * pkChr->GetSkillPower(SKILL_LANGUAGE1 + ch->GetEmpire() - 1)/*º¯È¯È®·ü*/); //Chat Privado Global
    							}
    						}
    
    Edit:

    coment this line too

    bType = ch->GetEmpire() << 4;

  2. Maybe it doesn't save it correct in Database?...

    Revieve your Horse. Close the Server and watch in "player.player" at horse_hp & horse_stamina.

     

    Is it set to 0 or less then something went wrong by saving the values.

     

    Greatz

     

    Sorry for the delay, and thanks for your answer.

     

    I did it before anything, now (after restart the server) in the db, the horse_hp is 286 and horse_stamina is 4, the horse_level is 0 but when I log in is 21(in the character page).

     

    After I login, the horse_hp has decreased to 21, the horse was dead when I entered, the horse_level continues being 0.

     

    #Edit

    After I revive the horse, the horse_hp and horse_stamina cotinues in 21/4, the horse_level its 0 too.

     

    Thanks for your time, regards.

  3. Go into "char_horse.cpp"

    Search for "if (GetHorseHealth() <= 0)" in Line ~185

    And use a Chat Funktion to check whether this function is triggered.

    If yes. Somewhere the HorseHealt() will be Change <= 0

     

    Greatz

    Firstly, thanks for your reply, I add

    		ChatPacket(CHAT_TYPE_INFO, LC_TEXT("Horse Info"));
    		ChatPacket(CHAT_TYPE_INFO, LC_TEXT("Level: %d"),GetHorseLevel());
    		ChatPacket(CHAT_TYPE_INFO, LC_TEXT("Health: %d"),GetHorseHealth());
    		ChatPacket(CHAT_TYPE_INFO, LC_TEXT("Max Health: %d"),GetHorseMaxHealth());
    		ChatPacket(CHAT_TYPE_INFO, LC_TEXT("Stamina: %d"),GetHorseStamina());
    		ChatPacket(CHAT_TYPE_INFO, LC_TEXT("Max Stamina: %d"),GetHorseMaxStamina());
    

    behind the

    void CHARACTER::HorseSummon(bool bSummon, bool bFromFar, DWORD dwVnum, const char* pPetName)
    {
    	if ( bSummon )
    	{
    

    When I summon the horse, If it's revived, it has hp and stamina, but when I warp/relog the hp and stamina falls down.

     

    I've looking for the side where the stamina/hp is saved/load but I can't find any error.

     

    Thanks for your time, regards.

  4. Hi guys, I'm trying to solve a bug since a lot of days ago, but I can't do it, one person in this forum has had the same problem but he can solve it in this post



    The horse dies when I relog, change map, etc. Here you have a video which explain the problem

    Here is the syserr after the login
    http://pastebin.com/wFYqdkK5

     

    Source: Mainline Released

    I look over all the horse functions but I can't find the error, anyone has had the same problem or know how to solve it? Regards.

  5. I think you want this, try it

    quest event1 begin
    state start begin
      
    when 20090.chat."Akapo Map (LVL.95)" begin
    	if pc.getqf("access222")+3600*23 < get_time() then
    		pc.setqf("access222",get_time()+3600)
    		pc.warp(45600,45600)
    	else
    		local tr = (pc.getqf("access222")+3600*23)-get_time()
    		say("You can enter other time to the map in: "..tr.." min.")
    	end
    end
      
    when login with pc.get_map_index() == 103 begin
        if pc.getqf("access222") < get_time() then
            warp_to_village()
        else
    		local tr = (pc.getqf("access222")-get_time())/60
    		say("Time remaining in the map: "..tr.." min.")
            timer("exit",pc.getqf("access222")-get_time())
        end
    end
      
    when exit.timer begin
        warp_to_village()
    end
      
    when logout with pc.get_map_index() == 103 begin
        cleartimer("exit")
    end
      
    end
    end
    
  6. Try it, I did in a few mins, you must modify the vars with #.

    quest blabla begin
    state start begin
    
    when #xx.chat."Map" with pc.getqf("access")+3600*23 < get_time() begin
        pc.setqf("access",get_time()+3600)
        pc.warp(#x,#y)
    end
    
    when login with pc.get_map_index() == #MAP_ID begin
        if pc.getqf("access") < get_time() then
            warp_to_village()
        else
            timer("exit",pc.getqf("access")-get_time())
        end
    end
    
    when exit.timer begin
        warp_to_village()
    end
    
    when logout with pc.get_map_index() == #MAP_ID begin
        cleartimer("exit")
    end
    
    end
    end
    
    
    
    • Love 1
  7. You don't know how to use the npc.get_vid() function, here you have an example
     

    quest test begin
    	state start begin
    		when kill with npc.is_pc() begin
    			local vid = npc.get_vid()
    			local old_pc = pc.select(vid)
    			if old_pc != 0 then
    				local lev = pc.get_level()
    				local name = pc.get_name()
    				pc.select(old_pc)
    				chat("You killed: "..name..", level: "..lev)
    			end
    		end
    	end
    end
    

    You want pc.get_player_id()

    • Love 1
  8. quest last_level begin
        state start begin
            when levelup with pc.get_level() >=250 begin
                notice_all(" تهنئ و تبارك ادارة لعبه ماتين2 فيقا ل "..pc.get_name())
                notice_all(" لوصوله لاعلى لفل فب اللعبه و سيتم اعطائه جائزة قيمه ")
            end
        end
    end
  9. quest mount begin    
        state start begin
            when 71114.use or 71115.use or 71116.use or 71117.use or 71118.use begin
            
                if pc.is_mount() then pc.unmount() return end
            
                local item = {
                --   ITEM      MOUNT        BONUS
                    [71114] = {20113,apply.DEF_GRADE_BONUS,2000},
                    [71115] = {20114,apply.MAX_HP,5000},
                    [71116] = {20115,apply.DEF_GRADE_BONUS,75},
                    [71117] = {20116,apply.DEF_GRADE_BONUS,2000},
                    [71118] = {20117,apply.DEF_GRADE_BONUS,2000},
                }
                
                local used = item[item.get_vnum()]
                pc.mount(used[1], 86400)
                pc.mount_bonus(used[2], used[3], 86400)
                
            end
        end
    end
    

    Try you, I did fast.

    • Love 1
  10. You only need to run a query in the skill_proto

    INSERT INTO `skill_proto` VALUES ('6', 0xB0DDBBEAC5B8BFEC, '1', '1', '1', '0', 'HP', '-( 3*atk + (atk +  1.5 * str)*k)*1.07', '300+150*k', '', '', '60', '-( 3*atk + (atk +  1.5 * str)*k)*1.07', '', 'ATTACK,USE_MELEE_DAMAGE', '', 'NONE', '', '', '', '', '', '', '50+150*k', '0', '0', 'MELEE', '4', '1', '0', '200'); 
    INSERT INTO `skill_proto` VALUES ('21', 0xB4EBC1F8B0A2, '1', '1', '1', '0', 'HP', '-(2*atk + (2*atk + 2*dex + 2*con + str*4)*k)*1.1', '300+180*k', '', '', '60', '-(2*atk + (2*atk + 2*dex + 2*con + str*4)*k)*1.1', '', 'ATTACK,USE_MELEE_DAMAGE', '', 'NONE', '100+k*1000/6', '2', '', '', '', '', '50+140*k', '0', '0', 'MELEE', '9', '1', '0', '400'); 
    INSERT INTO `skill_proto` VALUES ('51', 0xB4EBC1F8B0A2, '2', '1', '1', '0', 'HP', '-((lv*2+(atk + str*6 + dex*18)*k)*1.1)', '300+180*k', '', '', '60', '-((lv*2+(atk + str*6 + dex*18)*k)*1.1)', '', 'ATTACK,USE_MELEE_DAMAGE', '', 'NONE', '100+k*1000/6', '2', '', '', '', '', '50+160*k', '0', '0', 'MELEE', '10', '1', '800', '0'); 
    INSERT INTO `skill_proto` VALUES ('36', 0xB1C3BDC5C5BABFB5, '2', '1', '1', '0', 'HP', '-((lv*2+(atk + str*6 + dex*18)*k)*1.1)', '300+180*k', '', '', '60', '-((lv*2+(atk + str*6 + dex*18)*k)*1.1)', '', 'ATTACK,USE_ARROW_DAMAGE', '', 'NONE', '', '', '', '', '', '', '50+160*k', '0', '0', 'RANGE', '10', '1', '800', '0');
    

    And in the client, add to the skilldesc.txt

    6    WARRIOR    Thunder Stike    Thunder Stike    Thunder Stike    Let mighty lightning rain down on your opponents.    Powerful    Punch-attack            ATTACK_SKILL|STANDING_SKILL|WEAPON_LIMITATION    SWORD|TWO_HANDED    noegeom    6    4            Attack Power %.0f-%.0f    2.3*MinATK + (3*MinATK + 4*STR + 3*CON)*SkillPoint    2.3*MaxATK + (3*MaxATK + 4*STR + 3*CON)*SkillPoint        
    21    WARRIOR    Lightning Sword    Lightning Sword    Lightning Sword    Cut your opponent with a powerful lightning attack.    Powerful    Lightning attack            ATTACK_SKILL|CAN_CHANGE_DIRECTION|WEAPON_LIMITATION    SWORD|TWO_HANDED    gihyeol    21    4            Attack Power %.0f-%.0f    2.3*MinATK + (3*MinATK + 4*STR + 3*CON)*SkillPoint    2.3*MaxATK + (3*MaxATK + 4*STR + 3*CON)*SkillPoint        
    51	ASSASSIN	Rage	Rage	Rage	Fling your opponent with this fierce blow to the ground.	Melee attack	Throws the opponent to the ground			ATTACK_SKILL|STANDING_SKILL|WEAPON_LIMITATION	BOW|DAGGER	seomgwang	21	4			Attack Power %.0f-%.0f	(minatk + (1.6* minatk + 200 + dex*7 + str*7)*k)	(maxatk + (1.6* maxatk + 300 + dex*7 + str*7)*k)		
    36	ASSASSIN	Quick Blow	Quick Blow	Quick Blow	With an enormous speed you change the dimension and are faster to enemy.	Camouflage bonus	Teleportation Attack			ATTACK_SKILL|NEED_TARGET|WEAPON_LIMITATION	DAGGER|DOUBLE_SWORD|SWORD	seomjeon	6	4			Attack Power %.0f-%.0f	(minatk + (1.6* minatk + 200 + dex*7 + str*7)*k)	(maxatk + (1.6* maxatk + 300 + dex*7 + str*7)*k)		
    

    in the skilltable.txt add

    6	±âÇ÷Ãë¸í	1	1	1	0	HP	-( 3*atk + (atk +  1.5 * str)*k)*1.07	300+150*k			60			ATTACK,USE_MELEE_DAMAGE		NONE				0	0	MELEE	5	1	0	0
    21	³ú°Ëµµ·¡	1	1	1	0	HP	-(2*atk + (2*atk + 2*dex + 2*con + str*4)*k)*1.1	300+180*k			60			ATTACK,USE_MELEE_DAMAGE		NONE				0	0	MELEE	10	1	0	400
    51	¼¶±¤Åº	2	1	1	0	HP	-((atk + (1.2*atk + number(100, 200)+dex*6+str*2)*k)*1.1)	200+200*k			60			ATTACK,USE_ARROW_DAMAGE		NONE	80*k	15+30*k		0	0	RANGE	10	1	800	0
    36	È漶¼ö	2	1	1	0	HP	-((lv*2+(atk + str*3 + dex*18)*k)*1.1)	300+180*k			60			ATTACK,USE_MELEE_DAMAGE		NONE	60*k	5+25*k		0	0	MELEE	10	1	800	0
    

    furthermothe, you need to replace the playersettingmodule.py and add the epk files I leave you then

    This is the hidden content, please

     

    Regards.

    • Metin2 Dev 21
    • Eyes 1
    • Good 3
    • Love 7
×
×
  • 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.