Jump to content

gweilo321

Inactive Member
  • Posts

    45
  • Joined

  • Last visited

  • Feedback

    0%

Posts posted by gweilo321

  1. 3 hours ago, Alerin said:

    item_attr are bonuses that can be earned in the game. There are more bonuses in the source code, the ID is important.

    
    TValueName c_aApplyTypeNames[] =
    {
        { "STR",      APPLY_STR     },
        { "DEX",      APPLY_DEX     },
        { "CON",      APPLY_CON     },
        { "INT",      APPLY_INT     },
        { "MAX_HP",       APPLY_MAX_HP      },
        { "MAX_SP",       APPLY_MAX_SP      },
        { "MAX_STAMINA",   APPLY_MAX_STAMINA  },
        { "POISON_REDUCE", APPLY_POISON_REDUCE    },
        { "EXP_DOUBLE_BONUS", APPLY_EXP_DOUBLE_BONUS },
        { "GOLD_DOUBLE_BONUS", APPLY_GOLD_DOUBLE_BONUS },
        { "ITEM_DROP_BONUS", APPLY_ITEM_DROP_BONUS },
        { "HP_REGEN",  APPLY_HP_REGEN    },
        { "SP_REGEN",  APPLY_SP_REGEN    },
        { "ATTACK_SPEED",  APPLY_ATT_SPEED       },
        { "MOVE_SPEED",    APPLY_MOV_SPEED       },
        { "CAST_SPEED",    APPLY_CAST_SPEED   },
        { "ATT_BONUS", APPLY_ATT_GRADE_BONUS  },
        { "DEF_BONUS", APPLY_DEF_GRADE_BONUS  },
        { "MAGIC_ATT_GRADE",APPLY_MAGIC_ATT_GRADE  },
        { "MAGIC_DEF_GRADE",APPLY_MAGIC_DEF_GRADE  },
        { "SKILL",    APPLY_SKILL       },
        { "ATTBONUS_ANIMAL",APPLY_ATTBONUS_ANIMAL  },
        { "ATTBONUS_UNDEAD",APPLY_ATTBONUS_UNDEAD  },
        { "ATTBONUS_DEVIL", APPLY_ATTBONUS_DEVIL   },
        { "ATTBONUS_HUMAN", APPLY_ATTBONUS_HUMAN   },
        { "ADD_BOW_DISTANCE",APPLY_BOW_DISTANCE    },
        { "DODGE",    APPLY_DODGE       },
        { "BLOCK",    APPLY_BLOCK       },
        { "RESIST_SWORD",  APPLY_RESIST_SWORD },
        { "RESIST_TWOHAND",    APPLY_RESIST_TWOHAND   },
        { "RESIST_DAGGER", APPLY_RESIST_DAGGER    },
        { "RESIST_BELL",   APPLY_RESIST_BELL  },
        { "RESIST_FAN",    APPLY_RESIST_FAN   },
        { "RESIST_BOW",    APPLY_RESIST_BOW   },
        { "RESIST_FIRE",   APPLY_RESIST_FIRE  },
        { "RESIST_ELEC",   APPLY_RESIST_ELEC  },
        { "RESIST_MAGIC",  APPLY_RESIST_MAGIC },
        { "RESIST_WIND",   APPLY_RESIST_WIND  },
       { "REFLECT_MELEE", APPLY_REFLECT_MELEE },
       { "REFLECT_CURSE", APPLY_REFLECT_CURSE },
        { "RESIST_ICE",       APPLY_RESIST_ICE   },
        { "RESIST_EARTH",  APPLY_RESIST_EARTH },
        { "RESIST_DARK",   APPLY_RESIST_DARK  },
        { "RESIST_CRITICAL",   APPLY_ANTI_CRITICAL_PCT    },
        { "RESIST_PENETRATE",  APPLY_ANTI_PENETRATE_PCT   },
        { "POISON",       APPLY_POISON_PCT   },
        { "SLOW",     APPLY_SLOW_PCT    },
        { "STUN",     APPLY_STUN_PCT    },
        { "STEAL_HP",  APPLY_STEAL_HP    },
        { "STEAL_SP",  APPLY_STEAL_SP    },
        { "MANA_BURN_PCT", APPLY_MANA_BURN_PCT    },
        { "CRITICAL",  APPLY_CRITICAL_PCT },
        { "PENETRATE", APPLY_PENETRATE_PCT    },
        { "KILL_SP_RECOVER",APPLY_KILL_SP_RECOVER  },
        { "KILL_HP_RECOVER",APPLY_KILL_HP_RECOVER  },
        { "PENETRATE_PCT", APPLY_PENETRATE_PCT    },
        { "CRITICAL_PCT",  APPLY_CRITICAL_PCT },
        { "POISON_PCT",    APPLY_POISON_PCT   },
        { "STUN_PCT",  APPLY_STUN_PCT    },
        { "ATT_BONUS_TO_WARRIOR",  APPLY_ATTBONUS_WARRIOR  },
        { "ATT_BONUS_TO_ASSASSIN", APPLY_ATTBONUS_ASSASSIN },
        { "ATT_BONUS_TO_SURA", APPLY_ATTBONUS_SURA        },
        { "ATT_BONUS_TO_SHAMAN",   APPLY_ATTBONUS_SHAMAN   },
        { "ATT_BONUS_TO_MONSTER",  APPLY_ATTBONUS_MONSTER  },
        { "ATT_BONUS_TO_MOB",  APPLY_ATTBONUS_MONSTER  },
        { "MALL_ATTBONUS", APPLY_MALL_ATTBONUS    },
        { "MALL_EXPBONUS", APPLY_MALL_EXPBONUS    },
        { "MALL_DEFBONUS", APPLY_MALL_DEFBONUS    },
        { "MALL_ITEMBONUS",    APPLY_MALL_ITEMBONUS   },
        { "MALL_GOLDBONUS", APPLY_MALL_GOLDBONUS   },
        { "MAX_HP_PCT",    APPLY_MAX_HP_PCT   },
        { "MAX_SP_PCT",    APPLY_MAX_SP_PCT   },
        { "SKILL_DAMAGE_BONUS",    APPLY_SKILL_DAMAGE_BONUS   },
        { "NORMAL_HIT_DAMAGE_BONUS",APPLY_NORMAL_HIT_DAMAGE_BONUS  },
        { "SKILL_DEFEND_BONUS",    APPLY_SKILL_DEFEND_BONUS   },
        { "NORMAL_HIT_DEFEND_BONUS",APPLY_NORMAL_HIT_DEFEND_BONUS  },
        { "PCBANG_EXP_BONUS", APPLY_PC_BANG_EXP_BONUS  },
        { "PCBANG_DROP_BONUS", APPLY_PC_BANG_DROP_BONUS    },
    
        { "RESIST_WARRIOR",    APPLY_RESIST_WARRIOR},
        { "RESIST_ASSASSIN",   APPLY_RESIST_ASSASSIN},
        { "RESIST_SURA",      APPLY_RESIST_SURA},
        { "RESIST_SHAMAN", APPLY_RESIST_SHAMAN},
        // by mhh game/affect.h 정의되어있음. INFINITE_AFFECT_DURATION = 0x1FFFFFFF
        { "INFINITE_AFFECT_DURATION", 0x1FFFFFFF   },
       { "ENERGY", APPLY_ENERGY },       // 기력
       { "COSTUME_ATTR_BONUS", APPLY_COSTUME_ATTR_BONUS },       // 기력
       { "MAGIC_ATTBONUS_PER",    APPLY_MAGIC_ATTBONUS_PER   },
        { "MELEE_MAGIC_ATTBONUS_PER",  APPLY_MELEE_MAGIC_ATTBONUS_PER },
    
    #ifdef ENABLE_WOLFMAN_CHARACTER -> NIE MA
       { "BLEEDING_REDUCE",APPLY_BLEEDING_REDUCE },
       { "BLEEDING_PCT",APPLY_BLEEDING_PCT },
       { "ATT_BONUS_TO_WOLFMAN",APPLY_ATTBONUS_WOLFMAN },
       { "RESIST_WOLFMAN",APPLY_RESIST_WOLFMAN },
       { "RESIST_CLAW",APPLY_RESIST_CLAW },
    #endif
    
    #ifdef ENABLE_ACCE_COSTUME_SYSTEM
       { "ACCEDRAIN_RATE",APPLY_ACCEDRAIN_RATE },
    #endif
    #ifdef ENABLE_MAGIC_REDUCTION_SYSTEM
       { "RESIST_MAGIC_REDUCTION",APPLY_RESIST_MAGIC_REDUCTION },
    #endif
    
        { NULL,       0        }

     

    Thanks alot. So in your bonus.php most of the bonuses are included? And is it possible to get the stones from the items aswell?

  2. SYSERR: May  5 03:57:36 :: SpawnMob: SpawnMob: no mob data for vnum 0
    SYSERR: May  5 03:57:36 :: Summon: [CMountActor::Summon] Failed to summon the mount. (vnum: 0)
    SYSERR: May  5 03:57:36 :: Summon: [CMountSystem::Summon(-2074967294)] Null Pointer (mountVID)

    What could be causing this error?
    It happens when i try to mount it, but nothing happens and i get this in syserr.

    • Not Good 1
  3. 6 hours ago, TMP4 said:

    Just think a little.

     

    If you set the minimum for GM_IMPLEMENTOR then the  

    
    if (!ch->IsGM())
            LogManager [...]

    will never ever triggered since only an implementor character can go throguh the ACMD(do_shutdown) in cmd_gm.cpp.

     

    So you should set it to GM_PLAYER and keep that if above. But then every GM can use shutdown command so maybe it would be nice to edit to check the gm level too there, if possible. I don't know if you can check the gm level by default in 40k source.

     

    Edit: I quickly searched and you can, there is an ch->GetGMLevel() == GM_IMPLEMENTOR what you can use.

    Thanks. Do you think its a safe way to do it? I mean its still checking for IMPLEMENTOR.

  4. Hi guys, so im trying to put into a HackLog for example, and log if someone that is not GM, just a player uses a command /shutdown.

    ACMD(do_shutdown)
    {
        if (!ch->IsGM())
            LogManager::instance().HackLog("Used /shutdown command.", ch);
            return;
    
    
    
            if (NULL == ch)
            {
                sys_err("Shutdown started by %s.", ch->GetName());
            }
            TPacketGGShutdown p;
            p.bHeader = HEADER_GG_SHUTDOWN;
            P2P_MANAGER::instance().Send(&p, sizeof(TPacketGGShutdown));
    
            Shutdown(10);
    }

    But its not working..

    It keep says ingame that Command is not valid, and nothing goes into the log.

     

    Help

  5. I wanted to remove the server list from intrologin.py so

    self.serverBoard.Show()

    to

    self.serverBoard.Hide()

    But for some reason the channel list shows as thisspacer.png

     

    and i cannot choose the channel, or even connect to the server.

     

    Any ideas what else i need to change?

  6. I am currently using a Skill Choose system that automatically pops up a window to choose your skills. That is now used in most of the servers.

     

    My question is, that when i get lv 5, and i choose my skills i dont get the 4 skill points as always. Only from lv 6 i get a 1 point.

     

    My second question is, how to add an image for e.g 

     

    Archer         Blade
    
    IMAGE1      Image 2

    For example something like this.

    spacer.png

  7. Could someone explain to me how to change the colours of .mse file? For example this is the level up effect, and this one is green. How do i properly change this colour format to, e.g red.

     

            List TimeEventColorRed
            {
                0.002564 0.407843
                0.912821 0.000000
                0.992308 0.000000
            }
            List TimeEventColorGreen
            {
                0.002564 1.000000
                0.912821 0.000000
                0.992308 0.000000
            }
            List TimeEventColorBlue
            {
                0.002564 0.000000
                0.912821 0.000000
                0.992308 0.000000
            }
            List TimeEventAlpha
            {
                0.600000 1.000000
                0.800000 0.700000
                1.000000 0.000000
            }

     

  8. Could someone explain to me how to change the colours of .mse file? For example this is the level up effect, and this one is green. How do i properly change this colour format to, e.g red.

     

            List TimeEventColorRed
            {
                0.002564 0.407843
                0.912821 0.000000
                0.992308 0.000000
            }
            List TimeEventColorGreen
            {
                0.002564 1.000000
                0.912821 0.000000
                0.992308 0.000000
            }
            List TimeEventColorBlue
            {
                0.002564 0.000000
                0.912821 0.000000
                0.992308 0.000000
            }
            List TimeEventAlpha
            {
                0.600000 1.000000
                0.800000 0.700000
                1.000000 0.000000
            }

     

  9. Since source its quite stupid to put stuff into the root files because its quite easy to unpack and change codes. I am no pro at this. But when i unpacked couple of servers, most of their root files like game.py/serverinfo.py/constinfo.py are gone. 

     

    And my question is how is this done? Are they putting these files into Client binrary?

  10. Hi guys ive set up for pet summon after teleport, but when i unsummon the pet with item and then i teleport the pet shows up. Could you help to set this up for the pet only to show when i summon him with an item so it wont summon all the time without the item.

     


    -- # --------------------------------------------- #
    -- #  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, "Ma³y Reniferek", 0},
                    [53003] = {34003, "Lodowy Feniks", 0},
                    [53005] = {34004, "Azraeluœ ", 1},
                    [53006] = {34009, "Z³oty Azraeluœ ", 1},
                    [53007] = {34010, "Bambi", 0},
                    [53008] = {34011, "Knuud", 0},
                    [53009] = {34012, "Bao Bao", 0},
                    [53010] = {34008, "Leonidas", 0},
                    [53011] = {34007, "Ethan", 0},
                    [53012] = {34005, "Boczuœ ", 0},
                    [53013] = {34006, "Rufus", 0},
                    [53014] = {34021, "Kurczaczek", 0},
                    [53015] = {34017, "Polarny Boczuœ ", 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(mobVnum, " ".. petName, false)
            pc.setqf("pet_vnum", mobVnum)
        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 s¹ 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 or pc.is_gm() then
                            pet.summon(mobVnum, " ".. petName, false)
                            pc.setqf("pet_vnum", mobVnum)
                        else
                            syschat("Nie mo¿esz przywo³aæ 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

    
    -- # --------------------------------------------- #
    -- #  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, "Ma³y Reniferek", 0},
    				[53003] = {34003, "Lodowy Feniks", 0},
    				[53005] = {34004, "Azraeluœ ", 1},
    				[53006] = {34009, "Z³oty Azraeluœ ", 1},
    				[53007] = {34010, "Bambi", 0},
    				[53008] = {34011, "Knuud", 0},
    				[53009] = {34012, "Bao Bao", 0},
    				[53010] = {34008, "Leonidas", 0},
    				[53011] = {34007, "Ethan", 0},
    				[53012] = {34005, "Boczuœ ", 0},
    				[53013] = {34006, "Rufus", 0},
    				[53014] = {34021, "Kurczaczek", 0},
    				[53015] = {34017, "Polarny Boczuœ ", 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(mobVnum, " ".. petName, false)
    		pc.setqf("pet_vnum", mobVnum)
    	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 s¹ 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 or pc.is_gm() then
    						pet.summon(mobVnum, " ".. petName, false)
    						pc.setqf("pet_vnum", mobVnum)
    					else
    						syschat("Nie mo¿esz przywo³aæ 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

     

  11. Hi guys i fount quest on deamon tower timer but its pretty old and i am getting an error

    Quote

    assertion failure : nested == 0

    the quest :

     

    Quote

    quest deviltower_zone begin
        state start begin
            when login with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
                loop_timer("check_dungeon_time", 1)
                loop_timer("dodajczas", 1)
            end
            when dodajczas.timer with pc.in_dungeon() begin
                local timee=d.getf("czas")
                d.setf("czas", timee+1)
            end
            when check_dungeon_time.timer with pc.in_dungeon() begin
                local timer = d.getf("czas")
                    local min = math.floor(timer/60)
                    local sek = timer-min*60
                    local pokaz_czas = (min..":"..sek)
                local pozostalo = d.count_monster()
                local wspolnie = d.getf("zabitychogolnie")
                local zabitych_przez_ciebie = pc.getqf("zabitychprzezcb")
                local pietro_show = d.getf("level")
                local players = d.getf("gracze")
                cmdchat("showDtTimer")
                cmdchat("setDtCounters "..pokaz_czas.."|"..zabitych_przez_ciebie.."|"..wspolnie.."|"..pozostalo.."|"..players.."|"..pietro_show.."")
            end
            when kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
                if not npc.is_pc() then
                    local zabitych_ogolnie = d.getf("zabitychogolnie")
                    local zabitych_przez_ciebie = pc.getqf("zabitychprzezcb")
                    pc.setqf("zabitychprzezcb", zabitych_przez_ciebie+1)
                    d.setf("zabitychogolnie", zabitych_ogolnie+1)
                end
            end
            when login begin
                if pc.get_map_index() == 66 then            
                    if pc.get_x() < 2048+88 or pc.get_y() < 6656+577 or pc.get_x() > 2048+236 or pc.get_y() > 6656+737 then
                        pc.warp((5376+532)*100, (512+596+4)*100, 65)
                    end
                    pc.set_warp_location(65, 5376+532, 512+596+4)
                elseif pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 then
                    pc.set_warp_location(65, 5376+532, 512+596+4)
                end
            end
            when deviltower_man.chat.locale.deviltower_man_chat begin
                if pc.get_level() < 40 then
                    say(locale.deviltower_man_say_you_cant)
                else
                    say(locale.deviltower_man_say)
                local s = select(locale.deviltower_enter,locale.deviltower_no_enter)
                if s == 1 then
                    pc.warp(216500,727000)
                end
                end
            end
            when devil_stone1.kill begin
                timer("devil_stone1_1", 6)
                pc.setqf("zabitychprzezcb",1)
            end
        when devil_stone1_1.timer begin
            local mapto7= pc.count_item(30302)  -- Die Karte der Zin Grotte wurde aus deinem Inventar entfernt
            pc.remove_item(30302,mapto7)

            local boxto7= pc.count_item(30300)  -- Die Unbekannte Alte Kiste wurde aus deinem Inventar entfernt
            pc.remove_item(30300,boxto7)

            d.new_jump_all(66, special.devil_tower[1][1], special.devil_tower[1][2])
            d.regen_file("data/dungeon/deviltower2_regen.txt")
               d.set_warp_at_eliminate(4, d.get_map_index(), special.devil_tower[2][1], special.devil_tower[2][2], "data/dungeon/deviltower3_regen.txt")
            d.setf("zabitychogolnie", 1)
            d.setf("level", 1)
            d.setf("gracze", 1)
            pc.setqf("zalogowano", 1)
                if pc.getqf("zalogowano") < 2 then
                    pc.setqf("zalogowano", 3)
                    local graczy = d.getf("gracze")
                    d.setf("gracze", graczy+1)
                    return
                else
                    return
                end
            d.setf("czas", 61)
            d.setf("level", 2)
        end

     

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