[Release]Pet System With Name .

11/15/2014 21:51 MrLibya#1
Hallo



Will I Don't Know What I Have To Say :D , Just This System Made By Saud bin abdullah & MrLibya





Note : You Have To Add [Only registered and activated users can see links. Click Here To Register...] [ 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 :angry: 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 :D :D :d




Quest Was Tested And Work 100% :cool:



pet_system :

Code:
-- 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 work\\\\effect\\\\etc\\\\appear_die\\\\npc2_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:

Code:
-- 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

Code:
[B][COLOR=#800000]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;
11/15/2014 22:16 AntikerGolem#2
Cool, but thats the Offizial Gameforge pet system quest..
11/15/2014 22:21 MrLibya#3
This Is THe Official :
Code:
quest pet_system begin
    state start begin
        function get_pet_info(itemVnum)
            pet_info_map = {
            --  [ITEM VNUM] MOB_VNUM, DEFAULT NAME
                [53001]     = { 34001, gameforge.pet_system._010_say ,0},
                [53002]     = { 34002, gameforge.pet_system._020_say ,0},
                [53003]     = { 34003, gameforge.pet_system._040_say ,0},
                [53005]     = { 34004, gameforge.pet_system._050_say, 1},
                [53006]     = { 34009, gameforge.pet_system._050_say, 1},
                [53010]     = { 34008, gameforge.pet_system._060_say, 0},
                [53011]     = { 34007, gameforge.pet_system._070_say, 0},
                [53012]     = { 34005, gameforge.pet_system._080_say, 0},
                [53013]     = { 34006, gameforge.pet_system._090_say, 0},
                [53007]     = { 34010, gameforge.pet_system._100_say, 0},
                [53008]     = { 34011, gameforge.pet_system._110_say, 0},
                [53009]     = { 34012, gameforge.pet_system._120_say, 0},
                -- GF specials
                [38200]     = { 34006, gameforge.pet_system._090_say, 0},
                [38201]     = { 34006, gameforge.pet_system._090_say, 0},
                [53014]     = { 34013, gameforge.pet_system._130_say, 0},
                [53015]     = { 34014, gameforge.pet_system._140_say, 0},
                [53016]     = { 34015, gameforge.pet_system._150_say, 0},
                [53017]     = { 34016, gameforge.pet_system._160_say, 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 38200.use or 38201.use or 53007.use or 53013.use or 53012.use or 53011.use or 53010.use or 53006.use  or 53005.use or 53002.use or 53001.use or 53003.use or 53008.use or 53009.use or
             53014.use or 53015.use  or 53016.use or 53017.use begin
            local pet_info = pet_system.get_pet_info(item.vnum)

            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)
                else
                    if pet.count_summoned() < 1 then
                        pet.summon(mobVnum, petName, false)
                    else
                        syschat(gameforge.pet_system._030_chat)
                    end
                    if spawn_effect_file_name != nil then
                        pet.spawn_effect (mobVnum, spawn_effect_file_name)
                    end
                end -- if pet.is_summon
            end  -- if null != pet_info
        end -- when
    end -- state
end -- quest
11/15/2014 22:24 AntikerGolem#4
And whats wrong with this one?
11/15/2014 22:28 MrLibya#5
Nothing
The First , I Edit IT and Make Pet name system
the 2th it's official quest without edit .


11/15/2014 22:30 -Zhui-#6
Quote:
Originally Posted by MrLibya View Post
This Is THe Official :
Code:
quest pet_system begin
    state start begin
        function get_pet_info(itemVnum)
            pet_info_map = {
            --  [ITEM VNUM] MOB_VNUM, DEFAULT NAME
                [53001]     = { 34001, gameforge.pet_system._010_say ,0},
                [53002]     = { 34002, gameforge.pet_system._020_say ,0},
                [53003]     = { 34003, gameforge.pet_system._040_say ,0},
                [53005]     = { 34004, gameforge.pet_system._050_say, 1},
                [53006]     = { 34009, gameforge.pet_system._050_say, 1},
                [53010]     = { 34008, gameforge.pet_system._060_say, 0},
                [53011]     = { 34007, gameforge.pet_system._070_say, 0},
                [53012]     = { 34005, gameforge.pet_system._080_say, 0},
                [53013]     = { 34006, gameforge.pet_system._090_say, 0},
                [53007]     = { 34010, gameforge.pet_system._100_say, 0},
                [53008]     = { 34011, gameforge.pet_system._110_say, 0},
                [53009]     = { 34012, gameforge.pet_system._120_say, 0},
                -- GF specials
                [38200]     = { 34006, gameforge.pet_system._090_say, 0},
                [38201]     = { 34006, gameforge.pet_system._090_say, 0},
                [53014]     = { 34013, gameforge.pet_system._130_say, 0},
                [53015]     = { 34014, gameforge.pet_system._140_say, 0},
                [53016]     = { 34015, gameforge.pet_system._150_say, 0},
                [53017]     = { 34016, gameforge.pet_system._160_say, 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 38200.use or 38201.use or 53007.use or 53013.use or 53012.use or 53011.use or 53010.use or 53006.use  or 53005.use or 53002.use or 53001.use or 53003.use or 53008.use or 53009.use or
             53014.use or 53015.use  or 53016.use or 53017.use begin
            local pet_info = pet_system.get_pet_info(item.vnum)

            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)
                else
                    if pet.count_summoned() < 1 then
                        pet.summon(mobVnum, petName, false)
                    else
                        syschat(gameforge.pet_system._030_chat)
                    end
                    if spawn_effect_file_name != nil then
                        pet.spawn_effect (mobVnum, spawn_effect_file_name)
                    end
                end -- if pet.is_summon
            end  -- if null != pet_info
        end -- when
    end -- state
end -- quest
Its like 90% the same..

//Edit: Now I get it, its with a Name quest. Its okay thank you.
11/15/2014 22:34 MrLibya#7
Read Good

Quote:
Originally Posted by -Zhui- View Post

//Edit: Now I get it, its with a Name quest. Its okay thank you.
:):) + [Only registered and activated users can see links. Click Here To Register...] In The Topice Not Bed :D
11/16/2014 12:01 [SA]Hylight#8
But why with mysql_direct_query what is the differed to mysql_query
don't understand..

can i edit the mysql_direct_query to mysql_query in the quest without errors by Compiling?
11/16/2014 12:24 MrLibya#9
Well I Use Source So I Use mysql_direct_query . becous i ssee that mysql_query crep .

Try Maybe It's Well Work
11/16/2014 19:36 iWizz#10
Quote:
Originally Posted by MrLibya View Post
Well I Use Source So I Use mysql_direct_query . becous i ssee that mysql_query crep .

Try Maybe It's Well Work
mysql_query function will work for that.

Why?
Code:
mysql_direct_query("select * from  player.pet_system where id = "..pc.get_player_id().." limit 1;")
it's not an loop... modify in:
Code:
mysql_direct_query("select * from  player.pet_system where id = "..pc.get_player_id()..";")
Evite to use flags for that modify in pc.setf will be better.
11/16/2014 20:01 MrLibya#11
Quote:
Originally Posted by iWizz View Post
mysql_query function will work for that.

Why?
Code:
mysql_direct_query("select * from  player.pet_system where id = "..pc.get_player_id().." limit 1;")
it's not an loop... modify in:
Code:
mysql_direct_query("select * from  player.pet_system where id = "..pc.get_player_id()..";")
Evite to use flags for that modify in pc.setf will be better.
Well It's Not Problem . All Ways Work Then Do It By The Way You Want :)
12/05/2014 12:27 fannan10#12
good job brother
12/07/2014 01:37 .Λnvil#13
Thanks! This is what i search!