I took the bytes of a certain address and a few addresses after it creating a byte signature, and I auto search that signature, and it will auto give me the address so I never have to update the address. Here is an example of signatures I made for certain addresses for the game "Gunz".
Code:
//Signatures by OneWhoSighs
//ZChatOutput
BYTE ZChatOutputSig[] = {0xE8, 0xEE, 0xEE, 0xEE, 0xEE, 0x8B, 0x4C, 0x24, 0x10, 0x8B, 0x54, 0x24, 0x0C, 0x51, 0x8B, 0x4C, 0x24, 0x0C, 0x52, 0x8B, 0x54, 0x24, 0x0C, 0x51, 0x52, 0x8D, 0x88, 0x80, 0x03, 0x00, 0x00};
DWORD ZChatOutputSigAddr = SigSearch(ZChatOutputSig, 31);
//ZPostFriendAdd
BYTE ZPostFriendAddSig[] = {0x6A, 0xFF, 0x68, 0xEE, 0xEE, 0xEE, 0xEE, 0x64, 0xA1, 0x00, 0x00, 0x00, 0x00, 0x50, 0x64, 0x89, 0x25, 0x00, 0x00, 0x00, 0x00, 0x51, 0x56, 0x68, 0x6D, 0x07, 0x00, 0x00};
DWORD ZPostFriendAddSigAddr = SigSearch(ZPostFriendAddSig, 28);
//ZPostFriendRemove
BYTE ZPostFriendRemoveSig[] = {0x6A, 0xFF, 0x68, 0xEE, 0xEE, 0xEE, 0xEE, 0x64, 0xA1, 0x00, 0x00, 0x00, 0x00, 0x50, 0x64, 0x89, 0x25, 0x00, 0x00, 0x00, 0x00, 0x51, 0x56, 0x68, 0x6E, 0x07, 0x00, 0x00};
DWORD ZPostFriendRemoveSigAddr = SigSearch(ZPostFriendRemoveSig, 28);
//ZPostGameKill
BYTE ZPostGameKillSig[] = {0x6A, 0xFF, 0x68, 0xEE, 0xEE, 0xEE, 0xEE, 0x64, 0xA1, 0x00, 0x00, 0x00, 0x00, 0x50, 0x64, 0x89, 0x25, 0x00, 0x00, 0x00, 0x00, 0x51, 0x56, 0x57, 0x68, 0xE7, 0x05, 0x00, 0x00};
DWORD ZPostGameKillSigAddr = SigSearch(ZPostGameKillSig, 29);
//ZPostRequestAgreedJoinClan
BYTE ZPostRequestAgreedJoinClanSig[] = {0x6A, 0xFF, 0x68, 0xEE, 0xEE, 0xEE, 0xEE, 0x64, 0xA1, 0x00, 0x00, 0x00, 0x00, 0x50, 0x64, 0x89, 0x25, 0x00, 0x00, 0x00, 0x00, 0x51, 0x56, 0x57, 0x68, 0xDC, 0x07, 0x00, 0x00};
DWORD ZPostRequestAgreedJoinClanSigAddr = SigSearch(ZPostRequestAgreedJoinClanSig, 29);
//ZPostShotMelee
BYTE ZPostShotMeleeSig[] = {0x64, 0xA1, 0x00, 0x00, 0x00, 0x00, 0x6A, 0xFF, 0x68, 0xEE,0xEE, 0xEE, 0xEE, 0x50, 0x64, 0x89, 0x25, 0x00, 0x00, 0x00, 0x00, 0x83, 0xEC, 0x10, 0x53, 0x55, 0x56, 0x57, 0x68, 0x35, 0x27, 0x00, 0x00};
DWORD ZPostShotMeleeSigAddr = SigSearch(ZPostShotMeleeSig, 33);
//ZPostShotSp
BYTE ZPostShotSpSig[] = {0x64, 0xA1, 0x00, 0x00, 0x00, 0x00, 0x6A, 0xFF, 0x68, 0xEE, 0xEE, 0xEE, 0xEE, 0x50, 0x64, 0x89, 0x25, 0x00, 0x00, 0x00, 0x00, 0x83, 0xEC, 0x10, 0x53, 0x55, 0x56, 0x57, 0x68, 0x33, 0x27, 0x00, 0x00};
DWORD ZPostShotSpSigAddr = SigSearch(ZPostShotSpSig, 33);
//ZPostSkill
BYTE ZPostSkillSig[] = {0x6A, 0xFF, 0x68, 0xEE, 0xEE, 0xEE, 0xEE, 0x64, 0xA1, 0x00, 0x00, 0x00, 0x00, 0x50, 0x64, 0x89, 0x25, 0x00, 0x00, 0x00, 0x00, 0x51, 0x53, 0x55, 0x56, 0x57, 0x68, 0x34, 0x27, 0x00, 0x00};
DWORD ZPostSkillSigAddr = SigSearch(ZPostSkillSig, 31);
//ZPostSpawn
BYTE ZPostSpawnSig[] = {0x64, 0xA1, 0x00, 0x00, 0x00, 0x00, 0x6A, 0xFF, 0x68, 0xEE, 0xEE, 0xEE, 0xEE, 0x50, 0x64, 0x89, 0x25, 0x00, 0x00, 0x00, 0x00, 0x83, 0xEC, 0x10, 0x53, 0x56, 0x57, 0x68, 0x3A, 0x27, 0x00, 0x00};
DWORD ZPostSpawnSigAddr = SigSearch(ZPostSpawnSig, 32);
//ZPostStageCreate
BYTE ZPostStageCreateSig[] = {0x6A, 0xFF, 0x68, 0xEE, 0xEE, 0xEE, 0xEE, 0x64, 0xA1, 0x00, 0x00, 0x00, 0x00, 0x50, 0x64, 0x89, 0x25, 0x00, 0x00, 0x00, 0x00, 0x51, 0x53, 0x55, 0x56, 0x57, 0x68, 0x15, 0x05, 0x00, 0x00};
DWORD ZPostStageCreateSigAddr = SigSearch(ZPostStageCreateSig, 31);
//ZPostStageFollow
BYTE ZPostStageFollowSig[] = {0x6A, 0xFF, 0x68, 0xEE, 0xEE, 0xEE, 0xEE, 0x64, 0xA1, 0x00, 0x00, 0x00, 0x00, 0x50, 0x64, 0x89, 0x25, 0x00, 0x00, 0x00, 0x00, 0x51, 0x56, 0x68, 0x1D, 0x05, 0x00, 0x00};
DWORD ZPostStageFollowSigAddr = SigSearch(ZPostStageFollowSig, 28);
//ZPostStageLeave
BYTE ZPostStageLeaveSig[] = {0x6A, 0xFF, 0x68, 0xEE, 0xEE, 0xEE, 0xEE, 0x64, 0xA1, 0x00, 0x00, 0x00, 0x00, 0x50, 0x64, 0x89, 0x25, 0x00, 0x00, 0x00, 0x00, 0x51, 0x53, 0x55, 0x56, 0x57, 0x68, 0x1B, 0x05, 0x00, 0x00};
DWORD ZPostStageLeaveSigAddr = SigSearch(ZPostStageLeaveSig, 31);
//ZPostStageMap
BYTE ZPostStageMapSig[] = {0x6A, 0xFF, 0x68, 0xEE, 0xEE, 0xEE, 0xEE, 0x64, 0xA1, 0x00, 0x00, 0x00, 0x00, 0x50, 0x64, 0x89, 0x25, 0x00, 0x00, 0x00, 0x00, 0x51, 0x56, 0x57, 0x68, 0x86, 0x05, 0x00, 0x00};
DWORD ZPostStageMapSigAddr = SigSearch(ZPostStageMapSig, 29);
//ZPostStageStart
BYTE ZPostStageStartSig[] = {0x6A, 0xFF, 0x68, 0xEE, 0xEE, 0xEE, 0xEE, 0x64, 0xA1, 0x00, 0x00, 0x00, 0x00, 0x50, 0x64, 0x89, 0x25, 0x00, 0x00, 0x00, 0x00, 0x51, 0x53, 0x55, 0x56, 0x57, 0x68, 0x97, 0x05, 0x00, 0x00};
DWORD ZPostStageStartSigAddr = SigSearch(ZPostStageStartSig, 31);
//ZPostStageTeam
BYTE ZPostStageTeamSig[] = {0x6A, 0xFF, 0x68, 0xEE, 0xEE, 0xEE, 0xEE, 0x64, 0xA1, 0x00, 0x00, 0x00, 0x00, 0x50, 0x64, 0x89, 0x25, 0x00, 0x00, 0x00, 0x00, 0x51, 0x53, 0x55, 0x56, 0x57, 0x68, 0x8F, 0x05, 0x00, 0x00};
DWORD ZPostStageTeamSigAddr = SigSearch(ZPostStageTeamSig, 31);
//ZPostWhere
BYTE ZPostWhereSig[] = {0x6A, 0xFF, 0x68, 0xEE, 0xEE, 0xEE, 0xEE, 0x64, 0xA1, 0x00, 0x00, 0x00, 0x00, 0x50, 0x64, 0x89, 0x25, 0x00, 0x00, 0x00, 0x00, 0x51, 0x56, 0x68, 0x42, 0x06, 0x00, 0x00};
DWORD ZPostWhereSigAddr = SigSearch(ZPostWhereSig, 28);
//ZPostWhisper
BYTE ZPostWhisperSig[] = {0x6A, 0xFF, 0x68, 0xEE, 0xEE, 0xEE, 0xEE, 0x64, 0xA1, 0x00, 0x00, 0x00, 0x00, 0x50, 0x64, 0x89, 0x25, 0x00, 0x00, 0x00, 0x00, 0x51, 0x56, 0x68, 0x41, 0x06, 0x00, 0x00};
DWORD ZPostWhisperSigAddr = SigSearch(ZPostWhisperSig, 28);
//ZPostCreateMyChar
BYTE ZPostCreateMyCharSignature[] = {0x6A, 0xEE, 0x68, 0xEE, 0xEE, 0xEE, 0xEE, 0x64, 0xA1, 0xEE, 0xEE, 0xEE, 0xEE, 0x50, 0x64, 0x89, 0x25, 0xEE, 0xEE, 0xEE, 0xEE, 0x51, 0x53, 0x55, 0x56, 0x57, 0x68, 0xAF, 0x06, 0x00, 0x00};
DWORD ZPostCreateMyCharSigAddr = SigSearch(ZPostCreateMyCharSignature, 31);
//ZPostDeleteMyChar
BYTE ZPostDeleteMyCharSig[] = {0x6A, 0xFF, 0x68, 0xEE, 0xEE, 0xEE, 0xEE, 0x64, 0xA1, 0x00, 0x00, 0x00, 0x00, 0x50, 0x64, 0x89, 0x25, 0x00, 0x00, 0x00, 0x00, 0x51, 0x53, 0x55, 0x56, 0x57, 0x68, 0xB1, 0x06, 0x00, 0x00};
DWORD ZPostDeleteMyCharSigAddr = SigSearch(ZPostDeleteMyCharSig, 31);
//ZGetGameClientOffset
BYTE ZGetGameClientSignature[] = {0xE9, 0xEE, 0xEE, 0xEE, 0xEE, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xE9, 0xEE, 0xEE, 0xEE, 0xEE, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xE9, 0xEE, 0xEE, 0xEE, 0xEE, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xE9, 0xEE, 0xEE, 0xEE, 0xEE, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xA1, 0xEE, 0xEE, 0xEE, 0xEE};
DWORD ZGetGameClientOffset = SigSearch(ZGetGameClientSignature, 69);
//ZCharacterManager__FindOffset
BYTE ZCharacterManager__FindSig[] = {0x51, 0x56, 0x57, 0x8B, 0xF9, 0x8D, 0x44, 0x24, 0x10, 0x8D, 0x77, 0x04, 0x50, 0x8B, 0xCE};
DWORD ZCharacterManager__FindOffset = SigSearch(ZCharacterManager__FindSig, 15);
//ZPostChannelChat
BYTE ZPostChannelChatSig[] ={0x6A, 0xFF, 0x68, 0xEE, 0xEE, 0xEE, 0xEE, 0x64, 0xA1, 0x00, 0x00, 0x00, 0x00, 0x50, 0x64, 0x89, 0x25, 0x00, 0x00, 0x00, 0x00, 0x51, 0x53, 0x55, 0x56, 0x57, 0x68, 0xC9, 0x04, 0x00, 0x00};
DWORD ZPostChannelChatSigAddr = SigSearch(ZPostChannelChatSig, 31);
//ZPostChatRoomCreate
BYTE ZPostChatRoomCreateSig[] = {0x6A, 0xFF, 0x68, 0xEE, 0xEE, 0xEE, 0xEE, 0x64, 0xA1, 0x00, 0x00, 0x00, 0x00, 0x50, 0x64, 0x89, 0x25, 0x00, 0x00, 0x00, 0x00, 0x51, 0x56, 0x57, 0x68, 0x73, 0x06, 0x00, 0x00};
DWORD ZPostChatRoomCreateSigAddr = SigSearch(ZPostChatRoomCreateSig, 29);
//ZPostRequestBuyItem
BYTE ZPostRequestBuyItemSig[] = {0x6A, 0xFF, 0x68, 0xEE, 0xEE, 0xEE, 0xEE, 0x64, 0xA1, 0x00, 0x00, 0x00, 0x00, 0x50, 0x64, 0x89, 0x25, 0x00, 0x00, 0x00, 0x00, 0x51, 0x53, 0x55, 0x56, 0x57, 0x68, 0x13, 0x07, 0x00, 0x00};
DWORD ZPostRequestBuyItemSigAddr = SigSearch(ZPostRequestBuyItemSig, 31);
//ZPostRequestForcedEntry
BYTE ZPostRequestForcedEntrySig[] = {0x6A, 0xFF, 0x68, 0xEE, 0xEE, 0xEE, 0xEE, 0x64, 0xA1, 0x00, 0x00, 0x00, 0x00, 0x50, 0x64, 0x89, 0x25, 0x00, 0x00, 0x00, 0x00, 0x51, 0x53, 0x55, 0x56, 0x57, 0x68, 0x87, 0x05, 0x00, 0x00};
DWORD ZPostRequestForcedEntrySigAddr = SigSearch(ZPostRequestForcedEntrySig, 31);
//ZPostRequestLeaveClan
BYTE ZPostRequestLeaveClanSig[] = {0x6A, 0xFF, 0x68, 0xEE, 0xEE, 0xEE, 0xEE, 0x64, 0xA1, 0x00, 0x00, 0x00, 0x00, 0x50, 0x64, 0x89, 0x25, 0x00, 0x00, 0x00, 0x00, 0x51, 0x56, 0x57, 0x68, 0xDE, 0x07, 0x00, 0x00};
DWORD ZPostRequestLeaveClanSigAddr = SigSearch(ZPostRequestLeaveClanSig, 29);
//ZPostRequestSellItem
BYTE ZPostRequestSellItemSig[] = {0x6A, 0xFF, 0x68, 0xEE, 0xEE, 0xEE, 0xEE, 0x64, 0xA1, 0x00, 0x00, 0x00, 0x00, 0x50, 0x64, 0x89, 0x25, 0x00, 0x00, 0x00, 0x00, 0x51, 0x53, 0x55, 0x56, 0x57, 0x68, 0x15, 0x07, 0x00, 0x00};
DWORD ZPostRequestSellItemSigAddr = SigSearch(ZPostRequestSellItemSig, 31);
//ZPostRequestSuicide
BYTE ZPostRequestSuicideSig[] = {0x6A, 0xFF, 0x68, 0xEE, 0xEE, 0xEE, 0xEE, 0x64, 0xA1, 0x00, 0x00, 0x00, 0x00, 0x50, 0x64, 0x89, 0x25, 0x00, 0x00, 0x00, 0x00, 0x51, 0x56, 0x57, 0x68, 0xFB, 0x05, 0x00, 0x00};
DWORD ZPostRequestSuicideSigAddr = SigSearch(ZPostRequestSuicideSig, 29);
//ZPostRequestJoinClan
BYTE ZPostRequestJoinClanSignature[] = {0X6A,0XFF,0X68,0XEE,0XEE,0XEE,0XEE,0X64,0XA1,0X00,0X00,0X00,0X00,0X50,0X64,0X89,0X25,0X00,0X00,0X00,0X00,0X51,0X56,0X57,0X68,0XD8,0X07,0X00,0X00,};
DWORD ZPostRequestJoinClanSigAddr = SigSearch(ZPostRequestJoinClanSignature, 29);
//ZPostRequestDropSacrificeItem
BYTE ZPostRequestDropSacrificeItemSignature[] = {0X6A,0XFF,0X68,0XEE,0XEE,0XEE,0XEE,0X64,0XA1,0X00,0X00,0X00,0X00,0X50,0X64,0X89,0X25,0X00,0X00,0X00,0X00,0X51,0X53,0X56,0X57,0X68,0X0F,0X52,0X00,0X00,};
DWORD ZPostRequestDropSacrificeItemSigAddr = SigSearch(ZPostRequestDropSacrificeItemSignature, 30);
//ZCharacterManagerOffset
BYTE ZCharacterManagerOffsetSignature[] = {0XA1,0XEE,0XEE,0XEE,0XEE,0X85,0XC0,0X75,0XEE,0XC3,0X83,0XC0,0X50,0XC3};
DWORD ZCharacterManagerOffset = SigSearch(ZCharacterManagerOffsetSignature, 14);
//ZGetQuestOffset
BYTE ZGetQuestOffsetSignature[] = {0XE8,0XEE,0XEE,0XEE,0XEE,0X85,0XC0,0X74,0XEE,0XE8,0XEE,0XEE,0XEE,0XEE,0X05,0XFC,0X1F,0X00,0X00,0XC3,0X33,0XC0,0XC3};
DWORD ZGetQuestOffset = SigSearch(ZGetQuestOffsetSignature, 23);
//ZQuest__MoveToNextSector
BYTE ZQuest__MoveToNextSectorSignature[] = {0X51,0X56,0X57,0X8B,0XF9,0XE8 ,0XEE,0XEE,0XEE,0XEE,0X8B,0X70,0X4C,0X8B,0X06,0X8B,0XCE,0XFF,0X90,0XB8,0X00,0X00,0X00};
DWORD ZQuest__MoveToNextSectorOffset = SigSearch(ZQuest__MoveToNextSectorSignature, 23);
//ZCharacter__LevelUp
BYTE ZCharacter__LevelUpSignature[] = {0X8B,0X01,0XFF,0XA0,0X88,0X00,0X00,0X00};
DWORD ZCharacter__LevelUpOffset = SigSearch(ZCharacter__LevelUpSignature, 8);
//ZGetCombatInterface
BYTE ZGetCombatInterfaceSignature[] = {0XE8,0XEE,0XEE,0XEE,0XEE,0X85,0XC0,0X74,0XEE,0XE8,0XEE,0XEE,0XEE,0XEE,0X8B,0X80,0XDC,0X02,0X00,0X00,0XC3,0X33,0XC0,0XC3,};
DWORD ZGetCombatInterfaceOffset = SigSearch(ZGetCombatInterfaceSignature, 24);
//ZCombatInterface__GetTargetUID
BYTE ZCombatInterface__GetTargetUIDSignature[] = {0X8A,0X81,0X2C,0X03,0X00,0X00,0X84,0XC0,0X74,0XEE,0X8B,0X81,0X34,0X03,0X00,0X00,0X8B,0X50,0X28,0X8B,0X4C,0X24,0X04,0X89,0X11,0X8B,0X40,0X2C,0X89,0X41,0X04,};
DWORD ZCombatInterface__GetTargetUIDOffset = SigSearch(ZCombatInterface__GetTargetUIDSignature, 31);
//ZPostRequestCreateClan
BYTE ZPostRequestCreateClanSignature[] = {0X64,0XA1,0X00,0X00,0X00,0X00,0X6A,0XFF,0X68,0XEE,0XEE,0XEE,0XEE,0X50,0X83,0X7C,0X24,0X20,0X04,0X64,0X89,0X25,0X00,0X00,0X00,0X00,0X53,0X56,0X57,};
DWORD ZPostRequestCreateClanSigAddr = SigSearch(ZPostRequestCreateClanSignature, 29);
//ZGame__CreateMyChar
BYTE ZGame__CreateMyCharSignature[] = {0X56,0X8B,0XF1,0X8B,0X46,0X4C,0X85,0XC0,0X75,0XEE,0X32,0XC0,0X5E,0XC2,0X04,0X00,};
DWORD ZGame__CreateMyCharOffset = SigSearch(ZGame__CreateMyCharSignature, 16);
//ZGetGame
BYTE ZGetGameSignature[] = {0XE8,0XEE,0XEE,0XEE,0XEE,0X85,0XC0,0X74,0XEE,0X56,0X8B,0X35,0XEE,0XEE,0XEE,0XEE,0XE8,0XEE,0XEE,0XEE,0XEE,0X8B,0XC6,0X5E,0XC3,0X33,0XC0,0XC3,};
DWORD ZGetGameOffset = SigSearch(ZGetGameSignature, 28);
//ZCamera__SetNextLookMode
BYTE ZCamera__SetNextLookModeSignature[] = {0X8B,0X41,0X50,0X40,0X83,0XF8,0X02,0X7C,0XEE,0X33,0XC0,0X50,0XE8,0XEE,0XEE,0XEE,0XEE,0XC3,};
DWORD ZCamera__SetNextLookModeOffset = SigSearch(ZCamera__SetNextLookModeSignature, 18);
//ZGetCamera
BYTE ZGetCameraSignature[] = {0XE8,0XEE,0XEE,0XEE,0XEE,0X85,0XC0,0X74,0XEE,0XE8,0XEE,0XEE,0XEE,0XEE,0X05,0XF4,0X02,0X00,0X00,0XC3,0X33,0XC0,0XC3,};
DWORD ZGetCameraOffset = SigSearch(ZGetCameraSignature, 23);
//ZCharacter__SetHP
BYTE ZCharacter__SetHPSignature[] = {0X8B,0X89,0X2C,0X03,0X00,0X00,0XE9,0XEE,0XEE,0XEE,0XEE,0XCC,0XCC,0XCC,0XCC,0XCC,0X8B,0X89,0X2C,0X03,0X00,0X00,0XE9,0XEE,0XEE,0XEE,0XEE,0XCC,0XCC,0XCC,0XCC,0XCC,0X8B,0X01,};
DWORD ZCharacter__SetHPOffset = SigSearch(ZCharacter__SetHPSignature, 34);
//ZPostStageEnterBattle
BYTE ZPostStageEnterBattleSignature[] = {0X6A,0XFF,0X68,0XEE,0XEE,0XEE,0XEE,0X64,0XA1,0X00,0X00,0X00,0X00,0X50,0X64,0X89,0X25,0X00,0X00,0X00,0X00,0X51,0X53,0X55,0X56,0X57,0X68,0X79,0X05,0X00,0X00,};
DWORD ZPostStageEnterBattleSigAddr = SigSearch(ZPostStageEnterBattleSignature, 31);
//ZPostStageLeaveBattle
BYTE ZPostStageLeaveBattleSignature[] = {0X6A,0XFF,0X68,0XEE,0XEE,0XEE,0XEE,0X64,0XA1,0X00,0X00,0X00,0X00,0X50,0X64,0X89,0X25,0X00,0X00,0X00,0X00,0X51,0X53,0X55,0X56,0X57,0X68,0X7B,0X05,0X00,0X00,};
DWORD ZPostStageLeaveBattleSigAddr = SigSearch(ZPostStageLeaveBattleSignature, 31);
//ZPostRequestExpelClanMember
BYTE ZPostRequestExpelClanMemberSignature[] = {0X6A,0XFF,0X68,0XEE,0XEE,0XEE,0XEE,0X64,0XA1,0X00,0X00,0X00,0X00,0X50,0X64,0X89,0X25,0X00,0X00,0X00,0X00,0X51,0X56,0X57,0X68,0XE3,0X07,0X00,0X00,};
DWORD ZPostRequestExpelClanMemberSigAddr = SigSearch(ZPostRequestExpelClanMemberSignature, 29);
//ZPostQuestRequestNPCDead
BYTE ZPostQuestRequestNPCDeadSignature[] = {0X6A,0XFF,0X68,0XEE,0XEE,0XEE,0XEE,0X64,0XA1,0X00,0X00,0X00,0X00,0X50,0X64,0X89,0X25,0X00,0X00,0X00,0X00,0X51,0X53,0X56,0X57,0X68,0X73,0X17,0X00,0X00,};
DWORD ZPostQuestRequestNPCDeadSigAddr = SigSearch(ZPostQuestRequestNPCDeadSignature, 30);
//ZMyCharacter__GetGravityConst
BYTE ZMyCharacter__GetGravityConstSignature[] = {0x83, 0xEC, 0x3C, 0x56, 0x6A, 0x00, 0x8D, 0x44, 0x24, 0x08};
DWORD ZMyCharacter__GetGravityConstOffset = SigSearch(ZMyCharacter__GetGravityConstSignature, 10);
//ZPostPeerEnchantDamage
BYTE ZPostPeerEnchantDamageSignature[] = {0X6A,0XFF,0X68,0XEE,0XEE,0XEE,0XEE,0X64,0XA1,0X00,0X00,0X00,0X00,0X50,0X64,0X89,0X25,0X00,0X00,0X00,0X00,0X51,0X53,0X55,0X56,0X57,0X68,0X47,0X27,0X00,0X00,};
DWORD ZPostPeerEnchantDamageSigAddr = SigSearch(ZPostPeerEnchantDamageSignature, 31);
//ZPostSPMotion
BYTE ZPostSPMotionSignature[] = {0X6A,0XFF,0X68,0XEE,0XEE,0XEE,0XEE,0X64,0XA1,0X00,0X00,0X00,0X00,0X50,0X64,0X89,0X25,0X00,0X00,0X00,0X00,0X51,0X56,0X57,0X68,0X3E,0X27,0X00,0X00,};
DWORD ZPostSPMotionSigAddr = SigSearch(ZPostSPMotionSignature, 29);
//ZCharacter::IsAdminName
BYTE ZCharacter__IsAdminNameSignature[] = {0x8B, 0x81, 0xEE, 0xEE, 0xEE, 0xEE, 0x3D, 0xEE, 0xEE, 0xEE, 0xEE, 0x74, 0xEE, 0x3D, 0xEE, 0xEE, 0xEE, 0xEE, 0x74, 0xEE};
DWORD ZCharacter__IsAdminNameOffset = SigSearch(ZCharacter__IsAdminNameSignature, 20);
With this, I never have to update any addresses, they will update themselves.