Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #Include address.ahk
- #Include memory.ahk
- global SPECIAL_ACTION_NONE := 0
- global SAMP_PPOOL_PLAYER_OFFSET := 0x18
- global SAMP_PPOOL_VEHICLE_OFFSET := 0x1C
- global SAMP_PPOOL_PICKUP_OFFSET := 0x20
- global SAMP_PPOOL_OBJECT_OFFSET := 0x4
- global SAMP_COLOR_OFFSET := 0x216378
- global DIALOG_STYLE_MSGBOX := 0
- global DIALOG_STYLE_INPUT := 1
- global DIALOG_STYLE_LIST := 2
- global DIALOG_STYLE_PASSWORD := 3
- global DIALOG_STYLE_TABLIST := 4
- global DIALOG_STYLE_TABLIST_HEADERS := 5
- global SAMP_DIALOG_STRUCT_PTR := 0x21A0B8
- global SAMP_DIALOG_PTR1_OFFSET := 0x1C
- global SAMP_DIALOG_LINES_OFFSET := 0x44C
- global SAMP_DIALOG_INDEX_OFFSET := 0x443
- global SAMP_DIALOG_BUTTON_HOVERING_OFFSET := 0x465
- global SAMP_DIALOG_BUTTON_CLICKED_OFFSET := 0x466
- global SAMP_DIALOG_PTR2_OFFSET := 0x20
- global SAMP_DIALOG_LINECOUNT_OFFSET := 0x150
- global SAMP_DIALOG_OPEN_OFFSET := 0x28
- global SAMP_DIALOG_STYLE_OFFSET := 0x2C
- global SAMP_DIALOG_ID_OFFSET := 0x30
- global SAMP_DIALOG_TEXT_PTR_OFFSET := 0x34
- global SAMP_DIALOG_CAPTION_OFFSET := 0x40
- global FUNC_SAMP_SHOWDIALOG := 0x6B9C0
- global FUNC_SAMP_CLOSEDIALOG := 0x6C040
- global SAMP_INFO_OFFSET := 0x21A0F8
- global SAMP_PPOOLS_OFFSET := 0x3CD
- global SAMP_PPOOL_PLAYER_OFFSET := 0x18
- global SAMP_LOCALPLAYER_OFFSET := 0x22
- global SAMP_ENGINE := 0x12472748
- global CPed := readDWORD(hGTA, 0xB6F5F0)
- global SAMP_3DTEXT := 0x12C7BC
- global dwSAMP := 0x0
- global SAMP_DIALOG_PTR := 0x21A0B8
- global SAMP_DIALOG_OFFSET := 0x34
- global SAMP_DIALOG_SIZE := 2048
- global functionPatches := {}
- functionPatches.Push(Object("NAME", "SetPlayerName", "OFFSET", 0x01A4F0, "PATCH", 0xC390))
- functionPatches.Push(Object("NAME", "SetPlayerPos", "OFFSET", 0x015970, "PATCH", 0xC390))
- functionPatches.Push(Object("NAME", "SetPlayerPosFindZ", "OFFSET", 0x015A90, "PATCH", 0xC390))
- functionPatches.Push(Object("NAME", "SetPlayerHealth", "OFFSET", 0x015BA0, "PATCH", 0xC390))
- functionPatches.Push(Object("NAME", "TogglePlayerControllable", "OFFSET", 0x0168E0, "PATCH", 0xC390))
- functionPatches.Push(Object("NAME", "PlaySound", "OFFSET", 0x016980, "PATCH", 0xC390))
- functionPatches.Push(Object("NAME", "SetPlayerWorldBounds", "OFFSET", 0x016A60, "PATCH", 0xC390))
- functionPatches.Push(Object("NAME", "GivePlayerMoney", "OFFSET", 0x016B50, "PATCH", 0xC390))
- functionPatches.Push(Object("NAME", "SetPlayerFacingAngle", "OFFSET", 0x016BF0, "PATCH", 0xC390))
- functionPatches.Push(Object("NAME", "ResetPlayerMoney", "OFFSET", 0x014780, "PATCH", 0xC390))
- functionPatches.Push(Object("NAME", "ResetPlayerWeapons", "OFFSET", 0x014790, "PATCH", 0xC390))
- functionPatches.Push(Object("NAME", "GivePlayerWeapon", "OFFSET", 0x016C90, "PATCH", 0xC390))
- functionPatches.Push(Object("NAME", "SetVehicleParamsEx", "OFFSET", 0x00E370, "PATCH", 0xC390))
- functionPatches.Push(Object("NAME", "EnterVehicle", "OFFSET", 0x00E650, "PATCH", 0xC390))
- functionPatches.Push(Object("NAME", "EnterEditObject", "OFFSET", 0x00BA90, "PATCH", 0xC390))
- functionPatches.Push(Object("NAME", "CancelEdit", "OFFSET", 0x00BB50, "PATCH", 0xC390))
- functionPatches.Push(Object("NAME", "SetPlayerTime", "OFFSET", 0x00C4E0, "PATCH", 0xC390))
- functionPatches.Push(Object("NAME", "ToggleClock", "OFFSET", 0x00C5C0, "PATCH", 0xC390))
- functionPatches.Push(Object("NAME", "WorldPlayerAdd", "OFFSET", 0x00DBB0, "PATCH", 0xC390))
- functionPatches.Push(Object("NAME", "SetPlayerShopName", "OFFSET", 0x014540, "PATCH", 0xC390))
- functionPatches.Push(Object("NAME", "SetPlayerSkillLevel", "OFFSET", 0x00C6A0, "PATCH", 0xC390))
- functionPatches.Push(Object("NAME", "SetPlayerDrunkLevel", "OFFSET", 0x015490, "PATCH", 0xC390))
- functionPatches.Push(Object("NAME", "Create3DTextLabel", "OFFSET", 0x00C7D0, "PATCH", 0xC390))
- functionPatches.Push(Object("NAME", "DisableCheckpoint", "OFFSET", 0x00B780, "PATCH", 0xC390))
- functionPatches.Push(Object("NAME", "SetRaceCheckpoint", "OFFSET", 0x00D330, "PATCH", 0xC390))
- functionPatches.Push(Object("NAME", "DisableRaceCheckpoint", "OFFSET", 0x00B790, "PATCH", 0xC390))
- functionPatches.Push(Object("NAME", "GameModeRestart", "OFFSET", 0x00B830, "PATCH", 0xC390))
- functionPatches.Push(Object("NAME", "PlayAudioStream", "OFFSET", 0x019990, "PATCH", 0xC390))
- functionPatches.Push(Object("NAME", "StopAudioStream", "OFFSET", 0x0147E0, "PATCH", 0xC390))
- functionPatches.Push(Object("NAME", "RemoveBuildingForPlayer", "OFFSET", 0x019B00, "PATCH", 0xC390))
- functionPatches.Push(Object("NAME", "CreateObject", "OFFSET", 0x017980, "PATCH", 0xC390))
- functionPatches.Push(Object("NAME", "SetObjectPos", "OFFSET", 0x018050, "PATCH", 0xC390))
- functionPatches.Push(Object("NAME", "SetObjectRot", "OFFSET", 0x018160, "PATCH", 0xC390))
- functionPatches.Push(Object("NAME", "DestroyObject", "OFFSET", 0x018260, "PATCH", 0xC390))
- functionPatches.Push(Object("NAME", "DeathMessage", "OFFSET", 0x01A290, "PATCH", 0xC390))
- functionPatches.Push(Object("NAME", "SetPlayerMapIcon", "OFFSET", 0x016DE0, "PATCH", 0xC390))
- functionPatches.Push(Object("NAME", "RemoveVehicleComponent", "OFFSET", 0x018C00, "PATCH", 0xC390))
- functionPatches.Push(Object("NAME", "Update3DTextLabel", "OFFSET", 0x00C980, "PATCH", 0xC390))
- functionPatches.Push(Object("NAME", "ChatBubble", "OFFSET", 0x00CA40, "PATCH", 0xC390))
- functionPatches.Push(Object("NAME", "UpdateSystemTime", "OFFSET", 0x00CFE0, "PATCH", 0xC390))
- functionPatches.Push(Object("NAME", "ShowDialog", "OFFSET", 0x00CBB0, "PATCH", 0xC390))
- functionPatches.Push(Object("NAME", "DestroyPickup", "OFFSET", 0x00C200, "PATCH", 0xC390))
- functionPatches.Push(Object("NAME", "WeaponPickupDestroy", "OFFSET", 0x016D50, "PATCH", 0xC390))
- functionPatches.Push(Object("NAME", "LinkVehicleToInterior", "OFFSET", 0x016580, "PATCH", 0xC390))
- functionPatches.Push(Object("NAME", "SetPlayerArmour", "OFFSET", 0x0171A0, "PATCH", 0xC390))
- functionPatches.Push(Object("NAME", "SetPlayerArmedWeapon", "OFFSET", 0x015530, "PATCH", 0xC390))
- functionPatches.Push(Object("NAME", "SetSpawnInfo", "OFFSET", 0x014640, "PATCH", 0xC390))
- functionPatches.Push(Object("NAME", "SetPlayerTeam", "OFFSET", 0x015D60, "PATCH", 0xC390))
- functionPatches.Push(Object("NAME", "PutPlayerInVehicle", "OFFSET", 0x015C50, "PATCH", 0xC390))
- functionPatches.Push(Object("NAME", "RemovePlayerFromVehicle", "OFFSET", 0x0146E0, "PATCH", 0xC390))
- functionPatches.Push(Object("NAME", "SetPlayerColor", "OFFSET", 0x015E50, "PATCH", 0xC390))
- functionPatches.Push(Object("NAME", "DisplayGameText", "OFFSET", 0x015F40, "PATCH", 0xC390))
- functionPatches.Push(Object("NAME", "ForceClassSelection", "OFFSET", 0x0147C0, "PATCH", 0xC390))
- functionPatches.Push(Object("NAME", "AttachObjectToPlayer", "OFFSET", 0x018CE0, "PATCH", 0xC390))
- functionPatches.Push(Object("NAME", "InitMenu", "OFFSET", 0x018EA0, "PATCH", 0xC390))
- functionPatches.Push(Object("NAME", "ShowMenu", "OFFSET", 0x019160, "PATCH", 0xC390))
- functionPatches.Push(Object("NAME", "HideMenu", "OFFSET", 0x019210, "PATCH", 0xC390))
- functionPatches.Push(Object("NAME", "CreateExplosion", "OFFSET", 0x018350, "PATCH", 0xC390))
- functionPatches.Push(Object("NAME", "ShowPlayerNameTagForPlayer", "OFFSET", 0x018460, "PATCH", 0xC390))
- functionPatches.Push(Object("NAME", "AttachCameraToObject", "OFFSET", 0x016640, "PATCH", 0xC390))
- functionPatches.Push(Object("NAME", "InterpolateCamera", "OFFSET", 0x016740, "PATCH", 0xC390))
- functionPatches.Push(Object("NAME", "ClickTextDraw", "OFFSET", 0x019C20, "PATCH", 0xC390))
- functionPatches.Push(Object("NAME", "SetObjectMaterial", "OFFSET", 0x017CE0, "PATCH", 0xC390))
- functionPatches.Push(Object("NAME", "GangZoneStopFlash", "OFFSET", 0x0198E0, "PATCH", 0xC390))
- functionPatches.Push(Object("NAME", "ApplyAnimation", "OFFSET", 0x016FA0, "PATCH", 0xC390))
- functionPatches.Push(Object("NAME", "ClearAnimations", "OFFSET", 0x014C70, "PATCH", 0xC390))
- functionPatches.Push(Object("NAME", "SetPlayerSpecialAction", "OFFSET", 0x014D80, "PATCH", 0xC390))
- functionPatches.Push(Object("NAME", "SetPlayerFightingStyle", "OFFSET", 0x014E30, "PATCH", 0xC390))
- functionPatches.Push(Object("NAME", "SetPlayerVelocity", "OFFSET", 0x014F30, "PATCH", 0xC390))
- functionPatches.Push(Object("NAME", "SetVehicleVelocity", "OFFSET", 0x015030, "PATCH", 0xC390))
- functionPatches.Push(Object("NAME", "SetPlayerDrunkVisuals", "OFFSET", 0x015330, "PATCH", 0xC390))
- functionPatches.Push(Object("NAME", "ClientMessage", "OFFSET", 0x00C050, "PATCH", 0xC390))
- functionPatches.Push(Object("NAME", "SetWorldTime", "OFFSET", 0x00BFB0, "PATCH", 0xC390))
- functionPatches.Push(Object("NAME", "CreatePickup", "OFFSET", 0x00C140, "PATCH", 0xC390))
- functionPatches.Push(Object("NAME", "SCMEvent", "OFFSET", 0x00C340, "PATCH", 0xC390))
- functionPatches.Push(Object("NAME", "SetVehicleTireStatus", "OFFSET", 0x015250, "PATCH", 0xC390))
- functionPatches.Push(Object("NAME", "MoveObject", "OFFSET", 0x018540, "PATCH", 0xC390))
- functionPatches.Push(Object("NAME", "Chat", "OFFSET", 0x00EEA0, "PATCH", 0xC390))
- functionPatches.Push(Object("NAME", "SrvNetStats", "OFFSET", 0x00B7A0, "PATCH", 0xC390))
- functionPatches.Push(Object("NAME", "ClientCheck", "OFFSET", 0x00EAF0, "PATCH", 0xC390))
- functionPatches.Push(Object("NAME", "EnableStuntBonusForPlayer", "OFFSET", 0x014440, "PATCH", 0xC390))
- functionPatches.Push(Object("NAME", "TextDrawSetString", "OFFSET", 0x019540, "PATCH", 0xC390))
- functionPatches.Push(Object("NAME", "DamageVehicle", "OFFSET", 0x00E240, "PATCH", 0xC390))
- functionPatches.Push(Object("NAME", "SetCheckpoint", "OFFSET", 0x00D220, "PATCH", 0xC390))
- functionPatches.Push(Object("NAME", "GangZoneCreate", "OFFSET", 0x019650, "PATCH", 0xC390))
- functionPatches.Push(Object("NAME", "PlayCrimeReport", "OFFSET", 0x015720, "PATCH", 0xC390))
- functionPatches.Push(Object("NAME", "SetPlayerAttachedObject", "OFFSET", 0x0155E0, "PATCH", 0xC390))
- functionPatches.Push(Object("NAME", "EditAttachedObject", "OFFSET", 0x00E860, "PATCH", 0xC390))
- functionPatches.Push(Object("NAME", "EditObject", "OFFSET", 0x00E920, "PATCH", 0xC390))
- functionPatches.Push(Object("NAME", "GangZoneDestroy", "OFFSET", 0x019770, "PATCH", 0xC390))
- functionPatches.Push(Object("NAME", "GangZoneFlash", "OFFSET", 0x019820, "PATCH", 0xC390))
- functionPatches.Push(Object("NAME", "StopObject", "OFFSET", 0x0186F0, "PATCH", 0xC390))
- functionPatches.Push(Object("NAME", "SetNumberPlate", "OFFSET", 0x018870, "PATCH", 0xC390))
- functionPatches.Push(Object("NAME", "TogglePlayerSpectating", "OFFSET", 0x018990, "PATCH", 0xC390))
- functionPatches.Push(Object("NAME", "PlayerSpectatePlayer", "OFFSET", 0x018A40, "PATCH", 0xC390))
- functionPatches.Push(Object("NAME", "PlayerSpectateVehicle", "OFFSET", 0x018B20, "PATCH", 0xC390))
- functionPatches.Push(Object("NAME", "RequestClass", "OFFSET", 0x00D080, "PATCH", 0xC390))
- functionPatches.Push(Object("NAME", "RequestSpawn", "OFFSET", 0x00D150, "PATCH", 0xC390))
- functionPatches.Push(Object("NAME", "SetPlayerWantedLevel", "OFFSET", 0x0192C0, "PATCH", 0xC390))
- functionPatches.Push(Object("NAME", "ShowTextDraw", "OFFSET", 0x019360, "PATCH", 0xC390))
- functionPatches.Push(Object("NAME", "TextDrawHideForPlayer", "OFFSET", 0x019490, "PATCH", 0xC390))
- functionPatches.Push(Object("NAME", "ServerJoin", "OFFSET", 0x00CDA0, "PATCH", 0xC390))
- functionPatches.Push(Object("NAME", "ServerQuit", "OFFSET", 0x00CF20, "PATCH", 0xC390))
- functionPatches.Push(Object("NAME", "InitGame", "OFFSET", 0x00D710, "PATCH", 0xC390))
- functionPatches.Push(Object("NAME", "RemovePlayerMapIcon", "OFFSET", 0x016F00, "PATCH", 0xC390))
- functionPatches.Push(Object("NAME", "SetPlayerAmmo", "OFFSET", 0x017250, "PATCH", 0xC390))
- functionPatches.Push(Object("NAME", "SetPlayerGravity", "OFFSET", 0x017310, "PATCH", 0xC390))
- functionPatches.Push(Object("NAME", "SetVehicleHealth", "OFFSET", 0x0173B0, "PATCH", 0xC390))
- functionPatches.Push(Object("NAME", "AttachTrailerToVehicle", "OFFSET", 0x017490, "PATCH", 0xC390))
- functionPatches.Push(Object("NAME", "DetachTrailerFromVehicle", "OFFSET", 0x0175D0, "PATCH", 0xC390))
- functionPatches.Push(Object("NAME", "SetPlayerDrunkHandling", "OFFSET", 0x0153E0, "PATCH", 0xC390))
- functionPatches.Push(Object("NAME", "DestroyPickups", "OFFSET", 0x00C2A0, "PATCH", 0xC390))
- functionPatches.Push(Object("NAME", "SetWeather", "OFFSET", 0x00C430, "PATCH", 0xC390))
- functionPatches.Push(Object("NAME", "SetPlayerSkin", "OFFSET", 0x015860, "PATCH", 0xC390))
- functionPatches.Push(Object("NAME", "ExitVehicle", "OFFSET", 0x00E770, "PATCH", 0xC390))
- functionPatches.Push(Object("NAME", "UpdateScoresPingsIPs", "OFFSET", 0x00D490, "PATCH", 0xC390))
- functionPatches.Push(Object("NAME", "SetPlayerInterior", "OFFSET", 0x016050, "PATCH", 0xC390))
- functionPatches.Push(Object("NAME", "SetPlayerCameraPos", "OFFSET", 0x0160F0, "PATCH", 0xC390))
- functionPatches.Push(Object("NAME", "SetPlayerCameraLookAt", "OFFSET", 0x0161C0, "PATCH", 0xC390))
- functionPatches.Push(Object("NAME", "SetVehiclePos", "OFFSET", 0x0162C0, "PATCH", 0xC390))
- functionPatches.Push(Object("NAME", "SetVehicleZAngle", "OFFSET", 0x0163D0, "PATCH", 0xC390))
- functionPatches.Push(Object("NAME", "SetVehicleParamsForPlayer", "OFFSET", 0x0164B0, "PATCH", 0xC390))
- functionPatches.Push(Object("NAME", "SetCameraBehindPlayer", "OFFSET", 0x014770, "PATCH", 0xC390))
- functionPatches.Push(Object("NAME", "WorldPlayerRemove", "OFFSET", 0x00DEA0, "PATCH", 0xC390))
- functionPatches.Push(Object("NAME", "WorldVehicleAdd", "OFFSET", 0x00B850, "PATCH", 0xC390))
- functionPatches.Push(Object("NAME", "WorldVehicleRemove", "OFFSET", 0x00DF70, "PATCH", 0xC390))
- functionPatches.Push(Object("NAME", "WorldPlayerDeath", "OFFSET", 0x00DDE0, "PATCH", 0xC390))
- // ############################# Standartadressen
- CPed(matrix){
- If(!SAMP())
- return false
- If(!matrix)
- return readDWORD(hGTA, ADDR_CPED_PTR)
- else return Matrix(readDWORD(hGTA, ADDR_CPED_PTR))
- }
- LocalPlayer(){
- If(!SAMP())
- return false
- return readDWORD(hGTA, SAMP_pPool("Player") + OFFSET_CPED_LOCALPLAYER)
- }
- Vehicle(matrix){
- If(!SAMP())
- return false
- If(!matrix)
- return readDWORD(hGTA, ADDR_VEHICLE_PTR)
- else return Matrix(readDWORD(hGTA, ADDR_VEHICLE_PTR))
- }
- Matrix(pointer){
- If(!SAMP())
- return false
- return readDWORD(hGTA, pointer + OFFSET_MATRIX)
- }
- InfoOffset(settings){
- If(!SAMP())
- return false
- If(!settings)
- return readDWORD(hGTA, dwSAMP + SAMP_INFO_OFFSET)
- else return readDWORD(hGTA, readDWORD(hGTA, dwSAMP + SAMP_INFO_OFFSET) + SAMP_SETTINGS_OFFSET)
- }
- SAMP_pPool(pool){
- If(!SAMP())
- return false
- If(pool == "Player")
- pool := SAMP_PPOOL_PLAYER_OFFSET
- else if(pool == "Vehicle")
- pool := SAMP_PPOOL_VEHICLE_OFFSET
- else if(pool == "Pickup")
- pool := SAMP_PPOOL_PICKUP_OFFSET
- else if(pool == "Object")
- pool := SAMP_PPOOL_OBJECT_OFFSET
- return readDWORD(hGTA, readDWORD(hGTA, InfoOffset(0) + SAMP_PPOOLS_OFFSET) + pool)
- }
- setRaceCheckpoint(type, fX, fY, fZ, fnextX, fnextY, fnextZ, fSize ) {
- dwFunc := dwSAMP + 0x9D660
- dwAddress := readDWORD(hGTA, dwSAMP + ADDR_SAMP_INCHAT_PTR)
- if(ErrorLevel || dwAddress==0) {
- ErrorLevel := ERROR_READ_MEMORY
- return false
- }
- VarSetCapacity(buf, 28, 0)
- NumPut(fX, buf, 0, "Float")
- NumPut(fY, buf, 4, "Float")
- NumPut(fZ, buf, 8, "Float")
- NumPut(fnextX, buf, 12, "Float")
- NumPut(fnextY, buf, 16, "Float")
- NumPut(fnextZ, buf, 20, "Float")
- writeRaw(hGTA, pParam1, &buf, 24)
- dwLen := 41
- VarSetCapacity(injectData, dwLen, 0)
- NumPut(0xB9, injectData, 0, "UChar")
- NumPut(dwAddress, injectData, 1, "UInt")
- NumPut(0x68, injectData, 5, "UChar")
- NumPut(fSize, injectData, 6, "Float")
- NumPut(0x68, injectData, 10, "UChar")
- NumPut(pParam1+12, injectData, 11, "UInt")
- NumPut(0x68, injectData, 15, "UChar")
- NumPut(pParam1, injectData, 16, "UInt")
- NumPut(0x68, injectData, 20, "UChar")
- NumPut(type, injectData, 21, "Int")
- NumPut(0xE8, injectData, 25, "UChar")
- offset := dwFunc - (pInjectFunc + 30)
- NumPut(offset, injectData, 26, "Int")
- NumPut(0x05C7, injectData, 30, "UShort")
- NumPut(dwAddress+0x49, injectData, 32, "UInt")
- NumPut(1, injectData, 36, "UInt")
- NumPut(0xC3, injectData, 40, "UChar")
- writeRaw(hGTA, pInjectFunc, &injectData, dwLen)
- if(ErrorLevel)
- return false
- hThread := createRemoteThread(hGTA, 0, 0, pInjectFunc, 0, 0, 0)
- if(ErrorLevel)
- return false
- waitForSingleObject(hThread, 0xFFFFFFFF)
- closeProcess(hThread)
- ErrorLevel := ERROR_OK
- return true
- }
- disableRaceCheckpoint()
- {
- dwAddress := readDWORD(hGTA, dwSAMP + ADDR_SAMP_INCHAT_PTR)
- if(ErrorLevel || dwAddress==0) {
- ErrorLevel := ERROR_READ_MEMORY
- return false
- }
- VarSetCapacity(enablecp, 4, 0)
- NumPut(0,enablecp,0,"Int")
- writeRaw(hGTA, dwAddress+0x49, &enablecp, 4)
- ErrorLevel := ERROR_OK
- return true
- }
- // ############################# Positionen
- GetPositionByPed(ped){
- If(!SAMP())
- return false
- pMatrix := Matrix(ped)
- return [readFloat(hGTA, pMatrix + OFFSET_POSX), readFloat(hGTA, pMatrix + OFFSET_POSY), readFloat(hGTA, pMatrix+ OFFSET_POSZ)]
- }
- // ############################# Player
- GetPlayerHP(){
- If(!SAMP())
- return false
- return Round(readFloat(hGTA, mainCPED + OFFSET_CPED_HP))
- }
- GetPlayerRotation(){
- If(!SAMP())
- return false
- return [readFloat(hGTA, mainMatrix + OFFSET_ROTATION_X), readFloat(hGTA, mainMatrix + OFFSET_ROTATION_Y)]
- }
- GetPlayerTargetRotation(){
- If(!SAMP())
- return false
- return readFloat(hGTA, mainCPED + OFFSET_CPED_ZANGLE)
- }
- GetLastVehiclePointer(){
- If(!SAMP())
- return false
- return readDWORD(hGTA, mainCPED + OFFSET_VEH_LASTVEH)
- }
- // ############################# VEHICLE
- GetPlayersInVehicle(){
- If(!SAMP())
- return false
- dw := Vehicle(0)
- return [getIdByPed(readDWORD(hGTA, dw + 0x460)),getIdByPed(readDWORD(hGTA, dw + 0x464)),getIdByPed(readDWORD(hGTA, dw + 0x468)),getIdByPed(readDWORD(hGTA, dw + 0x46C))]
- }
- IsCarLocked(){
- If(!SAMP())
- return false
- return (readDWORD(hGTA, Vehicle(0) + ADDR_VEHICLE_DOORSTATE) == 2)
- }
- GetCarSpeed() {
- If(!SAMP())
- return false
- dwVeh := Vehicle(0)
- fSpeedX := readFloat(hGTA, dwVeh + OFFSET_VEH_SPEED_X)
- fSpeedY := readFloat(hGTA, dwVeh + OFFSET_VEH_SPEED_Y)
- fSpeedZ := readFloat(hGTA, dwVeh + OFFSET_VEH_SPEED_Y)
- return Round((SQRT((fSpeedX * fSpeedX) + (fSpeedY * fSpeedY) + (fSpeedZ * fSpeedZ)) *100) *1.61)
- }
- // ############################# SAMP
- GetUsername() {
- If(!SAMP())
- return false
- return readString(hGTA, dwSAMP + ADDR_SAMP_USERNAME, 25)
- }
- getPlayerColor(playerid){
- if(!SAMP())
- return false
- idColor := readDWORD(hGTA, dwSAMP + SAMP_COLOR_OFFSET + 4 * playerid)
- hex := IntToHex(idColor)
- rgbhex := SubStr(IntToHex(idColor), 3, 6)
- return rgbhex
- }
- AntiCrash(){
- If(!SAMP())
- return false
- cReport := ADDR_SAMP_CRASHREPORT
- writeMemory(hGTA, dwSAMP + cReport, 0x90909090, 4)
- cReport += 0x4
- writeMemory(hGTA, dwSAMP + cReport, 0x90, 1)
- cReport += 0x9
- writeMemory(hGTA, dwSAMP + cReport, 0x90909090, 4)
- cReport += 0x4
- writeMemory(hGTA, dwSAMP + cReport, 0x90, 1)
- }
- // ############################# HUD
- SetHudEnabled(toggle){
- If(!SAMP())
- return false
- writeMemory(hGTA, 0xA444A0, toggle, 1, "UChar")
- }
- // ############################# Interface
- ChangeInterfaceColor(id, color){
- If(!SAMP())
- return false
- dwAddr := 0xBAB22C
- dw := 4 * id, dwAddr += dw
- writeMemory(hGTA, dwAddr, 0xFFFFFFFF, 4, "Int")
- }
- SetPercentageHealthAndArmor(toggle){
- If(!SAMP())
- return false
- writeMemory(hGTA, 0x589355, toggle, 1, "UChar")
- writeMemory(hGTA, 0x589131, toggle, 1, "UChar")
- }
- // ############################# POOLS
- UpdateTextdrawPool(){
- global
- if(!SAMP())
- return 0
- strData := []
- dwAddress := readDWORD(hGTA, dwSAMP + SAMP_INFO_OFFSET)
- dwAddress := readDWORD(hGTA, dwAddress + SAMP_PPOOLS_OFFSET)
- dwTextDraws := readDWORD(hGTA, dwAddress + 0x10)
- Loop, % SAMP_MAX_TEXTDRAWS
- {
- i := A_Index-1
- iIsListed := readDWORD(hGTA, dwTextDraws + i * 0x4)
- If(iIsListed == 0)
- continue
- dwAddr := readDWORD(hGTA, dwTextDraws + 0x2400 + i * 0x4)
- If(dwAddr == 0)
- continue
- strOUT := readString(hGTA, dwAddr, 256) // strOUT size
- if(strOUT == 0)
- continue
- strData[i] := strOUT
- }
- }
- CountStreamedVehicles(){
- If(!SAMP())
- return false
- iCount := 0
- for i, o in oVehiclePoolData
- iCount++
- return iCount
- }
- CountTextraws(){
- If(!SAMP())
- return false
- if(!UpdateTextdrawPool())
- return -1
- iCount := 0
- for i, o in strData
- iCount++
- return iCount
- }
- // ############################# Streamed Players
- getPedById(dwId) {
- dwId += 0
- dwId := Floor(dwId)
- if(dwId < 0 || dwId >= SAMP_PLAYER_MAX)
- return 0
- if(iRefreshScoreboard+iUpdateTick > A_TickCount)
- {
- if(oScoreboardData[dwId])
- {
- if(oScoreboardData[dwId].HasKey("PED"))
- return oScoreboardData[dwId].PED
- }
- return 0
- }
- if(oScoreboardData[dwId])
- {
- if(oScoreboardData[dwId].HasKey("PED"))
- return oScoreboardData[dwId].PED
- }
- return 0
- }
- getIdByPed(dwPed) {
- dwPed += 0
- dwPed := Floor(dwPed)
- if(!dwPed)
- return -1
- if(iRefreshScoreboard+iUpdateTick > A_TickCount)
- {
- For i, o in oScoreboardData
- {
- if(o.HasKey("PED"))
- {
- if(o.PED==dwPed)
- return i
- }
- }
- return -1
- }
- For i, o in oScoreboardData
- {
- if(o.HasKey("PED"))
- {
- if(o.PED==dwPed)
- return i
- }
- }
- return -1
- }
- getPlayerScoreById(dwId) {
- dwId += 0
- dwId := Floor(dwId)
- if(dwId < 0 || dwId >= SAMP_PLAYER_MAX)
- return ""
- if(iRefreshScoreboard+iUpdateTick > A_TickCount)
- {
- if(oScoreboardData[dwId])
- return oScoreboardData[dwId].SCORE
- return ""
- }
- if(oScoreboardData[dwId])
- return oScoreboardData[dwId].SCORE
- return ""
- }
- getPlayerPingById(dwId) {
- dwId += 0
- dwId := Floor(dwId)
- if(dwId < 0 || dwId >= SAMP_PLAYER_MAX)
- return -1
- if(iRefreshScoreboard+iUpdateTick > A_TickCount)
- {
- if(oScoreboardData[dwId])
- return oScoreboardData[dwId].PING
- return -1
- }
- if(oScoreboardData[dwId])
- return oScoreboardData[dwId].PING
- return -1
- }
- isNPCById(dwId) {
- dwId += 0
- dwId := Floor(dwId)
- if(dwId < 0 || dwId >= SAMP_PLAYER_MAX)
- return -1
- if(iRefreshScoreboard+iUpdateTick > A_TickCount)
- {
- if(oScoreboardData[dwId])
- return oScoreboardData[dwId].ISNPC
- return -1
- }
- if(oScoreboardData[dwId])
- return oScoreboardData[dwId].ISNPC
- return -1
- }
- // ############################# Cheat Funktionen
- StableVehicleCam()
- {
- If(IsPlayerInAnyVehicle() && WinActive("GTA:SA:MP"))
- {
- DllCall("mouse_event", uint,1, int,1, int,0, uint,0, int,0)
- sleep, 3
- DllCall("mouse_event", uint,1, int,-1, int,0, uint,0, int,0)
- }
- }
- UnlockFPS(){
- If(!SAMP())
- return false
- writeMemory(hGTA, dwSAMP + ADDR_SAMP_FPSUNLOCK, 0x5051FF15, 4, "UChar")
- }
- // ############################# Weapon
- GetTargetPed(){
- If(!SAMP())
- return false
- return readDWORD(hGTA, readDWORD(hGTA, ADDR_WEAPON_TARGET) + OFFSET_CPED_OTARGET)
- }
- // ############################# Camera
- GetCameraPosition(writeable=0){
- If(!SAMP())
- return false
- If(!writeable)
- return [readFloat(hGTA, ADDR_CAMERA_POS_X), readFloat(hGTA, ADDR_CAMERA_POS_Y)]
- else return readFloat(hGTA, ADDR_CAMERA_CURR_X)
- }
- GetCameraRotation(){
- If(!SAMP())
- return false
- return readFloat(hGTA, ADDR_CAMERA_ROTATION)
- }
- GetCameraXAngle(){
- If(!SAMP())
- return false
- angle := 0
- angle := 360 + atan2(readFloat(hGTA, ADDR_CAMERA_ANGLE_X), readFloat(hGTA, ADDR_CAMERA_ANGLE_Y) *180/PI)
- If(angle > 360.0)
- angle -= 360.0
- return angle
- }
- GetCameraZAngle(){
- If(!SAMP())
- return false
- val := readFloat(hGTA, 0x00B6F248)
- if(val > -1.2 & val < 1.2)
- return val
- }
- // ############################# Math
- IntToHex(int){
- CurrentFormat := A_FormatInteger
- SetFormat, integer, hex
- int += 0
- SetFormat, integer, %CurrentFormat%
- return int
- }
- getDist(pos1,pos2) {
- if(!pos1 || !pos2)
- return 0
- return Sqrt((pos1[1]-pos2[1])*(pos1[1]-pos2[1])+(pos1[2]-pos2[2])*(pos1[2]-pos2[2])+(pos1[3]-pos2[3])*(pos1[3]-pos2[3]))
- }
- atan2(x, y) {
- Return dllcall("msvcrt\atan2","Double",y, "Double",x, "CDECL Double")
- }
- tobin(byref addr, str)
- {
- if(!RegExMatch(str,"^([a-fA-F0-9][a-fA-F0-9])*$"))
- {
- msgbox % "fail tobin"
- return
- }
- i:=Strlen(str)/2
- VarSetCapacity(addr, i)
- dataddr := &addr
- x:=""
- loop,parse,str
- {
- if(A_Index & 1)
- x := A_Loopfield
- else
- {
- DllCall("RtlFillMemory"
- , "UInt", dataddr
- , "UInt", 1
- , "UChar", "0x" x A_Loopfield)
- dataddr++
- }
- }
- }
- getVehicleSpeed2() {
- if(!checkHandles())
- return -1
- dwAddr := readDWORD(hGTA, ADDR_VEHICLE_PTR)
- if(ErrorLevel) {
- ErrorLevel := ERROR_READ_MEMORY
- return ""
- }
- fSpeedX := readMem(hGTA, dwAddr + ADDR_VEHICLE_X, 4, "float")
- fSpeedY := readMem(hGTA, dwAddr + ADDR_VEHICLE_Y, 4, "float")
- fSpeedZ := readMem(hGTA, dwAddr + ADDR_VEHICLE_Z, 4, "float")
- fVehicleSpeed := sqrt((fSpeedX * fSpeedX) + (fSpeedY * fSpeedY) + (fSpeedZ * fSpeedZ))
- fVehicleSpeed := (fVehicleSpeed * 100) * 1.43
- return fVehicleSpeed
- }
- stringMath(string) {
- while(position := RegExMatch(string, "\(([^\(\)]+)\)", regex_)) {
- string := RegExReplace(string, "\(([^\(\)]+)\)", stringMath(regex_1), blahblah, 1, position)
- }
- while(position := RegExMatch(string, "(\+|-)? *((?:\+|-)?\d+)\^((?:\+|-)?\d+)", regex_)) {
- string := RegExReplace(string, "(\+|-)? *((?:\+|-)?\d+)\^((?:\+|-)?\d+)", regex_1 . regex_2**regex_3, blahblah, 1, position)
- }
- while(position := RegExMatch(string, "(\+|-)? *((?:\+|-)?\d+(?:[\.\,]\d+)?) *(\*|/) *((?:\+|-)?\d+(?:[\.\,]\d+)?) *", regex_)) {
- if(regex_3 == "*")
- string := RegExReplace(string, "(\+|-)? *((?:\+|-)?\d+(?:[\.\,]\d+)?) *\* *((?:\+|-)?\d+(?:[\.\,]\d+)?) *", regex_1 . regex_2*regex_4, blahblah, 1, position)
- if(regex_3 == "/")
- string := RegExReplace(string, "(\+|-)? *((?:\+|-)?\d+(?:[\.\,]\d+)?) */ *((?:\+||)?\d+(?:[\.\,]\d+)?) *", regex_1 . regex_2/regex_4, blahblah, 1, position)
- }
- while(position := RegExMatch(string, " *((?:\+|-)?\d+(?:[\.\,]\d+)?) *(\+|-) *((?:\+|-)?\d+(?:[\.\,]\d+)?) *", regex_)) {
- if(regex_2 == "+")
- string := RegExReplace(string, " *((?:\+|-)?\d+(?:[\.\,]\d+)?) *\+ *((?:\+|-)?\d+(?:[\.\,]\d+)?) *", regex_1+regex_3, blahblah, 1, position)
- if(regex_2 == "-")
- string := RegExReplace(string, " *((?:\+|-)?\d+(?:[\.\,]\d+)?) *- *((?:\+|-)?\d+(?:[\.\,]\d+)?) *", regex_1-regex_3, blahblah, 1, position)
- }
- if(RegExMatch(string, "^-?\d+(?:\.\d+)?$"))
- return string
- return "ERROR"
- }
- PlayerInput(text){
- s := A_IsSuspended
- Suspend On
- KeyWait Enter
- BlockChatInput(block)
- SendInput t^a{backspace}%text%
- Input, var, v, {enter}
- SendInput ^a{backspace 100}{enter}
- Sleep, 20
- BlockChatInput(unblock)
- if(!s)
- Suspend Off
- return var
- }
- getWeaponName(id) {
- weapons := {0: "Faust", 1: "Schlagring", 2: "Golfschläger", 3: "Schlagstock", 4: "Messer", 5: "Baseball Schläger", 6: "Schaufel", 7: "Billiardstick", 8: "Katana", 9: "Kettensäge", 10: "Lila Dildo", 11: "Dildo", 12: "Vibrator", 13: "Silber Vibrator", 14: "Blumen", 15: "Kanne", 16: "Granate", 17: "Tränen Gas", 18: "Molotov Cocktail", 22: "9mm", 23: "Silenced 9mm", 24: "Desert Eagle", 25: "Shotgun", 26: "Sawnoff Shotgun", 27: "Combat Shotgun", 28: "Micro SMG", 29: "MP5", 30: "AK-47", 31: "M4", 32: "Tec-9", 33: "Country Rifle", 34: "Sniper", 35: "RPG", 36: "HS Rocket", 37: "Flammenwerfer", 38: "Minigun", 39: "Satchel Charge", 40: "Zünder", 41: "Sprühdose", 42: "Feuerlöscher", 43: "Kamera", 44: "Nachtsichtgerät", 45: "Thermal Brille", 46: "Fallschirm", 47: "Fake Pistole", 49: "Fahrzeug", 50: "Helikopter", 51: "Explosion", 53: "Drowned", 54: "Splat", 255: "Suicide"}
- if(weapons[id]) {
- return weapons[id]
- }
- return "Unbekannt"
- }
- getPlayerColorById(playerid){
- if(!checkHandles())
- return false
- idColor := readDWORD(hGTA, dwSAMP + SAMP_COLOR_OFFSET + 4 * playerid)
- rgbhex := SubStr(IntToHex(idColor), 3, 6)
- StringUpper, playercolor, rgbhex
- return playercolor
- }
- SendClearMessage(anzahl)
- {
- loop, %anzahl%
- {
- AddChatMessage(" ")
- }
- }
- getKilledPlayers(bReset := false) {
- if (!checkHandles() || !updateOScoreboardData())
- return -1
- kills := []
- for i, o in oScoreboardData {
- if (!o.PED || o.HP > 0 || o.ISNPC)
- continue
- dwMurderer := readDWORD(hGTA, o.PED + 0x764)
- if (!dwMurderer)
- continue
- dwLocalPED := readDWORD(hGTA, ADDR_CPED_PTR)
- if (dwLocalPED != dwMurderer)
- continue
- weapon := readMem(hGTA, o.PED + 0x760, 4, "UInt")
- if (bReset)
- writeMemory(hGTA, o.PED + 0x764, 0, "UInt", 4)
- kills.Push(Object("ID", o.ID, "WEAPON", weapon))
- }
- return kills
- }
- updateScoreboardDataEx() {
- if(!checkHandles())
- return false
- dwAddress := readDWORD(hGTA, dwSAMP + SAMP_INFO_OFFSET) //g_SAMP
- if(ErrorLevel || dwAddress==0) {
- ErrorLevel := ERROR_READ_MEMORY
- return false
- }
- dwFunc := dwSAMP + FUNC_UPDATESCOREBOARD
- VarSetCapacity(injectData, 11, 0) //mov + call + retn
- NumPut(0xB9, injectData, 0, "UChar")
- NumPut(dwAddress, injectData, 1, "UInt")
- NumPut(0xE8, injectData, 5, "UChar")
- offset := dwFunc - (pInjectFunc + 10)
- NumPut(offset, injectData, 6, "Int")
- NumPut(0xC3, injectData, 10, "UChar")
- writeRaw(hGTA, pInjectFunc, &injectData, 11)
- if(ErrorLevel)
- return false
- hThread := createRemoteThread(hGTA, 0, 0, pInjectFunc, 0, 0, 0)
- if(ErrorLevel)
- return false
- waitForSingleObject(hThread, 0xFFFFFFFF)
- closeProcess(hThread)
- return true
- }
- updateOScoreboardData() {
- if(!checkHandles())
- return 0
- oScoreboardData := []
- if(!updateScoreboardDataEx())
- return 0
- iRefreshScoreboard := A_TickCount
- dwAddress := readDWORD(hGTA, dwSAMP + SAMP_INFO_OFFSET)
- if(ErrorLevel || dwAddress==0) {
- ErrorLevel := ERROR_READ_MEMORY
- return 0
- }
- dwAddress := readDWORD(hGTA, dwAddress + SAMP_PPOOLS_OFFSET)
- if(ErrorLevel || dwAddress==0) {
- ErrorLevel := ERROR_READ_MEMORY
- return 0
- }
- dwPlayers := readDWORD(hGTA, dwAddress + SAMP_PPOOL_PLAYER_OFFSET)
- if(ErrorLevel || dwPlayers==0) {
- ErrorLevel := ERROR_READ_MEMORY
- return 0
- }
- wID := readMem(hGTA, dwPlayers + SAMP_SLOCALPLAYERID_OFFSET, 2, "Short") //sLocalPlayerID
- if(ErrorLevel) {
- ErrorLevel := ERROR_READ_MEMORY
- return 0
- }
- dwPing := readMem(hGTA, dwPlayers + SAMP_ILOCALPLAYERPING_OFFSET, 4, "Int")
- if(ErrorLevel) {
- ErrorLevel := ERROR_READ_MEMORY
- return 0
- }
- dwScore := readMem(hGTA, dwPlayers + SAMP_ILOCALPLAYERSCORE_OFFSET, 4, "Int")
- if(ErrorLevel) {
- ErrorLevel := ERROR_READ_MEMORY
- return 0
- }
- dwTemp := readMem(hGTA, dwPlayers + SAMP_ISTRLEN_LOCALPLAYERNAME_OFFSET, 4, "Int") //iStrlen_LocalPlayerName
- if(ErrorLevel) {
- ErrorLevel := ERROR_READ_MEMORY
- return 0
- }
- sUsername := ""
- if(dwTemp <= 0xf) {
- sUsername := readString(hGTA, dwPlayers + SAMP_SZLOCALPLAYERNAME_OFFSET, 16) //szLocalPlayerName
- if(ErrorLevel) {
- ErrorLevel := ERROR_READ_MEMORY
- return 0
- }
- }
- else {
- dwAddress := readDWORD(hGTA, dwPlayers + SAMP_PSZLOCALPLAYERNAME_OFFSET) //pszLocalPlayerName
- if(ErrorLevel) {
- ErrorLevel := ERROR_READ_MEMORY
- return 0
- }
- sUsername := readString(hGTA, dwAddress, 25)
- if(ErrorLevel) {
- ErrorLevel := ERROR_READ_MEMORY
- return 0
- }
- }
- oScoreboardData[wID] := Object("NAME", sUsername, "ID", wID, "PING", dwPing, "SCORE", dwScore, "ISNPC", 0)
- Loop, % SAMP_PLAYER_MAX
- {
- i := A_Index-1
- dwRemoteplayer := readDWORD(hGTA, dwPlayers+SAMP_PREMOTEPLAYER_OFFSET+i*4) //pRemotePlayer
- if(ErrorLevel) {
- ErrorLevel := ERROR_READ_MEMORY
- return 0
- }
- if(dwRemoteplayer==0)
- continue
- dwPing := readMem(hGTA, dwRemoteplayer + SAMP_IPING_OFFSET, 4, "Int")
- if(ErrorLevel) {
- ErrorLevel := ERROR_READ_MEMORY
- return 0
- }
- dwScore := readMem(hGTA, dwRemoteplayer + SAMP_ISCORE_OFFSET, 4, "Int")
- if(ErrorLevel) {
- ErrorLevel := ERROR_READ_MEMORY
- return 0
- }
- dwIsNPC := readMem(hGTA, dwRemoteplayer + SAMP_ISNPC_OFFSET, 4, "Int")
- if(ErrorLevel) {
- ErrorLevel := ERROR_READ_MEMORY
- return 0
- }
- dwTemp := readMem(hGTA, dwRemoteplayer + SAMP_ISTRLENNAME___OFFSET, 4, "Int")
- if(ErrorLevel) {
- ErrorLevel := ERROR_READ_MEMORY
- return 0
- }
- sUsername := ""
- if(dwTemp <= 0xf)
- {
- sUsername := readString(hGTA, dwRemoteplayer+SAMP_SZPLAYERNAME_OFFSET, 16)
- if(ErrorLevel) {
- ErrorLevel := ERROR_READ_MEMORY
- return 0
- }
- }
- else {
- dwAddress := readDWORD(hGTA, dwRemoteplayer + SAMP_PSZPLAYERNAME_OFFSET)
- if(ErrorLevel || dwAddress==0) {
- ErrorLevel := ERROR_READ_MEMORY
- return 0
- }
- sUsername := readString(hGTA, dwAddress, 25)
- if(ErrorLevel) {
- ErrorLevel := ERROR_READ_MEMORY
- return 0
- }
- }
- o := Object("NAME", sUsername, "ID", i, "PING", dwPing, "SCORE", dwScore, "ISNPC", dwIsNPC)
- oScoreboardData[i] := o
- dwRemoteplayerData := readDWORD(hGTA, dwRemoteplayer + 0x0) //pPlayerData
- if(ErrorLevel) {
- ErrorLevel := ERROR_READ_MEMORY
- return 0
- }
- if(dwRemoteplayerData==0) //this ever happen?
- continue
- dwAddress := readDWORD(hGTA, dwRemoteplayerData + 489) //iGlobalMarkerLoaded
- if(ErrorLevel) {
- ErrorLevel := ERROR_READ_MEMORY
- return 0
- }
- if(dwAddress)
- {
- ix := readMem(hGTA, dwRemoteplayerData + 493, 4, "Int") //x map
- if(ErrorLevel) {
- ErrorLevel := ERROR_READ_MEMORY
- return 0
- }
- iy := readMem(hGTA, dwRemoteplayerData + 497, 4, "Int") //y map
- if(ErrorLevel) {
- ErrorLevel := ERROR_READ_MEMORY
- return 0
- }
- iz := readMem(hGTA, dwRemoteplayerData + 501, 4, "Int") //z map
- if(ErrorLevel) {
- ErrorLevel := ERROR_READ_MEMORY
- return 0
- }
- o.MPOS := [ix, iy, iz]
- }
- dwpSAMP_Actor := readDWORD(hGTA, dwRemoteplayerData + 0x0) //pSAMP_Actor
- if(ErrorLevel) {
- ErrorLevel := ERROR_READ_MEMORY
- return 0
- }
- if(dwpSAMP_Actor==0) //not streamed in
- continue
- dwPed := readDWORD(hGTA, dwpSAMP_Actor + 676) //pGTA_Ped_
- if(ErrorLevel) {
- ErrorLevel := ERROR_READ_MEMORY
- return 0
- }
- if(dwPed==0)
- continue
- o.PED := dwPed
- fHP := readFloat(hGTA, dwRemoteplayerData + 444)
- if(ErrorLevel) {
- ErrorLevel := ERROR_READ_MEMORY
- return 0
- }
- nametag_shown := readDWORD(hGTA, dwRemotePlayerData + 179)
- if(ErrorLevel) {
- ErrorLevel := ERROR_READ_MEMORY
- return 0
- }
- fARMOR := readFloat(hGTA, dwRemoteplayerData + 440)
- if(ErrorLevel) {
- ErrorLevel := ERROR_READ_MEMORY
- return 0
- }
- o.HP := fHP
- o.ARMOR := fARMOR
- }
- ErrorLevel := ERROR_OK
- return 1
- }
- blockDialog() {
- if (!checkHandles()) {
- ErrorLevel := ERROR_INVALID_HANDLE
- return false
- }
- VarSetCapacity(injectBytecode, 7, 0)
- Loop, 7 {
- NumPut(0x90, injectBytecode, A_Index - 1, "UChar")
- }
- return writeRaw(hGTA, dwSAMP + 0x6C014, &injectBytecode, 7)
- }
- unblockDialog() {
- if (!checkHandles()) {
- ErrorLevel := ERROR_INVALID_HANDLE
- return false
- }
- bytecodes := [0xC7, 0x46, 0x28, 0x1, 0x0, 0x0, 0x0]
- VarSetCapacity(injectBytecode, 7, 0)
- for i, o in bytecodes
- NumPut(o, injectBytecode, i - 1, "UChar")
- return writeRaw(hGTA, dwSAMP + 0x6C014, &injectBytecode, 7)
- }
- getDialogStructPtr() {
- if (!checkHandles()) {
- ErrorLevel := ERROR_INVALID_HANDLE
- return false
- }
- dwPointer := readDWORD(hGTA, dwSAMP + SAMP_DIALOG_STRUCT_PTR)
- if (ErrorLevel) {
- ErrorLevel := ERROR_READ_MEMORY
- return false
- }
- ErrorLevel := ERROR_OK
- return dwPointer
- }
- getDialogStyle() {
- dwPointer := getDialogStructPtr()
- if (ErrorLevel || !dwPointer)
- return -1
- style := readMem(hGTA, dwPointer + SAMP_DIALOG_STYLE_OFFSET, 4, "UInt")
- if (ErrorLevel) {
- ErrorLevel := ERROR_READ_MEMORY
- return -1
- }
- ErrorLevel := ERROR_OK
- return style
- }
- getDialogID() {
- dwPointer := getDialogStructPtr()
- if (ErrorLevel || !dwPointer)
- return -1
- id := readMem(hGTA, dwPointer + SAMP_DIALOG_ID_OFFSET, 4, "UInt")
- if (ErrorLevel) {
- ErrorLevel := ERROR_READ_MEMORY
- return -1
- }
- ErrorLevel := ERROR_OK
- return id
- }
- setDialogID(id) {
- dwPointer := getDialogStructPtr()
- if (ErrorLevel || !dwPointer)
- return false
- writeMemory(hGTA, dwPointer + SAMP_DIALOG_ID_OFFSET, id, "UInt", 4)
- if (ErrorLevel) {
- ErrorLevel := ERROR_WRITE_MEMORY
- return false
- }
- ErrorLevel := ERROR_OK
- return true
- }
- getDialogIndex() {
- dwPointer := getDialogStructPtr()
- if (ErrorLevel || !dwPointer)
- return 0
- dwPointer := readDWORD(hGTA, dwPointer + SAMP_DIALOG_PTR1_OFFSET)
- if (ErrorLevel) {
- ErrorLevel := ERROR_READ_MEMORY
- return 0
- }
- index := readMem(hGTA, dwPointer + SAMP_DIALOG_INDEX_OFFSET, 1, "Byte")
- if (ErrorLevel) {
- ErrorLevel := ERROR_READ_MEMORY
- return 0
- }
- ErrorLevel := ERROR_OK
- return index + 1
- }
- getDialogCaption() {
- dwPointer := getDialogStructPtr()
- if (ErrorLevel || !dwPointer)
- return ""
- text := readString(hGTA, dwPointer + SAMP_DIALOG_CAPTION_OFFSET, 64)
- if (ErrorLevel) {
- ErrorLevel := ERROR_READ_MEMORY
- return ""
- }
- ErrorLevel := ERROR_OK
- return text
- }
- getDialogTextSize(dwAddress) {
- i := 0
- Loop, 4096 {
- i := A_Index - 1
- byte := Memory_ReadByte(hGTA, dwAddress + i)
- if (!byte)
- break
- }
- return i
- }
- getDialogText() {
- dwPointer := getDialogStructPtr()
- if (ErrorLevel || !dwPointer)
- return ""
- dwPointer := readDWORD(hGTA, dwPointer + SAMP_DIALOG_TEXT_PTR_OFFSET)
- if (ErrorLevel) {
- ErrorLevel := ERROR_READ_MEMORY
- return ""
- }
- text := readString(hGTA, dwPointer, 4096)
- if (ErrorLevel) {
- text := readString(hGTA, dwPointer, getDialogTextSize(dwPointer))
- if (ErrorLevel) {
- ErrorLevel := ERROR_READ_MEMORY
- return ""
- }
- }
- ErrorLevel := ERROR_OK
- return text
- }
- getDialogLineCount() {
- dwPointer := getDialogStructPtr()
- if (ErrorLevel || !dwPointer)
- return 0
- dwPointer := readDWORD(hGTA, dwPointer + SAMP_DIALOG_PTR2_OFFSET)
- if (ErrorLevel) {
- ErrorLevel := ERROR_READ_MEMORY
- return 0
- }
- count := readMem(hGTA, dwPointer + SAMP_DIALOG_LINECOUNT_OFFSET, 4, "UInt")
- if (ErrorLevel) {
- ErrorLevel := ERROR_READ_MEMORY
- return 0
- }
- ErrorLevel := ERROR_OK
- return count
- }
- getDialogLine__(index) {
- if (getDialogLineCount > index)
- return ""
- dwPointer := getDialogStructPtr()
- if (ErrorLevel || !dwPointer)
- return ""
- dwPointer := readDWORD(hGTA, dwPointer + SAMP_DIALOG_PTR1_OFFSET)
- if (ErrorLevel) {
- ErrorLevel := ERROR_READ_MEMORY
- return ""
- }
- dwPointer := readDWORD(hGTA, dwPointer + SAMP_DIALOG_LINES_OFFSET)
- if (ErrorLevel) {
- ErrorLevel := ERROR_READ_MEMORY
- return ""
- }
- dwLineAddress := readDWORD(hGTA, dwPointer + (index - 1) * 0x4)
- line := readString(hGTA, dwLineAddress, 128)
- ErrorLevel := ERROR_OK
- return line
- }
- getDialogLine(index) {
- lines := getDialogLines()
- if (index > lines.Length())
- return ""
- if (getDialogStyle() == DIALOG_STYLE_TABLIST_HEADERS)
- index++
- return lines[index]
- }
- getDialogLines() {
- text := getDialogText()
- if (text == "")
- return -1
- lines := StrSplit(text, "`n")
- return lines
- }
- isDialogButton1Selected() {
- dwPointer := getDialogStructPtr()
- if (ErrorLevel || !dwPointer)
- return false
- dwPointer := readDWORD(hGTA, dwPointer + SAMP_DIALOG_PTR1_OFFSET)
- if (ErrorLevel) {
- ErrorLevel := ERROR_READ_MEMORY
- return false
- }
- selected := readMem(hGTA, dwPointer + SAMP_DIALOG_BUTTON_HOVERING_OFFSET, 1, "Byte")
- if (ErrorLevel) {
- ErrorLevel := ERROR_READ_MEMORY
- return false
- }
- ErrorLevel := ERROR_OK
- return selected
- }
- getDialogLines__() {
- count := getDialogLineCount()
- dwPointer := getDialogStructPtr()
- if (ErrorLevel || !dwPointer)
- return -1
- dwPointer := readDWORD(hGTA, dwPointer + SAMP_DIALOG_PTR1_OFFSET)
- if (ErrorLevel) {
- ErrorLevel := ERROR_READ_MEMORY
- return -1
- }
- dwPointer := readDWORD(hGTA, dwPointer + SAMP_DIALOG_LINES_OFFSET)
- if (ErrorLevel) {
- ErrorLevel := ERROR_READ_MEMORY
- return -1
- }
- lines := []
- Loop %count% {
- dwLineAddress := readDWORD(hGTA, dwPointer + (A_Index - 1) * 0x4)
- lines[A_Index] := readString(hGTA, dwLineAddress, 128)
- }
- ErrorLevel := ERROR_OK
- return lines
- }
- addChatMessage(wText) {
- wText := "" wText
- if(!checkHandles())
- return false
- dwFunc := dwSAMP + FUNC_SAMP_ADDTOCHATWND
- dwChatInfo := readDWORD(hGTA, dwSAMP + ADDR_SAMP_CHATMSG_PTR)
- if(ErrorLevel) {
- ErrorLevel := ERROR_READ_MEMORY
- return false
- }
- callWithParams(hGTA, dwFunc, [["p", dwChatInfo], ["s", wText]], true)
- ErrorLevel := ERROR_OK
- return true
- }
- getPageSize() {
- if (!checkHandles())
- return false
- dwAddress := readDWORD(hGTA, dwSAMP + ADDR_SAMP_CHATMSG_PTR)
- if (ErrorLevel || !dwAddress)
- return false
- pagesize := readMem(hGTA, dwAddress, 1, "Byte")
- if (ErrorLevel)
- return false
- ErrorLevel := ERROR_OK
- return pagesize
- }
- getGameText() {
- if (!checkHandles())
- return ""
- Loop, 7 {
- dwAddress := 0xBAACC0 + (A_Index - 1) * 0x80
- gameText := readString(hGTA, dwAddress, 128)
- if (ErrorLevel)
- return ""
- if (gameText != "")
- break
- }
- ErrorLevel := ERROR_OK
- return gameText
- }
- getPlayerAnim() {
- if (!checkHandles())
- return -1
- dwAddress := readDWORD(hGTA, dwSAMP + SAMP_INFO_OFFSET)
- dwAddress := readDWORD(hGTA, dwAddress + SAMP_PPOOLS_OFFSET)
- dwPlayers := readDWORD(hGTA, dwAddress + SAMP_PPOOL_PLAYER_OFFSET)
- dwLocalPlayer := readDWORD(hGTA, dwPlayers + SAMP_LOCALPLAYER_OFFSET)
- if (ErrorLevel)
- return -1
- animId := readMem(hGTA, dwLocalPlayer + 0x4, 2, "Short")
- if (ErrorLevel)
- return -1
- ErrorLevel := ERROR_OK
- return animId
- }
- patchSAMPFunction(name) {
- if (!checkHandles())
- return false
- for i, o in functionPatches {
- if (name = o.NAME) {
- o.UNPATCH := readMem(hGTA, dwSAMP + o.OFFSET, 2, "Short")
- if (!writeMemory(hGTA, dwSAMP + o.OFFSET, o.PATCH, "Short", 2))
- return false
- return true
- }
- }
- return false
- }
- unpatchSAMPFunction(name) {
- if (!checkHandles())
- return false
- for i, o in functionPatches {
- if (name = o.NAME) {
- if (!o.HasKey("UNPATCH"))
- return false
- if (!writeMemory(hGTA, dwSAMP + o.OFFSET, o.UNPATCH, "Short", 2))
- return false
- return true
- }
- }
- return false
- }
- getServerStatus(INADDR, PORT) {
- DllCall("LoadLibrary", "str", "ws2_32", "ptr")
- VarSetCapacity(wsadata, 408)
- DllCall("ws2_32\WSAStartup", "ushort", 0x0000, "ptr", &wsadata)
- DllCall("ws2_32\WSAStartup", "ushort", NumGet(wsadata, 2, "ushort"), "ptr", &wsadata)
- remoteHost := DllCall("Ws2_32\gethostbyname", "Str", (A_IsUnicode ? __unicodeToAnsi(INADDR) : INADDR), "ptr")
- if(remoteHost)
- {
- if(NumGet(remoteHost + (A_PtrSize==4 ? 8 : 16), "short")==2)
- {
- addrl := NumGet(remoteHost + (A_PtrSize==4 ? 12 : 24), "ptr")
- ha := NumGet(addrl+0, "ptr")
- a := NumGet(ha+0, "uchar")
- loop, 3
- a .= "." NumGet(ha+A_index, "uchar")
- INADDR := a
- }
- else
- return -1
- }
- else
- return -1
- socket := DllCall("ws2_32\socket", "int", 2, "int", 2, "int", 17, "ptr")
- if(socket==-1)
- {
- return -1
- }
- VarSetCapacity(si, 16, 0)
- NumPut(2, si, 0, "Short")
- NumPut(DllCall("Ws2_32\htons", "UShort", PORT), si, 2, "UShort")
- NumPut(DllCall("Ws2_32\inet_addr", "Str", (A_IsUnicode ? __unicodeToAnsi(INADDR) : INADDR)), si, 4, "ptr")
- VarSetCapacity(message,30)
- StrPut("SAMP", &message, "cp0")
- StrPut("i", &message +10, "cp0")
- if(DllCall("ws2_32\sendto", "ptr", socket, "ptr", &message, "int", 11, "int", 0, "ptr", &si, "int", 16, "int")==-1)
- {
- DllCall("Ws2_32\closesocket", "ptr", socket)
- return -1
- }
- VarSetCapacity(buffer, 2048, 0)
- VarSetCapacity(optval, 8, 0)
- NumPut(1, optval, 0, "long") //timeout 1sec
- DllCall("ws2_32\setsockopt", "ptr", socket, "int", 0xFFFF, "int", 0x1006, "ptr", &optval, "int", 4)
- VarSetCapacity(silen,4)
- NumPut(16, silen, 0, "int")
- if(DllCall("ws2_32\recvfrom", "ptr", socket, "ptr", &buffer, "int", 2048, "int", 0, "ptr", &si, "ptr", &silen, "int")==-1)
- {
- DllCall("Ws2_32\closesocket", "ptr", socket)
- return -1
- }
- DllCall("Ws2_32\closesocket", "ptr", socket)
- return (NumGet(&buffer + 11, "Uchar") ? 2 : 1)
- }
- printJoinDisconnect() {
- static players := []
- static init := true
- if(init) {
- init := false
- Loop, % SAMP_PLAYER_MAX
- {
- getPlayerNameById(A_Index-1, players[A_Index-1])
- }
- return
- }
- Loop, % SAMP_PLAYER_MAX
- {
- i := A_Index-1
- getPlayerNameById(i, name)
- if(name) {
- if(name != players[i]) {
- if(players[i]) {
- AddChatMessage("{FFFFFF}" players[i] " (ID:" i ") hat den Server {FF0000}verlassen{FFFFFF}.")
- }
- players[i] := name
- AddChatMessage("{FFFFFF}" players[i] " (ID:" i ") hat den Server {00FF00}betreten{FFFFFF}.")
- }
- }
- else {
- if(players[i]) {
- AddChatMessage("{FFFFFF}" players[i] " (ID:" i ") hat den Server {FF0000}verlassen{FFFFFF}.")
- players[i] := ""
- }
- }
- }
- }
- restartGameEx() {
- if(!checkHandles())
- return -1
- dwAddress := readDWORD(hGTA, dwSAMP + SAMP_INFO_OFFSET)
- if(ErrorLevel || dwAddress==0) {
- ErrorLevel := ERROR_READ_MEMORY
- return -1
- }
- dwFunc := dwSAMP + 0xA060
- VarSetCapacity(injectData, 11, 0)
- NumPut(0xB9, injectData, 0, "UChar")
- NumPut(dwAddress, injectData, 1, "UInt")
- NumPut(0xE8, injectData, 5, "UChar")
- offset := dwFunc - (pInjectFunc + 10)
- NumPut(offset, injectData, 6, "Int")
- NumPut(0xC3, injectData, 10, "UChar")
- writeRaw(hGTA, pInjectFunc, &injectData, 11)
- if(ErrorLevel)
- return false
- hThread := createRemoteThread(hGTA, 0, 0, pInjectFunc, 0, 0, 0)
- if(ErrorLevel)
- return false
- waitForSingleObject(hThread, 0xFFFFFFFF)
- return true
- }
- disconnectEx() {
- if(!checkHandles())
- return 0
- dwAddress := readDWORD(hGTA, dwSAMP + SAMP_INFO_OFFSET)
- if(ErrorLevel || dwAddress==0) {
- ErrorLevel := ERROR_READ_MEMORY
- return 0
- }
- dwAddress := readDWORD(hGTA, dwAddress + 0x3c9)
- if(ErrorLevel || dwAddress==0) {
- ErrorLevel := ERROR_READ_MEMORY
- return 0
- }
- ecx := dwAddress
- dwAddress := readDWORD(hGTA, dwAddress)
- if(ErrorLevel || dwAddress==0) {
- ErrorLevel := ERROR_READ_MEMORY
- return 0
- }
- VarSetCapacity(injectData, 24, 0)
- NumPut(0xB9, injectData, 0, "UChar")
- NumPut(ecx, injectData, 1, "UInt")
- NumPut(0xB8, injectData, 5, "UChar")
- NumPut(dwAddress, injectData, 6, "UInt")
- NumPut(0x68, injectData, 10, "UChar")
- NumPut(0, injectData, 11, "UInt")
- NumPut(0x68, injectData, 15, "UChar")
- NumPut(500, injectData, 16, "UInt")
- NumPut(0x50FF, injectData, 20, "UShort")
- NumPut(0x08, injectData, 22, "UChar")
- NumPut(0xC3, injectData, 23, "UChar")
- writeRaw(hGTA, pInjectFunc, &injectData, 24)
- if(ErrorLevel)
- return false
- hThread := createRemoteThread(hGTA, 0, 0, pInjectFunc, 0, 0, 0)
- if(ErrorLevel)
- return false
- waitForSingleObject(hThread, 0xFFFFFFFF)
- return true
- }
- setrestart()
- {
- VarSetCapacity(old, 4, 0)
- dwAddress := readDWORD(hGTA, dwSAMP + SAMP_INFO_OFFSET)
- if(ErrorLevel || dwAddress==0) {
- ErrorLevel := ERROR_READ_MEMORY
- return 0
- }
- NumPut(9,old,0,"Int")
- writeRaw(hGTA, dwAddress + 957, &old, 4)
- }
- restart()
- {
- restartGameEx()
- disconnectEx()
- addChatMessage("Reconnecting...")
- Sleep 15200 //Delay (Logout Pickup)
- setrestart()
- }
- StopAnim()
- {
- SendChat("/Lay")
- Sleep 100
- Send, {Enter Down}
- Sleep 100
- Send, {Enter Up}
- }
- amk(o)
- {
- global
- if(!o)
- return
- PlayerID:= o.ID
- PlayerSkin := getTargetPlayerSkinIdById(PlayerID)
- PlayerName := o.Name
- //Yakuza
- if(Playerskin=228 or Playerskin=186 or Playerskin=203 or Playerskin=204 or Playerskin=123 or Playerskin=122 or Playerskin=169)
- {
- Gegnerfound := 0
- Yakuza_Zeile := 0
- Loop, read, %A_MyDocuments%\Veyselbinder\Fraktionen\Yakuza.txt
- {
- If (Yakuza_Zeile >= A_Index)
- {
- Continue
- }
- else
- {
- if instr(A_Loopreadline,PlayerName)
- {
- Gegnerfound := 1
- }
- Yakuza_Zeile := A_Index
- }
- }
- if(Gegnerfound = 0)
- {
- fileappend, %Playername%`n, %A_MyDocuments%\Veyselbinder\Fraktionen\Yakuza.txt
- addchatmessage("{2E9AFE}* " Playername " wurde als Yakuza Mitglied eingetragen.")
- }
- }
- //Vagos
- if(Playerskin=109 or Playerskin=110 or Playerskin=108 or Playerskin=292 )
- {
- Gegnerfound := 0
- Vagos_Zeile := 0
- Loop, read, %A_MyDocuments%\Veyselbinder\Fraktionen\Vagos.txt
- {
- If (Vagos_Zeile >= A_Index)
- {
- Continue
- }
- else
- {
- if instr(A_Loopreadline,PlayerName)
- {
- Gegnerfound := 1
- }
- Vagos_Zeile := A_Index
- }
- }
- if(Gegnerfound = 0)
- {
- fileappend, %Playername%`n, %A_MyDocuments%\Veyselbinder\Fraktionen\Vagos.txt
- addchatmessage("{2E9AFE}* " Playername " wurde als Vagos Mitglied eingetragen.")
- }
- }
- //Triaden
- if(Playerskin=117 or Playerskin=118 or Playerskin=208 or Playerskin=120)
- {
- Gegnerfound := 0
- Triaden_Zeile := 0
- Loop, read, %A_MyDocuments%\Veyselbinder\Fraktionen\Triaden.txt
- {
- If (Triaden_Zeile >= A_Index)
- {
- Continue
- }
- else
- {
- if instr(A_Loopreadline,PlayerName)
- {
- Gegnerfound := 1
- }
- Triaden_Zeile := A_Index
- }
- }
- if(Gegnerfound = 0)
- {
- fileappend, %Playername%`n, %A_MyDocuments%\Veyselbinder\Fraktionen\Triaden.txt
- addchatmessage("{2E9AFE}* " Playername " wurde als Triaden Mitglied eingetragen.")
- }
- }
- //La Cosa Nostra
- if(Playerskin=225 or Playerskin=123 or Playerskin=125 or Playerskin=126 or Playerskin=223 or Playerskin=113)
- {
- Gegnerfound := 0
- lcn_Zeile := 0
- Loop, read, %A_MyDocuments%\Veyselbinder\Fraktionen\La Cosa Nostra.txt
- {
- If (lcn_Zeile >= A_Index)
- {
- Continue
- }
- else
- {
- if instr(A_Loopreadline,PlayerName)
- {
- Gegnerfound := 1
- }
- lcn_Zeile := A_Index
- }
- }
- if(Gegnerfound = 0)
- {
- fileappend, %Playername%`n, %A_MyDocuments%\Veyselbinder\Fraktionen\La Cosa Nostra.txt
- addchatmessage("{2E9AFE}* " Playername " wurde als La Cosa Nostra Mitglied eingetragen.")
- }
- }
- //Aztecas
- //114 115 116 173 174 175
- if(Playerskin=114 or Playerskin=115 or Playerskin=116 or Playerskin=173 or Playerskin=174 or Playerskin=175)
- {
- Gegnerfound := 0
- Aztecas_Zeile := 0
- Loop, read, %A_MyDocuments%\Veyselbinder\Fraktionen\Aztecas.txt
- {
- If (Aztecas_Zeile >= A_Index)
- {
- Continue
- }
- else
- {
- if instr(A_Loopreadline,PlayerName)
- {
- Gegnerfound := 1
- }
- Aztecas_Zeile := A_Index
- }
- }
- if(Gegnerfound = 0)
- {
- fileappend, %Playername%`n, %A_MyDocuments%\Veyselbinder\Fraktionen\Aztecas.txt
- addchatmessage("{2E9AFE}* " Playername " wurde als Aztecas Mitglied eingetragen.")
- }
- }
- //Ballas
- //102 103 104 13 195 293
- if(Playerskin=102 or Playerskin=103 or Playerskin=104 or Playerskin=13 or Playerskin=195 or Playerskin=293)
- {
- Gegnerfound := 0
- Ballas_Zeile := 0
- Loop, read, %A_MyDocuments%\Veyselbinder\Fraktionen\Ballas.txt
- {
- If (Ballas_Zeile >= A_Index)
- {
- Continue
- }
- else
- {
- if instr(A_Loopreadline,PlayerName)
- {
- Gegnerfound := 1
- }
- Ballas_Zeile := A_Index
- }
- }
- if(Gegnerfound = 0)
- {
- fileappend, %Playername%`n, %A_MyDocuments%\Veyselbinder\Fraktionen\Ballas.txt
- addchatmessage("{2E9AFE}* " Playername " wurde als Ballas Mitglied eingetragen.")
- }
- }
- //Los Santos Police Department
- //265 266 267 280 284 285 300 301 306 303 304
- if(Playerskin=265 or Playerskin=266 or Playerskin=267 or Playerskin=280 or Playerskin=284 or Playerskin=285 or Playerskin=300 or Playerskin=301 or Playerskin=306 or Playerskin=303 or Playerskin=304)
- {
- Gegnerfound := 0
- LSPD_Zeile := 0
- Loop, read, %A_MyDocuments%\Veyselbinder\Fraktionen\Los Santos Police Department.txt
- {
- If (LSPD_Zeile >= A_Index)
- {
- Continue
- }
- else
- {
- if instr(A_Loopreadline,PlayerName)
- {
- Gegnerfound := 1
- }
- LSPD_Zeile := A_Index
- }
- }
- if(Gegnerfound = 0)
- {
- fileappend, %Playername%`n, %A_MyDocuments%\Veyselbinder\Fraktionen\Los Santos Police Department.txt
- addchatmessage("{2E9AFE}* " Playername " wurde als Los Santos Police Department Mitglied eingetragen.")
- }
- }
- //NineDemons
- //100 247 248 254 291 261
- if(Playerskin=100 or Playerskin=247 or Playerskin=248 or Playerskin=254 or Playerskin=291 or Playerskin=261)
- {
- Gegnerfound := 0
- NineDemons_Zeile := 0
- Loop, read, %A_MyDocuments%\Veyselbinder\Fraktionen\Nine Demons.txt
- {
- If (NineDemons_Zeile >= A_Index)
- {
- Continue
- }
- else
- {
- if instr(A_Loopreadline,PlayerName)
- {
- Gegnerfound := 1
- }
- NineDemons_Zeile := A_Index
- }
- }
- if(Gegnerfound = 0)
- {
- fileappend, %Playername%`n, %A_MyDocuments%\Veyselbinder\Fraktionen\Nine Demons.txt
- addchatmessage("{2E9AFE}* " Playername " wurde als Nine Demons Mitglied eingetragen.")
- }
- }
- //Grove Street Family
- //105 106 107 269 270 271 65
- if(Playerskin=105 or Playerskin=106 or Playerskin=107 or Playerskin=269 or Playerskin=270 or Playerskin=271 or Playerskin=65)
- {
- Gegnerfound := 0
- GSF_Zeile := 0
- Loop, read, %A_MyDocuments%\Veyselbinder\Fraktionen\Grove Street Family.txt
- {
- If (GSF_Zeile >= A_Index)
- {
- Continue
- }
- else
- {
- if instr(A_Loopreadline,PlayerName)
- {
- Gegnerfound := 1
- }
- GSF_Zeile := A_Index
- }
- }
- if(Gegnerfound = 0)
- {
- fileappend, %Playername%`n, %A_MyDocuments%\Veyselbinder\Fraktionen\Grove Street Family.txt
- addchatmessage("{2E9AFE}* " Playername " wurde als Grove Street Family Mitglied eingetragen.")
- }
- }
- //Wheelman
- if(Playerskin=217 or Playerskin=211 or Playerskin=206 or Playerskin=202 or Playerskin=230)
- {
- Gegnerfound := 0
- Wheelman_Zeile := 0
- Loop, read, %A_MyDocuments%\Veyselbinder\Fraktionen\Wheelman.txt
- {
- If (Wheelman_Zeile >= A_Index)
- {
- Continue
- }
- else
- {
- if instr(A_Loopreadline,PlayerName)
- {
- Gegnerfound := 1
- }
- Wheelman_Zeile := A_Index
- }
- }
- if(Gegnerfound = 0)
- {
- fileappend, %Playername%`n, %A_MyDocuments%\Veyselbinder\Fraktionen\Wheelman.txt
- addchatmessage("{2E9AFE}* " Playername " wurde als Wheelman Mitglied eingetragen.")
- }
- }
- }
- callFuncForAllStreamedInPlayers(cfunc,dist=0x7fffffff) {
- cfunc := "" cfunc
- dist += 0
- if(!IsFunc(cfunc))
- return false
- p := getStreamedInPlayersInfo()
- if(!p)
- return false
- if(dist<0x7fffffff)
- {
- lpos := getCoordinates()
- if(!lpos)
- return false
- For i, o in p
- {
- if(dist>getDist(lpos,o.POS))
- %cfunc%(o)
- }
- }
- else
- {
- For i, o in p
- %cfunc%(o)
- }
- return true
- }
- getStreamedInPlayersInfo() {
- r:=[]
- if(iRefreshScoreboard+iUpdateTick > A_TickCount)
- {
- For i, o in oScoreboardData
- {
- if(o.HasKey("PED"))
- {
- p := getPedCoordinates(o.PED)
- if(p)
- {
- o.POS := p
- r[i] := o
- }
- }
- }
- return r
- }
- if(!updateOScoreboardData())
- return ""
- For i, o in oScoreboardData
- {
- if(o.HasKey("PED"))
- {
- p := getPedCoordinates(o.PED)
- if(p)
- {
- o.POS := p
- r[i] := o
- }
- }
- }
- return r
- }
- UrlDownloadToVar(URL, ByRef Result, UserAgent = "", Proxy = "", ProxyBypass = "")
- {
- hModule := DllCall("LoadLibrary", "Str", "wininet.dll")
- AccessType := Proxy != "" ? 3 : 1
- io := DllCall("wininet\InternetOpenA"
- , "Str", UserAgent
- , "UInt", AccessType
- , "Str", Proxy
- , "Str", ProxyBypass
- , "UInt", 0)
- iou := DllCall("wininet\InternetOpenUrlA"
- , "UInt", io
- , "Str", url
- , "Str", ""
- , "UInt", 0
- , "UInt", 0x80000000
- , "UInt", 0)
- If (ErrorLevel != 0 or iou = 0) {
- DllCall("FreeLibrary", "UInt", hModule)
- return 0
- }
- VarSetCapacity(buffer, 10240, 0)
- VarSetCapacity(BytesRead, 4, 0)
- Loop
- {
- irf := DllCall("wininet\InternetReadFile", "UInt", iou, "UInt", &buffer, "UInt", 10240, "UInt", &BytesRead)
- VarSetCapacity(buffer, -1)
- BytesRead_ = 0
- Loop, 4
- BytesRead_ += *(&BytesRead + A_Index-1) << 8*(A_Index-1)
- If (irf = 1 and BytesRead_ = 0)
- break
- Else
- Result .= SubStr(buffer, 1, BytesRead_)
- }
- DllCall("wininet\InternetCloseHandle", "UInt", iou)
- DllCall("wininet\InternetCloseHandle", "UInt", io)
- DllCall("FreeLibrary", "UInt", hModule)
- }
- getVehicleNumberPlate() {
- if(!checkHandles())
- return ""
- dwVehPtr := readDWORD(hGTA, ADDR_VEHICLE_PTR)
- if(ErrorLevel || dwVehPtr==0) {
- ErrorLevel := ERROR_READ_MEMORY
- return ""
- }
- dwAddress := readDWORD(hGTA, dwSAMP + SAMP_INFO_OFFSET)
- if(ErrorLevel || dwAddress==0) {
- ErrorLevel := ERROR_READ_MEMORY
- return ""
- }
- dwAddress := readDWORD(hGTA, dwAddress + SAMP_PPOOLS_OFFSET)
- if(ErrorLevel || dwAddress==0) {
- ErrorLevel := ERROR_READ_MEMORY
- return ""
- }
- vehpool := readDWORD(hGTA, dwAddress + 0x1C)
- if(ErrorLevel || vehpool==0) {
- ErrorLevel := ERROR_READ_MEMORY
- return ""
- }
- Loop, 2000
- {
- i := A_Index-1
- listed := readDWORD(hGTA, vehpool + 0x3074 + i*4)
- if(ErrorLevel) {
- ErrorLevel := ERROR_READ_MEMORY
- return ""
- }
- if(listed==0)
- continue
- svehptr := readDWORD(hGTA, vehpool + 0x4FB4 + i*4)
- if(ErrorLevel) {
- ErrorLevel := ERROR_READ_MEMORY
- return ""
- }
- if(svehptr==dwVehPtr) {
- sampveh := readDWORD(hGTA, vehpool + 0x1134 + i*4)
- if(ErrorLevel || sampveh==0) {
- ErrorLevel := ERROR_READ_MEMORY
- return ""
- }
- plate := readString(hGTA, sampveh + 0x93, 33)
- if(ErrorLevel) {
- ErrorLevel := ERROR_READ_MEMORY
- return ""
- }
- ErrorLevel := ERROR_OK
- return plate
- }
- }
- ErrorLevel := ERROR_OK
- return ""
- }
- getAttacker(bReset := false) {
- if (!checkHandles() || !updateOScoreboardData())
- return -1
- dwLocalPED := readDWORD(hGTA, ADDR_CPED_PTR)
- dwAttacker := readDWORD(hGTA, dwLocalPED + 0x764)
- if (!dwAttacker)
- return -1
- for i, o in oScoreboardData {
- if (!o.PED || o.ISNPC || dwAttacker != o.PED)
- continue
- if (bReset)
- writeMemory(hGTA, dwLocalPED + 0x764, 0, "UInt", 4)
- return o.ID
- }
- return -1
- }
- getKiller(bReset := false) {
- if (!checkHandles() || getPlayerHealth() > 0 || !updateOScoreboardData())
- return -1
- dwLocalPED := readDWORD(hGTA, ADDR_CPED_PTR)
- dwMurderer := readDWORD(hGTA, dwLocalPED + 0x764)
- if (!dwMurderer)
- return -1
- for i, o in oScoreboardData {
- if (!o.PED || o.ISNPC || dwMurderer != o.PED)
- continue
- if (bReset)
- writeMemory(hGTA, dwLocalPED + 0x764, 0, "UInt", 4)
- return o.ID
- }
- return -1
- }
- getClosestPlayerPed() {
- dist := 0x7fffffff
- p := getStreamedInPlayersInfo()
- if(!p)
- return -1
- lpos := getCoordinates()
- if(!lpos)
- return -1
- id := -1
- For i, o in p
- {
- t:=getDist(lpos,o.POS)
- if(t<dist)
- {
- dist := t
- id := i
- }
- }
- PED := getPedById(id)
- return PED
- }
- getClosestPlayerId() {
- dist := 0x7fffffff
- p := getStreamedInPlayersInfo()
- if(!p)
- return -1
- lpos := getCoordinates()
- if(!lpos)
- return -1
- id := -1
- For i, o in p
- {
- t:=getDist(lpos,o.POS)
- if(t<dist)
- {
- dist := t
- id := i
- }
- }
- return id
- }
- isCheckpointEnabled() {
- if (!checkHandles()) {
- ErrorLevel := ERROR_INVALID_HANDLE
- return false
- }
- dwAddress := readDWORD(hGTA, dwSAMP + ADDR_SAMP_INCHAT_PTR)
- if (ErrorLevel || !dwAddress) {
- ErrorLevel := ERROR_READ_MEMORY
- return false
- }
- isSet := readMem(hGTA, dwAddress + 0x24, 1, "Byte")
- if (ErrorLevel) {
- ErrorLevel := ERROR_READ_MEMORY
- return false
- }
- ErrorLevel := ERROR_OK
- return isSet
- }
- getCheckpointSize() {
- if (!checkHandles()) {
- ErrorLevel := ERROR_INVALID_HANDLE
- return -1
- }
- dwAddress := readDWORD(hGTA, dwSAMP + ADDR_SAMP_INCHAT_PTR)
- if (ErrorLevel || !dwAddress) {
- ErrorLevel := ERROR_READ_MEMORY
- return -1
- }
- size := readMem(hGTA, dwAddress + 0x18, 4, "Float")
- if (ErrorLevel) {
- ErrorLevel := ERROR_READ_MEMORY
- return -1
- }
- ErrorLevel := ERROR_OK
- return size
- }
- getCheckpointPos() {
- if (!checkhandles()) {
- ErrorLevel := ERROR_INVALID_HANDLE
- return -1
- }
- dwAddress := readDWORD(hGTA, dwSAMP + ADDR_SAMP_INCHAT_PTR)
- if (ErrorLevel || !dwAddress) {
- ErrorLevel := ERROR_READ_MEMORY
- return -1
- }
- offsets := [0xC, 0x10, 0x14]
- for i, o in offsets
- pos%i% := readMem(hGTA, dwAddress + o, 4, "Float")
- if (ErrorLevel) {
- ErrorLevel := ERROR_READ_MEMORY
- return -1
- }
- ErrorLevel := ERROR_OK
- return [pos1, pos2, pos3]
- }
- enableCheckpoint() {
- if (!checkhandles()) {
- ErrorLevel := ERROR_INVALID_HANDLE
- return false
- }
- dwAddress := readDWORD(hGTA, dwSAMP + ADDR_SAMP_INCHAT_PTR)
- if (ErrorLevel || !dwAddress) {
- ErrorLevel := ERROR_READ_MEMORY
- return false
- }
- writeMemory(hGTA, dwAddress + 0x24, 1, "Byte", 1)
- if (ErrorLevel) {
- ErrorLevel := ERROR_READ_MEMORY
- return false
- }
- ErrorLevel := ERROR_OK
- return true
- }
- getLabelText() {
- if(!checkHandles())
- return 0
- ADDR_3DText := readDWORD(hGTA, dwSAMP + SAMP_3DTEXT)
- TEXT_3DTEXT := readString(hGTA, ADDR_3DText, 512)
- return TEXT_3DTEXT
- }
- getDialogContent() {
- if(!checkHandles())
- return 0
- dwAddress := readDWORD(hGTA, dwSAMP + SAMP_DIALOG_PTR)
- dwAddress := readDWORD(hGTA, dwAddress + SAMP_DIALOG_OFFSET)
- sContent := readString(hGTA, dwAddress, SAMP_DIALOG_SIZE)
- return sContent
- }
- GetProcessList(){
- strComputer := "."
- objWMIService := ComObjGet("winmgmts:\\" . strComputer . "\root\cimv2")
- colProcesses := objWMIService.ExecQuery("Select * From Win32_Process")._NewEnum
- list := ""
- While colProcesses[objProcess]
- {
- element := objProcess.Name
- list = %list%`n%element%
- }
- return list
- }
- FormatNumber(_number) {
- StringReplace _number, _number, -
- IfEqual ErrorLevel,0, SetEnv Sign,-
- Loop Parse, _number, .
- If (A_Index = 1)
- {
- len := StrLen(A_LoopField)
- Loop Parse, A_LoopField
- If (Mod(len-A_Index,3) = 0 and A_Index != len)
- x .= A_LoopField "."
- Else
- x .= A_LoopField
- }
- Else
- Return Sign x "." A_LoopField
- Return Sign x
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement