Jump to content

Heathcliff

Member
  • Posts

    72
  • Joined

  • Last visited

  • Feedback

    0%

Posts posted by Heathcliff

  1. Hello! :D

    Try this :D

    -- # --------------------------------------------- #
    -- #  Questfile from Metin2SF by Ethoard  #
    -- # --------------------------------------------- #
    
    quest pet_system begin
    	state start begin
    		function get_pet_info(itemVnum)
    			pet_info_map = {
    				[53001] = {34001, "Ognisty Feniks", 0},
    				[53002] = {34002, "Ma3y Reniferek", 0},
    				[53003] = {34003, "Lodowy Feniks", 0},
    				[53005] = {34004, "Azraeluo ", 1},
    				[53006] = {34009, "Z3oty Azraeluo ", 1},
    				[53007] = {34010, "Bambi", 0},
    				[53008] = {34011, "Knuud", 0},
    				[53009] = {34012, "Bao Bao", 0},
    				[53010] = {34008, "Leonidas", 0},
    				[53011] = {34007, "Ethan", 0},
    				[53012] = {34005, "Boczuo ", 0},
    				[53013] = {34006, "Rufus", 0},
    				[53014] = {34021, "Kurczaczek", 0},
    				[53015] = {34017, "Polarny Boczuo ", 0},
    				[53016] = {34015, "Kostek", 0},
    			}
    			itemVnum = tonumber(itemVnum)
    			return pet_info_map[itemVnum]
    		end
    		function get_spawn_effect_file(idx)
    			effect_table = {
    				[0] = nil,
    				[1] = "d:\\\\ymir work\\\\effect\\\\etc\\\\appear_die\\\\npc2_appear.mse",
    			}
    			return effect_table [idx]
    		end
    		when login with pc.getqf("pet_vnum") != 0 begin
    			if pc.get_map_index() == 113 then
    				pet.unsummon(mobVnum)
    				pc.setqf("pet_vnum, 0")
    			else
    				item.select(pc.getqf("pet_item_id"))
    				pet.summon(pc.getqf("pet_vnum"), "'s Pet", false)
    			end          
    		end
    		when 53001.use or 53002.use or 53003.use or 53005.use or 53006.use or 53007.use or 53008.use or 53009.use or 53010.use or 53011.use or 53012.use or 53013.use or 53014.use or 53015.use or 53016.use begin
    			if pc.get_map_index() == 113 then
    				syschat("Zwierzaki s1 zablokowane na Konkursie OX.")
    			else
    				local pet_info = pet_system.get_pet_info(item.vnum)
    				pc.setqf("pet_item_id", item.get_id())
    				if null != pet_info then
    					local mobVnum = pet_info[1]
    					local petName = pet_info[2]
    					local spawn_effect_file_name = pet_system.get_spawn_effect_file(pet_info[3])
    					if true == pet.is_summon(mobVnum) then
    						if spawn_effect_file_name != nil then
    							pet.spawn_effect (mobVnum, spawn_effect_file_name)
    						end
    						pet.unsummon(mobVnum)
    						pc.setqf("pet_vnum", 0)
    					else
    						if pet.count_summoned() < 1 then
    							pet.summon(mobVnum, petName, false)
    							pc.setqf("pet_vnum", mobVnum)
    						else
    							syschat("Nie moesz przywo3aa kilku zwierzaków.")
    						end
    						if spawn_effect_file_name != nil then
    							pet.spawn_effect(mobVnum, spawn_effect_file_name)
    						end
    					end
    				end
    			end
    		end
    	end
    end

     

  2. Hi Guys!


    I know this post is very old but I usually see this system in some server and I always find a mistake about it.
    Let me explain.
    If you implement this system with the fix that tierrilopes show to us still you won't be able to buff someone if you are in a party and he is not. So you should exit your current party, and give buff to him.
    If you want to fix this bug too, you should go to char_skill.cpp and search for this line:

    GetParty()->ForEachOnMapMember(f, GetMapIndex());

    After this line past this condition:
     

    //Fix where you should exit your party to buff someone who is not in your party//
    		if (!pkVictim->GetParty())
    			ComputeSkill(dwVnum, pkVictim);

    Finally it should like this:

     

    else if (IS_SET(pkSk->dwFlag, SKILL_FLAG_PARTY) && GetParty())
    	{
    		FPartyPIDCollector f;
    		GetParty()->ForEachOnMapMember(f, GetMapIndex());
    		//Fix where you should exit your party to buff someone who is not in your party//
    		if (!pkVictim->GetParty())
    			ComputeSkill(dwVnum, pkVictim);
    		for (std::vector <DWORD>::iterator it = f.vecPIDs.begin(); it != f.vecPIDs.end(); it++)
    		{
    			LPCHARACTER ch = CHARACTER_MANAGER::instance().FindByPID(*it);
    			ComputeSkill(dwVnum, ch);
    		}
    	}

    Compile, and you are done!

    Result:
    For now, you can buff any player and doesn't matter you are in a party or not, but if you are in a party you will buff your teammates with the guy who is not in your team.


    It"s not a large modification, but I think it's useful.


    Sorry for my bad english!
    Best regards!

    • Love 4
  3. Thank you for this release, but it has a small bug. Make your GM character invisible, then zoom in your chatracter. You will se your character all it effects like GM logo, and skill effects. Then use Ninja hiding skill, and make this camera movement again with another character next to the ninja char. You will see the armor effects on the ninja :)

     

    • Love 2
  4. 20 hours ago, Dobrescu Sebastian said:

    It's better to kill every in part, or write in chat command /shutdown and wait 10 minutes.

    I thought it is clear to type /shutdown ingame first :D
    I always use this way, and I've never lost any items. I think no need to wait some minutes to close db. I've never wait 7-10 minutes after game core closed successfully.
    I always close db core after all game core down and  I've never had a problem like that :D

    Sorry if my english  is bad. :D

    20 hours ago, Lykos said:

    Yes i understand that but what if the players lose items ? 
    do you know any quest so they can talk in game with an npc and get their lost items back ?

    I think the quest you asked doesn't exist. The game can't give back that item which doesn't exist in your database. If the game didn't save items to the database, the player cannot get them back.

  5. Did you stop your server with an sh command like: "sh stop.sh" or "sh stop" or anything like that?
    If you did that, then forget this command.

    Type "ps" into your putty and press enter. You will see how many game core running. then if you want to stop it, just type "killall game". Then if all game cores disappeared from the list, type "killall db". If "db" disappeared too, then your server succesfully stopped. If you stop your server that way, items will not disappear.

    I hope it was useful. :wub:

    • Love 1
  6. Hello Metin2Dev!
    I have a big problem with item refine.

    When i want to refine an item, i got this message in the chat: "t can only be used for weapons below 20 levels." and i can't refine anything. I try to refine different item in different level with magic stone, blessing scroll, and blacksmith. I have mainline source with edited item proto, but i try with default mainline proto and i got the same message.

    refine_proto.thumb.png.80701ee7b2299daacd13e20ca617f1fd.pngitem_proto.thumb.png.ba2d34049796666171317a37c3366943.png

  7. Hello!

    First, sorry my bad english pls :)
    I have a problem with an effect called "Duel request effect"


    playersettingmodule.py:

        chrmgr.RegisterCacheEffect(chrmgr.EFFECT_DUEL_SENDER, "", "d:/ymir work/effect/duel/duel_Sender.mse")
        chrmgr.RegisterCacheEffect(chrmgr.EFFECT_DUEL_RECEIVER, "", "d:/ymir work/effect/duel/duel_Receiver.mse")

     

    game.py:

        def __ServerCommand_Build(self):
            serverCommandList={
                "duel_asd"                    : self.__duel_asd,

        def __duel_asd(self, id):
            constInfo.duel_asd = int(id)

     

    constinfo.py:
    duel_asd = 0

     

    I made that changes in my client side, but when i log in my account the client close and i got this error message in my client:

    0408 17:21:07522 :: 
    playerSettingModule.py(line:1371) LoadGameData
    playerSettingModule.py(line:235) __InitData

    LoadGameData - <type 'exceptions.AttributeError'>:'module' object has no attribute 'EFFECT_DUEL_SENDER'

    0408 17:21:07522 :: ============================================================================================================
    0408 17:21:07522 :: Abort!!!!

    What do i forgot?

    Can anyone help me pls?

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