Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 03/12/17 in all areas

  1. Hey, I have made a small function that will enable you to use an unlimited amount of arguments in server source code. For example look at the function do_item in cmd_gm.cpp, it gets 2 arguments : arg1 and arg2. Using my function you will be able to have as many arguments easier and in more convenient way. That means you can have 5,7 or even 20 arguments. Let's begin: Open utils.cpp and look for #include "stdafx.h" add below the following: #include <boost/algorithm/string/classification.hpp> // Include boost::for is_any_of #include <boost/algorithm/string/split.hpp> look for const char *first_cmd add above: void split_argument(const char *argument, std::vector<std::string> & vecArgs) { std::string arg = argument; boost::split(vecArgs, arg, boost::is_any_of(" "), boost::token_compress_on); } open utils.h and look for const char * first_cmd add above: extern void split_argument(const char *argument, std::vector<std::string> & vecArgs); That's all. How to use? Let's look for example in ACMD(do_item) method: Instead of char arg1[256], arg2[256]; two_arguments(argument, arg1, sizeof(arg1), arg2, sizeof(arg2)); you can replace with: std::vector<std::string> vecArgs; split_argument(argument,vecArgs); And now you can access any of the arguments starting from index of 1. so for example if you type ingame the command /item 6001 10 vecArgs[1] is 6001 vecArgs[2] is 10 if you need to convert it to number, you can use as example: int iCount = 0; str_to_number(iCount, vecArgs[2].c_str()); If you need any assistance, write here a reply and ill do my best in helping you. Enjoy
    1 point
  2. M2 Download Center Download Here ( Internal ) Hallo Will I Don't Know What I Have To Say , Just This System Made By Saud bin abdullah & MrLibya Note : You Have To Add mysql_direct_query functon [ Credit to : lollo_9_1 // epvp ] Note2 : First Quest Have Arabic Pet Names , Change It To You Lang Note3: The System Is Read Normal Pet Names From The Quest , But When You Use The Tool You Will Have To Put Your New Pet Name ,And That Is What You Pet Will Be Note4 : Well This Is Import For Who Want Too Look As Gunis If You Shorten The Quest somehow Don't Share It Here Let It To You Salf If You Want To Look like the Best Quest Writer Then Why You did'nt you Make The Quest By You Self Note4 : Sorry For My Bed Eng Quest Was Tested And Work 100% pet_system : -- Pet Name System -- By Saud bin abdullah & MrLibya -- www.Arab-Dev.Org quest pet_system begin state start begin function get_pet_info(itemVnum) pet_info_map = { -- [ITEM VNUM] MOB_VNUM, DEFAULT NAME, buff_idx, spawn_effect_idx [53001] = { 34001, " عنقاء النار ", 0}, [53002] = { 34002, " صغير الرنة ", 0}, [53003] = { 34003, " عنقاء الثلج ", 0}, [53004] = { 34001, " عنقاء النار ", 0}, [53005] = { 34004, " صغير فرعائيل ", 1}, [53006] = { 34009, " صغير فرعائيل ", 0}, -- Baby Azrael (gold) [53007] = { 34010, " بامبي ", 0}, [53008] = { 34011, " كنود ", 0}, -- Knuud [53009] = { 34012, " باو باو ", 0}, -- Bao Bao [53010] = { 34008, " ليوندس ", 0}, [53011] = { 34007, " خان ", 0}, [53012] = { 34005, " بوركي ", 0}, [53013] = { 34006, " ريوفوس ", 0}, [53016] = { 34015, " العظمي ", 0}, [53017] = { 34016, " عنقاء الغابة ", 0}, [71171] = { 34013, " Redthief young", 0}, [71172] = { 34014, " Redthief young", 0}, } itemVnum = tonumber(itemVnum) return pet_info_map[itemVnum] end function get_spawn_effect_file(idx) effect_table = { [0] = nil, [1] = "d:ymir workeffectetcappear_dienpc2_appear.mse", } return effect_table [idx] end when 53001.use or 53002.use or 53003.use or 53004.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 53016.use or 53017.use or 71171.use or 71172.use begin local pet_info = pet_system.get_pet_info(item.vnum) local name = pc.get_name() if null != pet_info then if game.get_event_flag(""..name.."pet") == 1 then local res1, Pname = mysql_direct_query("select * from player.pet_system where id = "..pc.get_player_id().." limit 1;") local mobVnum = pet_info[1] local petName = Pname[1].pet_name local petNameO = 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) else if pet.count_summoned() < 1 then pet.summon(mobVnum, "'s - "..petName, false) else syschat("You already summoned a pet.") end if spawn_effect_file_name != nil then pet.spawn_effect(mobVnum, spawn_effect_file_name) end end -- if pet.is_summon else 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) else if pet.count_summoned() < 1 then pet.summon(mobVnum, petName, false) else syschat("You already summoned a pet.") end if spawn_effect_file_name != nil then pet.spawn_effect(mobVnum, spawn_effect_file_name) end end end -- if pet.is_summon end -- if null != pet_info end -- when end -- state end -- quest Pet Name: -- Pet Name System -- By Saud bin abdullah & MrLibya -- www.Arab-Dev.Org quest pet_system_name begin state start begin when 71055.use begin say_title(" Pet Name ") say(" You Want Change Your Pet Name ? ") local s = select(" Yes "," No ") if s == 2 then return end say_title(" Pet Name ") say(" Write New Name ") local NewPetNm = input() if NewPetNm == "" then say_title(" Pet Name ") say("") say_reward(" Write Some Thing ") say("") return end if string.len(NewPetNm) < 1 or string.len(NewPetNm) > 20 then say_title(" Pet Name ") say("") say_reward(" It's Too Long ") say("") return end say_title(" Pet Name ") say(" Your New Pet Name Set OK ") if pc.getqf ("pet_name_new") == 0 then local name = pc.get_name() mysql_direct_query("select * from player.pet_system;") mysql_direct_query("INSERT INTO `pet_system` (`id`, `pet_name`) VALUES ('"..pc.get_player_id().."', '"..NewPetNm.."');") game.set_event_flag(""..name.."pet", 1) pc.setqf("pet_name_new", 1) syschat(" Your New Pet Name Set OK ") else local name = pc.get_name() local res1, res2 = mysql_direct_query("select * from player.pet_system;") mysql_direct_query("UPDATE `pet_system` SET `pet_name`='"..NewPetNm.."' WHERE id='"..pc.get_player_id().."';") game.set_event_flag(""..name.."pet", 1) syschat("Your Pet Name Has Been Update ") end -- when end end -- state end -- quest Sql : Put It In Player SET FOREIGN_KEY_CHECKS=0; -- ---------------------------- -- Table structure for `pet_system` -- ---------------------------- DROP TABLE IF EXISTS `pet_system`; CREATE TABLE `pet_system` ( `id` int(11) NOT NULL, `pet_name` varchar(12) NOT NULL DEFAULT 'NONAME', PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
    1 point
  3. 1 point
  4. It's possbile without bugs You can do it.
    1 point
  5. char.cpp CHARACTER::PointChange(), case POINT_EXP
    1 point
  6. hey like it [Hidden Content] linke dwonload
    1 point
  7. The mob_color in your mob_proto client is fucked up, simply, set it to 0.
    1 point
×
×
  • 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.