[Guide] ArcEmu Custom Character Creation Spawns! menu

Shout-Out

User Tag List

Results 1 to 9 of 9
  1. #1
    Jackie Moon's Avatar Elite User
    Reputation
    407
    Join Date
    May 2008
    Posts
    923
    Thanks G/R
    0/0
    Trade Feedback
    1 (100%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    [Guide] ArcEmu Custom Character Creation Spawns!

    In this Tutorial i'll show you how to customize where the spawn location is when your character is created!

    Ok guys first off Open the SQL program that your using and
    (I use Navicat for MySQL or you may use HeidiSQL)

    open >> Playercreateinfo

    It should pop up with a fair few columms don't touch anything until MapID,

    A list of each races RaceID number:
    Code:
    1. Human
    2. Orc
    3. Dwarf
    4. Night Elf
    5. Undead
    6. Tauren
    7.Gnome
    8.Troll
    (9 is nothing, I don't why it isnt anything)
    10. Draenei
    11. Bloodelf (note they won't be in a particular order)
    I'll add a list of Classes when i get home (1 is warrior off the top of my head)

    Now you which races you want too change, (So Horde and Alliance have different starting zones)

    Now login to your server and go to the area you want to spawn the newly created characters.
    I'll use Alliance for this guide and i want them to spawn out side Ironforge.

    In Playercreateinfo:

    MapID:
    Kalimador - 1
    Eastern Kingdoms - 0
    Outland - It's 530.

    And for BGs,
    WSG - 489
    AB - 529
    AV - 30
    EoTS - 566


    Go to The area you have chosen (Ironforge for me) and use the GM command .gps
    (This function brings up some text in your ingame chat)
    Write down the X: Y: and Z: co-ords (Using .cheat fly your Z can make you spawn in the air)
    Now go to:

    Playercreateinfo in MYSQL

    and change the your chosen Factions X,Y,Z co-ordinates to the .gps you have written down.

    In my case:

    MapID = 0
    X: -5109.31
    Y: -822.422
    Z: 497.56


    Do that for every race/faction or class you want to spawn in that area.

    Remember make sure you check the race number!

    If you need a specific class i don't know the full list atm will update when i get home!

    Thats all hope it helped may take awhile, remember too restart your server and test your work!

    BONUS

    Credits too Stoneharry for this!

    Information:

    Basically this allows you to create your own intro for each race/faction.

    [ame=http://www.youtube.com/watch?v=c7Qy_HEdKHY]YouTube - Even More Messing Around[/ame]

    Requirements:

    -ArcEmu
    -LuaHypArc (now default with ArcEmu)
    -Basic knoledge of how to create npc's and edit Lua.

    Script:

    Code:
    local PlayerA = nil -- This will be the player we use to do the event
    local NPC_SPAWNER_A = nil -- This is the first npc we shall use
    local NPC_SPAWNER_B = nil -- This is the second npc we shall use
    
    function NPCGIA_GJOEAOJG_HXOJ(pUnit, Event)
        NPC_SPAWNER_A = pUnit -- Here we say variable is the unit
    end
    
    RegisterUnitEvent(99955, 18, "NPCGIA_GJOEAOJG_HXOJ") -- The first npc, on spawn tell the script that this is him
    
    function NPCGIA_GJOEAOJG_HXOJ_Z(pUnit, Event)
        NPC_SPAWNER_B = pUnit -- Here we say variable is the unit
    end
    
    RegisterUnitEvent(99954, 18, "NPCGIA_GJOEAOJG_HXOJ_Z") -- The second npc, on spawn tell the script that this is him
    
    function zzz_OnFirstEnterWorld(event, pPlayer) -- When they first enter world
        if PlayerA == nil then -- If a player is not being used currently, a bug check so that we do not do it two times
        local race = pPlayer:GetPlayerRace() -- We get the race of the person that we shall use
        if race == 1 or race == 3 or race == 4 or race == 7 or race == 11 then -- THIS IS THE ALLIANCE RACES, change to what you want.
            pPlayer:CastSpell(50010) -- Visual
            pPlayer:CastSpell(53658) -- Visual
            pPlayer:SetPlayerLock(1) -- Stop him moving
            pPlayer:MovePlayerTo(pPlayer:GetX(),pPlayer:GetY(),pPlayer:GetZ()+0.1, pPlayer:GetO(), 12288) -- Move him slightly to play client side effects and shizzle
            pPlayer:CastSpell(50010) -- More visuals
            pPlayer:CastSpell(28330) -- More visuals
            pPlayer:CastSpell(53658) -- More visuals
            PlayerA = pPlayer -- Here we tell the script we are now using a player
            RegisterTimedEvent("TesttestTesttestTest_zzogje", 4000, 1) -- players cant register events so we use a world event
            RegisterTimedEvent("TesttestTesttestTest_zzogje_z", 500, 2) -- See above
            else
            PlayerA = nil -- if the player is not the race we wanted, reset it
            end
        else -- if the event is in use
        pPlayer:RemoveAura(63752) -- Stop it
        pPlayer:RemoveAura(28330) -- Stop it
        pPlayer:RemoveAura(53658) -- Stop it
        end
    end
    
    function TesttestTesttestTest_zzogje_z(pUnit, Event)
        PlayerA:CastSpell(53658) -- Some random visual because moving them is buggy and disables it
    end
    
    function TesttestTesttestTest_zzogje(pUnit, Event)
        NPC_SPAWNER_A:SendChatMessage(12,0,"We got another live one!") -- ok, our first npc is doing something
        NPC_SPAWNER_A:ChannelSpell(51361, PlayerA) -- Visual
        NPC_SPAWNER_B:ChannelSpell(51361, PlayerA) -- Visual
        NPC_SPAWNER_A:RegisterEvent("SayHelloToMyLittleFriend_Z_z_Z", 5000, 1) -- now we can use the npc to control the event rather than the idiotic world event
    end
    
    RegisterServerHook(3, "zzz_OnFirstEnterWorld") -- Register the on first enter world
    
    function SayHelloToMyLittleFriend_Z_z_Z(pUnit, Event)
        local Name = PlayerA:GetName() -- Get his name
        NPC_SPAWNER_B:SendChatMessage(12, 0, "Woah, are you alright "..Name.."? Your lucky to be alive! Here let me give you a hand.") -- Send a message including his name
        NPC_SPAWNER_A:RegisterEvent("CastReviveVisualThingyTeheTeheTehe", 4000, 1) -- next event
    end
    
    function CastReviveVisualThingyTeheTeheTehe(pUnit, Event)
        NPC_SPAWNER_A:StopChannel() -- stop it
        NPC_SPAWNER_B:StopChannel() -- stop it
        NPC_SPAWNER_B:FullCastSpellOnTarget(37755, PlayerA) -- ress visual
        NPC_SPAWNER_A:FullCastSpellOnTarget(37755, PlayerA) -- ress visual
        NPC_SPAWNER_A:RegisterEvent("LetPlayerMoveaogyaohea", 2400, 1) -- reset player
    end
    
    function LetPlayerMoveaogyaohea(pUnit, Event)
        PlayerA:SetPlayerLock(0) -- let the player move
        PlayerA:CastSpell(21074) -- ress visual
        PlayerA:RemoveAura(50010) -- delete visual
        PlayerA:RemoveAura(28330) -- delete visual
        PlayerA:RemoveAura(53658) -- delete visual
        NPC_SPAWNER_A:SendChatMessage(12, 0, "There we go! You should go see if you can help around the camp now.") -- ohai a message
        NPC_SPAWNER_A:RegisterEvent("MassDespawnAndResetoajphae", 1000, 1) -- reset event
    end
    
    function MassDespawnAndResetoajphae(pUnit, Event)
        PlayerA = nil -- All we need to do is say that the slot for a creating character is nil again
    end
    How to use:

    -You will need to go into your playercreateinfo table, and disable the introid on far right for each race you want to use the intro.
    -You need to create and place two npc's in the starting location's with the id's: 99954 and 99955 (you can edit if you know how to).
    -You can change to your liking, just change the races and stuff in the script. It's pretty much self explanitory, it's all labaled. If you have questions ask.

    Credits:

    -stoneharry
    Last edited by Jackie Moon; 05-03-2010 at 02:23 AM.
    Check out my YouTube: SkeetzGaming

    [Guide] ArcEmu Custom Character Creation Spawns!
  2. #2
    Mr.Zunz's Avatar Contributor
    Reputation
    92
    Join Date
    Mar 2007
    Posts
    393
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Truly epic! To bad I'm not into Emu's much... Non the less; +Rep


  3. #3
    stoneharry's Avatar Moderator Harry


    Reputation
    1618
    Join Date
    Sep 2007
    Posts
    4,564
    Thanks G/R
    151/150
    Trade Feedback
    0 (0%)
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)
    I also made a Horde intro, see the beginning of this video. (Mute the sound it will kill your ears!)

    [YT]<object width="960" height="745"><param name="movie" value="http://www.youtube.com/v/OQqDptYGf00&hl=en_GB&fs=1&color1=0x5d1719&color2=0xcd311b"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/OQqDptYGf00&hl=en_GB&fs=1&color1=0x5d1719&color2=0xcd311b" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="960" height="745"></embed></object>[/YT]

    This script shows how one script can control more than one area for logging in and different races:


    Code:
    local PlayerA
    local NPC_SPAWNER_A
    local NPC_SPAWNER_B
    
    local PlayerB
    local NPC_A
    local NPC_B
    local Count = 0
    
    function NPCGIA_GJOEAOJG_HXOJ(pUnit, Event)
        NPC_SPAWNER_A = pUnit
    end
    
    RegisterUnitEvent(99955, 18, "NPCGIA_GJOEAOJG_HXOJ")
    
    function NPCGIA_GJOEAOJG_HXOJ_Z(pUnit, Event)
        NPC_SPAWNER_B = pUnit
    end
    
    RegisterUnitEvent(99954, 18, "NPCGIA_GJOEAOJG_HXOJ_Z")
    
    function GHOUL_SPAWNED_CARION(pUnit, Event)
        NPC_A = pUnit
    end
    
    RegisterUnitEvent(26515, 18, "GHOUL_SPAWNED_CARION")
    
    function NECROMANCER_MASTER_SPAWN(pUnit, Event)
        NPC_B = pUnit
    end
    
    RegisterUnitEvent(232771, 18, "NECROMANCER_MASTER_SPAWN")
    
    function zzz_OnFirstEnterWorld(event, pPlayer)
        local race = pPlayer:GetPlayerRace() -- We get the race of the person that we shall use
        if race == 1 or race == 3 or race == 4 or race == 7 or race == 11 then -- THIS IS THE ALLIANCE RACES, change to what you want.
            if PlayerA == nil then
            pPlayer:CastSpell(50010) -- Visual
            pPlayer:CastSpell(53658) -- Visual
            pPlayer:SetPlayerLock(1) -- Stop him moving
            pPlayer:MovePlayerTo(pPlayer:GetX(),pPlayer:GetY(),pPlayer:GetZ()+0.1, pPlayer:GetO(), 12288) -- Move him slightly to play client side effects and shizzle
            pPlayer:CastSpell(50010) -- More visuals
            pPlayer:CastSpell(28330) -- More visuals
            pPlayer:CastSpell(53658) -- More visuals
            PlayerA = pPlayer -- Here we tell the script we are now using a player
            RegisterTimedEvent("TesttestTesttestTest_zzogje", 4000, 1) -- players cant register events so we use a world event
            RegisterTimedEvent("TesttestTesttestTest_zzogje_z", 500, 2) -- See above
            end
        else
            if PlayerB == nil then        -- Horde
            pPlayer:SetPlayerLock(1)
            pPlayer:CastSpell(46940) -- Bleed
            pPlayer:SetStandState(7)
            PlayerB = pPlayer
            RegisterTimedEvent("GHOUL_PLAY_EMOTE", 1000, 1)
            RegisterTimedEvent("GHOUL_PLAY_EMOTE_STOP", 5000, 1)
            end
        end
    end
    
    function GHOUL_PLAY_EMOTE(pUnit, Event)
        NPC_A:Emote(398, 10000)
        PlayerB:SetStandState(7)
        NPC_B:SetNPCFlags(1)
        --PlayerB:CastSpell(57626) -- Feign Death
    end
    
    function GHOUL_PLAY_EMOTE_STOP(pUnit, Event)
        NPC_B:SendChatMessage(12,0,"What have you found ghoul?")
        NPC_B:MoveTo(-6431, -2047, 260.5, 2.605783)
        NPC_B:RegisterEvent("Hangon_A_Moment_nubcake", 4700, 1)
    end
    
    function Hangon_A_Moment_nubcake(pUnit, Event)
        NPC_B:SendChatMessage(12,0,"Ah.. I should be able to save this creature.")
        NPC_B:Emote(1, 4000)
        NPC_B:RegisterEvent("Hangon_A_Moment_nubcake_z", 4500, 1)
    end
    
    function Hangon_A_Moment_nubcake_z(pUnit, Event)
        NPC_B:ChannelSpell(57797, PlayerB)
        NPC_B:RegisterEvent("Hangon_A_Moment_nubcake_zz", 6000, 1)
    end
    
    function Hangon_A_Moment_nubcake_zz(pUnit, Event)
        NPC_B:StopChannel()
        PlayerB:SetStandState(0)
        NPC_B:SendChatMessage(12,0,"Your fine. Get up, you look pathetic... Come on, try and move!")
        --PlayerB:SendBroadcastMessage("Hint: Try to move left or right to stand up.")
        --PlayerB:SendAreaTriggerMessage("Hint: Try to move left or right to stand up.")
        PlayerB:SetPlayerLock(0)
        PlayerB:RemoveAura(46940) -- Bleed
        PlayerB:CastSpell(61126)
        NPC_B:RegisterEvent("Hangon_A_Moment_nubcake_zzz", 3000, 1)
    end
    
    function Hangon_A_Moment_nubcake_zzz(pUnit, Event)
        PlayerB = nil
        NPC_B:SetNPCFlags(2)
        NPC_B:ReturnToSpawnPoint()
    end
    
    -- Below is alliance shit
    
    function TesttestTesttestTest_zzogje_z(pUnit, Event)
        PlayerA:CastSpell(53658) -- Some random visual because moving them is buggy and disables it
    end
    
    function TesttestTesttestTest_zzogje(pUnit, Event)
        --[[if NPC_SPAWNER_A == nil then -- if 1 is nil
        NPC_SPAWNER_A = PlayerA:GetCreatureNearestCoords(-8399, -2772.4, 194.8, 99955)
            if NPC_SPAWNER_A == nil then -- still nil reset
            PlayerA:RemoveAura(53658)
            playerA:RemoveAura(28330)
            PlayerA = nil
            else -- otherwise we have value
                if NPC_SPAWNER_B == nil then -- if 2 is nil
                PlayerA:GetCreatureNearestCoords(-8402, -2765.85, 195, 99954)
                    if NPC_SPAWNER_B == nil then -- still nil
                    PlayerA:RemoveAura(53658)
                    playerA:RemoveAura(28330)
                    PlayerA = nil
                    else -- otherwise
                    NPC_SPAWNER_A:SendChatMessage(12,0,"We got another live one!") -- ok, our first npc is doing something
                    NPC_SPAWNER_A:ChannelSpell(51361, PlayerA) -- Visual
                    NPC_SPAWNER_B:ChannelSpell(51361, PlayerA) -- Visual
                    NPC_SPAWNER_A:RegisterEvent("SayHelloToMyLittleFriend_Z_z_Z", 5000, 1) -- now we can use the npc to control the event rather than the idiotic world event
                    end
                else
                NPC_SPAWNER_A:SendChatMessage(12,0,"We got another live one!") -- ok, our first npc is doing something
                NPC_SPAWNER_A:ChannelSpell(51361, PlayerA) -- Visual
                NPC_SPAWNER_B:ChannelSpell(51361, PlayerA) -- Visual
                NPC_SPAWNER_A:RegisterEvent("SayHelloToMyLittleFriend_Z_z_Z", 5000, 1) -- now we can use the npc to control the event rather than the idiotic world event            
                end
            end
        else
            if NPC_SPAWNER_B == nil then -- if 2 is nil
            PlayerA:GetCreatureNearestCoords(-8402, -2765.85, 195, 99954)
                if NPC_SPAWNER_B == nil then -- still nil
                PlayerA:RemoveAura(53658)
                playerA:RemoveAura(28330)
                PlayerA = nil
                else -- otherwise
                NPC_SPAWNER_A:SendChatMessage(12,0,"We got another live one!") -- ok, our first npc is doing something
                NPC_SPAWNER_A:ChannelSpell(51361, PlayerA) -- Visual
                NPC_SPAWNER_B:ChannelSpell(51361, PlayerA) -- Visual
                NPC_SPAWNER_A:RegisterEvent("SayHelloToMyLittleFriend_Z_z_Z", 5000, 1) -- now we can use the npc to control the event rather than the idiotic world event
                end
            else
            ]]
            -- All of the above code was me trying to debug what I found out to be Tikki's idiotic copy + paste on spawn functions >_< RRAGGEEEEE
            NPC_SPAWNER_A:SendChatMessage(12,0,"We got another live one!") -- ok, our first npc is doing something
            NPC_SPAWNER_A:ChannelSpell(51361, PlayerA) -- Visual
            NPC_SPAWNER_B:ChannelSpell(51361, PlayerA) -- Visual
            NPC_SPAWNER_A:RegisterEvent("SayHelloToMyLittleFriend_Z_z_Z", 5000, 1) -- now we can use the npc to control the event rather than the idiotic world event        
            --end
        --end
    end
    
    RegisterServerHook(3, "zzz_OnFirstEnterWorld") -- Register the on first enter world
    
    function SayHelloToMyLittleFriend_Z_z_Z(pUnit, Event)
        local Name = PlayerA:GetName() -- Get his name
        NPC_SPAWNER_B:SendChatMessage(12, 0, "Woah, are you alright "..Name.."? Your lucky to be alive! Let us give you a hand.") -- Send a message including his name
        NPC_SPAWNER_A:RegisterEvent("CastReviveVisualThingyTeheTeheTehe", 4000, 1) -- next event
    end
    
    function CastReviveVisualThingyTeheTeheTehe(pUnit, Event)
        NPC_SPAWNER_A:StopChannel() -- stop it
        NPC_SPAWNER_B:StopChannel() -- stop it
        NPC_SPAWNER_B:FullCastSpellOnTarget(37755, PlayerA) -- ress visual
        NPC_SPAWNER_A:FullCastSpellOnTarget(37755, PlayerA) -- ress visual
        NPC_SPAWNER_A:RegisterEvent("LetPlayerMoveaogyaohea", 2400, 1) -- reset player
    end
    
    function LetPlayerMoveaogyaohea(pUnit, Event)
        PlayerA:SetPlayerLock(0) -- let the player move
        PlayerA:CastSpell(21074) -- ress visual
        PlayerA:RemoveAura(50010) -- delete visual
        PlayerA:RemoveAura(28330) -- delete visual
        PlayerA:RemoveAura(53658) -- delete visual
        NPC_SPAWNER_A:SendChatMessage(12, 0, "There we go! You should report to Commander Howser.") -- ohai a message
        NPC_SPAWNER_A:RegisterEvent("MassDespawnAndResetoajphae", 1000, 1) -- reset event
    end
    
    function MassDespawnAndResetoajphae(pUnit, Event)
        PlayerA = nil -- All we need to do is say that the slot for a creating character is nil again
    end

  4. #4
    Jackie Moon's Avatar Elite User
    Reputation
    407
    Join Date
    May 2008
    Posts
    923
    Thanks G/R
    0/0
    Trade Feedback
    1 (100%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Wow thats really cool, you gotta teach me how you make your quests so good, the new arcemu i'm using sucks!

    I tried to get a hold of you in bawx to see if me posting some of your stuff was ok btw!
    Check out my YouTube: SkeetzGaming

  5. #5
    P1raten's Avatar Banned
    Reputation
    500
    Join Date
    Mar 2008
    Posts
    1,323
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Already knew this, good post however. Thank you

  6. #6
    Jackie Moon's Avatar Elite User
    Reputation
    407
    Join Date
    May 2008
    Posts
    923
    Thanks G/R
    0/0
    Trade Feedback
    1 (100%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Cheers for the feedback guys!
    Check out my YouTube: SkeetzGaming

  7. #7
    bendaferi's Avatar Active Member
    Reputation
    34
    Join Date
    Jun 2008
    Posts
    111
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Amazing! The guid is nice and these "movies" are fkin epic! I'll surely +rep you when I can
    Thank you Jackie Moon and stoneharry!

  8. #8
    dakafall's Avatar Member
    Reputation
    5
    Join Date
    Jun 2007
    Posts
    54
    Thanks G/R
    0/0
    Trade Feedback
    2 (100%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Thanks for the guide, Im one step closer to my goal of having a decent ps !

  9. #9
    Jackie Moon's Avatar Elite User
    Reputation
    407
    Join Date
    May 2008
    Posts
    923
    Thanks G/R
    0/0
    Trade Feedback
    1 (100%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Anything else you guys would want too see?
    Last edited by Jackie Moon; 05-13-2010 at 09:29 PM.
    Check out my YouTube: SkeetzGaming

Similar Threads

  1. [Custom] SnowElf Theme Login & Character Creation! + BONUS
    By Xel in forum World of Warcraft Model Editing
    Replies: 26
    Last Post: 04-23-2017, 04:44 AM
  2. [REQUEST][GUIDE] Arcemu customs dc bug will repx2
    By ReppzYouTube in forum World of Warcraft Guides
    Replies: 6
    Last Post: 02-17-2009, 06:02 AM
  3. ArcEmu 2018 character creation page
    By einhornchen in forum WoW EMU Questions & Requests
    Replies: 8
    Last Post: 01-20-2009, 11:14 PM
All times are GMT -5. The time now is 05:15 AM. Powered by vBulletin® Version 4.2.3
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. User Alert System provided by Advanced User Tagging (Pro) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.
Google Authenticator verification provided by Two-Factor Authentication (Free) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.
Digital Point modules: Sphinx-based search