Jump to content
    1. Welcome to GTAForums!

    1. GTANet.com

    1. GTA Online

      1. Los Santos Drug Wars
      2. Updates
      3. Find Lobbies & Players
      4. Guides & Strategies
      5. Vehicles
      6. Content Creator
      7. Help & Support
    2. Red Dead Online

      1. Blood Money
      2. Frontier Pursuits
      3. Find Lobbies & Outlaws
      4. Help & Support
    3. Crews

    1. Grand Theft Auto Series

      1. Bugs*
      2. St. Andrews Cathedral
    2. GTA VI

    3. GTA V

      1. Guides & Strategies
      2. Help & Support
    4. GTA IV

      1. The Lost and Damned
      2. The Ballad of Gay Tony
      3. Guides & Strategies
      4. Help & Support
    5. GTA San Andreas

      1. Classic GTA SA
      2. Guides & Strategies
      3. Help & Support
    6. GTA Vice City

      1. Classic GTA VC
      2. Guides & Strategies
      3. Help & Support
    7. GTA III

      1. Classic GTA III
      2. Guides & Strategies
      3. Help & Support
    8. Portable Games

      1. GTA Chinatown Wars
      2. GTA Vice City Stories
      3. GTA Liberty City Stories
    9. Top-Down Games

      1. GTA Advance
      2. GTA 2
      3. GTA
    1. Red Dead Redemption 2

      1. PC
      2. Help & Support
    2. Red Dead Redemption

    1. GTA Mods

      1. GTA V
      2. GTA IV
      3. GTA III, VC & SA
      4. Tutorials
    2. Red Dead Mods

      1. Documentation
    3. Mod Showroom

      1. Scripts & Plugins
      2. Maps
      3. Total Conversions
      4. Vehicles
      5. Textures
      6. Characters
      7. Tools
      8. Other
      9. Workshop
    4. Featured Mods

      1. Design Your Own Mission
      2. OpenIV
      3. GTA: Underground
      4. GTA: Liberty City
      5. GTA: State of Liberty
    1. Rockstar Games

    2. Rockstar Collectors

    1. Off-Topic

      1. General Chat
      2. Gaming
      3. Technology
      4. Movies & TV
      5. Music
      6. Sports
      7. Vehicles
    2. Expression

      1. Graphics / Visual Arts
      2. GFX Requests & Tutorials
      3. Writers' Discussion
      4. Debates & Discussion
    1. Announcements

    2. Forum Support

    3. Suggestions

[ANDROID] CLEO ANDROID


Alexander Blade
 Share

Recommended Posts

tanduk.setan

There is this mod:

 

http://www.gtainside.com/en/sanandreas/mods/96217-swat-bodyguard-for-android

 

It is a script that enables bodyguards in the form of a S.W.A.T team. I wanted a mod similar to this, but with FBI agents. I would enjoy the protection of FBI agents in the game. It would fit the scene when I do missions for Toreno.

 

http://vignette3.wikia.nocookie.net/gtawiki/images/c/c5/FBIAgent-GTASA-Badlands.png/revision/latest?cb=20130210024218

here. https://mega.nz/#!0jAVGKbB!TwuuiY7Ho9zqm9b9m4kD_K5uIAicn4HazL1719tR0WA

Link to comment
Share on other sites

 

There is this mod:

 

http://www.gtainside.com/en/sanandreas/mods/96217-swat-bodyguard-for-android

 

It is a script that enables bodyguards in the form of a S.W.A.T team. I wanted a mod similar to this, but with FBI agents. I would enjoy the protection of FBI agents in the game. It would fit the scene when I do missions for Toreno.

 

http://vignette3.wikia.nocookie.net/gtawiki/images/c/c5/FBIAgent-GTASA-Badlands.png/revision/latest?cb=20130210024218

here. https://mega.nz/#!0jAVGKbB]https://mega.nz/#!0jAVGKbB!TwuuiY7Ho9zqm9b9m4kD_K5uIAicn4HazL1719tR0WAThank you so much. I was wondering if you could please change the weapons that 2 of the FBI agents are holding. All of the FBI agents have M4s.Can you please modify the script and make two of agents have to MP5s while only one of them has an M4?

 

First FBI agent

MP5-GTAVC.png

 

Second FBI agent

MP5-GTAVC.png

 

Third FBI agent

M4-GTAVC.png

 

It would be like a team where weapon classes are combined to complete an objective. It would be realistic. I hope I am not causing inconvenience.

Edited by Osaru2846
Link to comment
Share on other sites

tanduk.setan

 

 

There is this mod:

 

http://www.gtainside.com/en/sanandreas/mods/96217-swat-bodyguard-for-android

 

It is a script that enables bodyguards in the form of a S.W.A.T team. I wanted a mod similar to this, but with FBI agents. I would enjoy the protection of FBI agents in the game. It would fit the scene when I do missions for Toreno.

 

http://vignette3.wikia.nocookie.net/gtawiki/images/c/c5/FBIAgent-GTASA-Badlands.png/revision/latest?cb=20130210024218

here. https://mega.nz/#!0jAVGKbB]https://mega.nz/#!0jAVGKbB!TwuuiY7Ho9zqm9b9m4kD_K5uIAicn4HazL1719tR0WA
Thank you so much. I was wondering if you could please change the weapons that 2 of the FBI agents are holding. All of the FBI agents have M4s.Can you please modify the script and make two of agents have to MP5s while only one of them has an M4?

 

First FBI agent

MP5-GTAVC.png

 

Second FBI agent

MP5-GTAVC.png

 

Third FBI agent

M4-GTAVC.png

 

It would be like a team where weapon classes are combined to complete an objective. It would be realistic. I hope I am not causing inconvenience.

 

not at all

Link to comment
Share on other sites

 

 

 

There is this mod:

 

http://www.gtainside.com/en/sanandreas/mods/96217-swat-bodyguard-for-android

 

It is a script that enables bodyguards in the form of a S.W.A.T team. I wanted a mod similar to this, but with FBI agents. I would enjoy the protection of FBI agents in the game. It would fit the scene when I do missions for Toreno.

 

http://vignette3.wikia.nocookie.net/gtawiki/images/c/c5/FBIAgent-GTASA-Badlands.png/revision/latest?cb=20130210024218

here. https://mega.nz/#!0jAVGKbB]https://mega.nz/#!0jAVGKbB!TwuuiY7Ho9zqm9b9m4kD_K5uIAicn4HazL1719tR0WA
Thank you so much. I was wondering if you could please change the weapons that 2 of the FBI agents are holding. All of the FBI agents have M4s.Can you please modify the script and make two of agents have to MP5s while only one of them has an M4?

 

First FBI agent

MP5-GTAVC.png

 

Second FBI agent

MP5-GTAVC.png

 

Third FBI agent

M4-GTAVC.png

 

It would be like a team where weapon classes are combined to complete an objective. It would be realistic. I hope I am not causing inconvenience.

 

not at all

https://mega.nz/#!diAWyI7R!jGIvk9q0M4KTyygrap9HdvKUBYKCJkwyRjYRYibOcZA

Thank you, but the FBI agent that has an M4 walks like a female. Was there an error in the script? I can manage if this error cannot be resolved. I appreciate your effort. Edited by Osaru2846
Link to comment
Share on other sites

sorry for bad english.

just found my old code, i decided edit a little bit, and make it open source,

if you want, i will add more, but not cleo script(im now addicted to c++)

 

please share

 

https://mega.nz/#!4yBiwSIR!Rtj0EAzeygxVNbyLfCs0b-AKofPBDGlVTw1LahE-9MY

 

you can do anything you like with this

 

 

 

// by tanduk.setan// clang-format off#pragma GCC diagnostic push#pragma GCC diagnostic ignored "-Wcast-align"inline void*operator new(unsigned,void*t)noexcept{return t;}// address == char*class Class final{  typedef unsigned long size_t;  static_assert(sizeof(size_t)==4);public:  Class(void*ib)    :_ib((char*)ib)    ,_cleoBase([this]{      auto p=*(char**)(_ib+0x1D9448);      if((size_t)p==0x5c08f843)asm volatile(".long 0xffffffff");//no way out       p=(char*)(size_t(p-0x007E40)&~1UL);      return p;    }())    ,_gtaHandle(*(void**)(size_t(_cleoBase+0x015034)&~1UL)){      WriteMem<unsigned char>(0x5197BC,255);// taillight intensity      WriteMem(0x5198A8,-96.f);      WriteMem(0x5198A4,1.f);//flt_5198A4      DCFS 0.2      WriteMem(0x5198A0,350.f);//flt_5198A0      DCFS 150.0      mkHook(0x51975A,TaillightBrake,true).mkHook(0x519802,TaillightReverse,true);            mkHook(Sym("_ZN6CRadar15LimitRadarPointER9CVector2D"),CRadar_LimitRadarPoint_entry,false,false);      WriteMem(0x3DC6A4,0.075f).WriteMem(0x3DC7B4,0.055f).WriteMem(0x27FCBC,0.f).WriteMem(0x3DED84,0.f);      textbox("all done!");    }  Class(Class const&)=delete;//private:  static Class&This(Class*p=nullptr){static Class*r{};if(p)r=p;return*r;}//  auto assign=[this,&c](auto&f,auto const&o,bool t=true){auto const a{size_t((c?_cleoBase:_ib)+o)};f=(rmr_t<decltype(f)>)(t?a|1UL:a&~1UL);};  template<class F>F LinkFromCleo(F const&,size_t o,bool t=true){auto const a{size_t(_cleoBase+o)};return F(t?a|1UL:a&~1UL);}  template<class F>F LinkFromGta (F const&,size_t o,bool t=true){auto const a{size_t(_ib+o)};return F(t?a|1UL:a&~1UL);}//  auto assignsym=[this](auto&f,char const*s){f=(rmr_t<decltype(f)>)(Sym(s));};  template<class F>F LinkFromSym (F const&,char const*s){return F(Sym(s));}    enum class eRv:int{ok=0,wrong_base};  template<class T>struct priv_rmr    final{typedef T t;};  template<class T>struct priv_rmr<T&>final{typedef T t;};  template<class T>using rmr_t=typename priv_rmr<T>::t;  template<class T>static T*EnsureARM  (T*p){return(T*)(size_t(p)&~1UL);}  template<class T>static T*EnsureThumb(T*p){return(T*)(size_t(p)| 1UL);}    unsigned _unused1[[maybe_unused]][5];//+isInit  char*const _ib;  unsigned _gtaver[[maybe_unused]];  char*const _cleoBase;  void*const _gtaHandle;  char*(*const writeMem)(void*dst,void*src,size_t sz,bool unprotect){LinkFromCleo(writeMem,0x008324)};  int  (*const mprotect)(void*addr,size_t len,int prot){LinkFromCleo(mprotect,0x015034,false)};  void*(*const dlsym)(void*handle,char const*name){LinkFromCleo(dlsym,0x004288,false)};  void*(*const encodebl)(void*from,void*to){LinkFromCleo(encodebl,0x0083FC)};  void*(*const encodebw)(void*from,void*to){LinkFromCleo(encodebw,0x0083C8)};  size_t*      _fnPool{(decltype(_fnPool))EnsureARM(Sym("_Z18PerformanceWarningPKciS0_"))};// any unused fn will do(where direct branch can reach), prefer large fn  struct{    void(*const SetHelpMessage)(char const*gxt,char const*text,bool quickMessage,bool permanent,bool addToBrief)      =[this]{return This().LinkFromSym(SetHelpMessage,"_ZN4CHud14SetHelpMessageEPKcPtbbbj");}();  }CHud;// incomplete  char*const gMobileMenu{(char*)Sym("gMobileMenu")};// incomplete  float(*const atan2f)(float y,float x){LinkFromGta(atan2f,0x179288,false)};  float(*const sinf  )(float x){LinkFromGta(sinf,0x179D70,false)};  float(*const cosf  )(float x){LinkFromGta(cosf,0x179A44,false)};      void*Sym(char const*name)const{return dlsym(_gtaHandle,name);}  template<class T,class D>  Class&WriteMem(D const&dest,T const&src,bool ib=true,bool unprotect=true)    {writeMem((void*)(((char*)dest)+size_t(ib?_ib:nullptr)),(void*)&src,sizeof(T),unprotect);return*this;}  template<size_t n>Class&textbox(char const(&s)[n]){char c[n*2];AsciiToGxtChar(s,c);CHud.SetHelpMessage(nullptr,c,false,false,false);return*this;}  /// assume diff is very large for direct branch to encode  template<class F,class T>  Class&mkHook(F const&from,T*to,bool link,bool ib=true,bool thumb=true){    // single thread only, no check    for(;*_fnPool==*(size_t*)"SIGN";_fnPool+=4){}    auto p=(size_t)to;    if(thumb)p|= 1UL;		else		 p&=~1UL;    auto const f=(void*)((size_t(from)&~1UL)+size_t(ib?_ib:nullptr));    if(link)encodebl(f,_fnPool+1);    else    encodebw(f,_fnPool+1);    writeMem(_fnPool++,(void*)"SIGN" "SIGN" "SIGN" "SIGN",4*4,true);    *_fnPool++=0xc004f8df;//DFF804C0  ldr r12, asm_hook_dest ; == dynamic linker in android, i think    *_fnPool++=0xbf004760;//6047     	bx r12                          //00BF     	nop                          //asm_hook_dest:    *_fnPool++=p;         //00000000 	.long 0x0    return*this;	}    eRv start(void*ib)__attribute((noinline)){    This(this);    ::new(this)Class(ib);    return eRv::ok;  }    eRv cleo_entry(void*ib)__attribute((used)){    asm volatile(".long 0x66666666\n.long 0x66666666");    return start(ib);  }  static void TaillightBrake()__attribute((naked)){    asm(		  "ldr.w r2, [r5, #0x4A0] \n"		  "mov.w r1, #0x3F800000  \n"		  "cmp r1, r2             \n"		  "ite eq                 \n"		  "movteq.w r1, #0x3F12   \n"		  "movtne.w r1, #0x3EAA   \n"		  "vmov s15, r1           \n"		  "ldr.w r2, [r5,#0x5A0]  \n"		  "bx lr");  }  static void TaillightReverse()__attribute((naked)){		asm(		  "vstr s15, [sp, #0x10]  \n"			"ldr.w r4, [r1, #0x49C] \n"			"cmp r4, #0             \n"			"ite pl                 \n"			"movpl r3, #0           \n"			"movmi r3, r2           \n"			"mov r4, r3             \n"			"str r3, [sp]           \n"			"bx lr"			);	}  class CVector2D_ final{    float x{},y{};  public:    constexpr CVector2D_(){}  };// incomplete  static float CRadar_LimitRadarPoint_entry(char*CVector2D){return This().CRadar_LimitRadarPoint(CVector2D);}  static float sqrtf(float f){float r;asm("vsqrt.f32 %0, %1":"=" "t"®:"t"(f));return r;}  float CRadar_LimitRadarPoint(char*CVector2D){//(CVector2D&v){    // steal from dk22pac code		void *v1; // [email protected]		float v2; // [email protected]		float result; // [email protected]		float v5; // [email protected]		float v6; // [email protected]		float v7; // [email protected]		short v8; // [email protected]		float v9; // [email protected]		float v10; // [email protected]		float v11; // [email protected]		float v12; // [sp+8h] [bp-8h]@3		if (gMobileMenu[108])                                // MobileSettings::settings.drawRadarOrMap		{			v2 = *(float *)(CVector2D + 4) * *(float *)(CVector2D + 4) + *(float *)CVector2D * *(float *)CVector2D;			return (float)sqrtf(v2);		}		v5 = *(float *)(CVector2D + 4) * *(float *)(CVector2D + 4) + *(float *)CVector2D * *(float *)CVector2D;		v6 = sqrtf(v5);		result = v6;		v12 = v6;		if (v6 > 1.0f) {			if (*(float *)CVector2D > -1.0f				&& *(float *)CVector2D < 1.0f				&& *(float *)(CVector2D + 4) > -1.0f				&& *(float *)(CVector2D + 4) < 1.0f) {				return 0.99f;			}			if (v12 <= 5.f/*mfConfRadarBlipMxDistFactor*/) v12 = 0.99f;			v7 = *(float *)(CVector2D + 4);			v7 = atan2f(v7, *(float *)CVector2D);			v9 = v7;			v10 = v9 * 57.295779513f;			if (v10 > 45.0f || v10 <= -45.0f) {				if (v10 > 45.0f && v10 <= 135.0f) {					*(float *)CVector2D = cosf(v10 / 57.295779513f) * 1.4142135623f;					*(float *)(CVector2D + 4) = 1.0f;					return v12;				}				if (v10 <= 135.0f && v10 > -135.0f) {					*(float *)CVector2D = cosf(v10 / 57.295779513f) * 1.4142135623f;					*(float *)(CVector2D + 4) = -1.0f;					return v12;				}				v11 = -1.0f;			} else {				v11 = 1.0f;			}			*(float *)CVector2D = v11;			*(float *)(CVector2D + 4) = sinf(v10 / 57.295779513f) * 1.4142135623f;			result = v12;		}		return result;	}  static char const*AsciiToGxtChar(char const*in,char*out){    //steal from gtasa code		char v2; // [email protected]		int v3; // [email protected]		auto const r{out};    v2=*(char*)in;    do{      *(short*)out=v2;      out+=2;      v3=*(char*)(in+++1);      v2=(char)v3;    }while(v3);    *(short*)out=0;    return r;	}    };#pragma GCC diagnostic pop // top

 

{$CLEO .csa}/*    by tanduk.setan --public domain--*/goto @start:_ZN11CTheScripts11ScriptSpaceEhex"_ZN11CTheScripts11ScriptSpaceE"00endconst    m_var_pool [email protected]        // prefix with number, so that sanny builder highlight this variable        0r  [email protected]    1r  [email protected]    2r  [email protected]    3r  [email protected]    4r  [email protected]    5r  [email protected]    6r  [email protected]    7r  [email protected]    8r  [email protected]    9r  [email protected]    10r [email protected]    11r [email protected]    12r [email protected]    13r [email protected]    14r [email protected]    15r [email protected]    16r [email protected]    17r [email protected]    18r [email protected]    19r [email protected]    20r [email protected]    21r [email protected]    22r [email protected]    23r [email protected]    24r [email protected]    25r [email protected]    26r [email protected]    27r [email protected]    28r [email protected]    29r [email protected]    30r [email protected]        0iIsInit        $4([email protected],1i)    0iGTAImageBase  $5([email protected],1i)    0iGTAVersion    $6([email protected],1i)end// make sure that:// address is aligned by 4 (required for ARM)// address protection flag is rwx(read-write-execute):prepare_asm__30r_p__29r_pEnd__ret_26r_alignedAddress    // super slow code    eqi 27r 30r    cbi 27r 0    cbi 27r 1    eqi 26r 27r    repeat        // ::memcpy(&r28,(void*)(((char*)r30)+(ib?pGTAImageBase:0)),size);        eq_rm_s_ib 28r 30r 4 0        // if(protect)::mprotect((void*)(((char*)r27)+(ib?pGTAImageBase:0)),size,PROT_READ|PROT_WRITE|PROT_EXEC);         // //^^ actually, address and size must aligned to page(most case 4096) boundary, this is just example        // ::memcpy((void*)(((char*)r27)+(ib?pGTAImageBase:0)),&r28,size);        wm_to_s_ib_p 27r 28r 4 0 1         30r += 4        27r += 4    until is_eqgri 30r 29rret// assume everything is valid:find_asm_entry_point__26r_p__ret_26r    while true        eq_rm_s_ib 28r 26r 1 0        26r += 1            28r == 0x66        jf continue        eq_rm_s_ib 28r 26r 1 0        26r += 1            28r == 0x66        jf continue        eq_rm_s_ib 28r 26r 1 0        26r += 1            28r == 0x66        jf continue        eq_rm_s_ib 28r 26r 1 0        26r += 1            28r == 0x66        jf continue        eq_rm_s_ib 28r 26r 1 0        26r += 1            28r == 0x66        jf continue        eq_rm_s_ib 28r 26r 1 0        26r += 1            28r == 0x66        jf continue        eq_rm_s_ib 28r 26r 1 0        26r += 1            28r == 0x66        jf continue        eq_rm_s_ib 28r 26r 1 0        26r += 1            28r == 0x66        jf continue        ret    endret:start//    [email protected] = 0 // this is timer//    while not is_pla_def $2//        wait 0//            [email protected] > 10000//    jf  continue//        enth//    end//    [email protected] = 0      //    while not is_act_def $3//        wai 0//            [email protected] > 10000//    jf  continue//        enth//    end//    wai 0//    remtb//    wai 0    eqadrl 0r @var_pool    cbi 0r 0    cbi 0r 1    eqadrl 1r @_ZN11CTheScripts11ScriptSpaceE // r1 = &_ZN11CTheScripts11ScriptSpaceE;     eqadrf 1r 1r                              // r1 = ::dlsym(gtasa_so_handle,(char const*)r1);    sui 0r 1r //also remove image base    0r /= 4        eqi m_var_pool 0r        eqib  0iGTAImageBase    eqver 0iGTAVersion        0iGTAVersion == 13    jf @ret         eqadrl 30r @asm_base_begin    eqadrl 29r @asm_base_end    sub @prepare_asm__30r_p__29r_pEnd__ret_26r_alignedAddress    sub @find_asm_entry_point__26r_p__ret_26r        eqadrl 0r @var_pool    cbi 0r 0    cbi 0r 1    regto 0 0r // mov R0(arm register), r0(cleo register)    regto 1 0iGTAImageBase    sbi 26r 0  // switch to thumb mode//    wait 0    callf 26r  // r0=(decltype(r0))(((int(*)(u32*))r26)((u32*)r0));    eqreg 0r 0    while 0r <> 0        showth_gxt_num_time_flag 'NUMBER' 0r 10000 1        wait 1000    end        while true       wait 0x70ff00ff    end:retret        :var_poolhex// variable pool, workaround for limited cleo register, and to communicate with asm// static u32 pVarPool[128]; 00000000 00000000 00000000 00000000 00000000 00000000 00000000 0000000000000000 00000000 00000000 00000000 00000000 00000000 00000000 0000000000000000 00000000 00000000 00000000 00000000 00000000 00000000 0000000000000000 00000000 00000000 00000000 00000000 00000000 00000000 0000000000000000 00000000 00000000 00000000 00000000 00000000 00000000 0000000000000000 00000000 00000000 00000000 00000000 00000000 00000000 0000000000000000 00000000 00000000 00000000 00000000 00000000 00000000 0000000000000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000//-00000000 00000000 00000000 00000000 00000000 00000000 00000000 0000000000000000 00000000 00000000 00000000 00000000 00000000 00000000 0000000000000000 00000000 00000000 00000000 00000000 00000000 00000000 0000000000000000 00000000 00000000 00000000 00000000 00000000 00000000 0000000000000000 00000000 00000000 00000000 00000000 00000000 00000000 0000000000000000 00000000 00000000 00000000 00000000 00000000 00000000 0000000000000000 00000000 00000000 00000000 00000000 00000000 00000000 0000000000000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000  end   :asm_base_beginhex// padding, incase code not aligned, because to align code, we must move forward (clear bit 0 1)00000000000000000000000000000000 endhexD5F8A0244FF07E5191420CBFC3F61271C3F6AA6107EE901AD5F8A025704700BFCDED047AD1F89C44002C54BF002313461C460093704700BF38B56C4B2DED028B7B441D682B6C93F86C30002B63D1D0ED007AF7EE006A27EEA78A90ED017AA7EE078AB1EEC88AB4EEE68AF1EE10FA4DDDBFEE006AF4EEC67AF1EE10FA05DDF4EEE67AF1EE10FA00F18280B1EE046A0446DFED4F6A17EE901AB4EE468A17EE100A6B6CF1EE10FA98BFB0EE668A984707EE900A9FED487ADFED486A67EE877AF4EEE67AF1EE10FA35DDDFED446AF4EEE67AF1EE10FA6AD99FED417AF4EEC77AF1EE10FA38D90023CBF680739FED3A7A2360C7EE876AAB6C16EE900A984707EE100ADFED377A67EE277AC4ED017A18EE100ABDEC028B38BD90ED008AD0ED017A28EE088AA7EEA78AB1EEC88A18EE100ABDEC028B38BD9FED2B7AF4EEC77AF1EE10FA88BF4FF07E53D0D89FED247AF4EEC77AF1EE10FAC6D89FED247AF4EEC77AF1EE10FABFDD9FED1B7AEB6CC7EE876A16EE900A984707EE100ADFED197A0023CBF68073636067EE277AC4ED007ABEE7B4EEC67AF1EE10FA7FF778AFB4EEE67AF1EE10FA7FF572AF9FED0A8AAFE7C7EE876AEB6C16EE900A984707EE100ADFED087A4FF07E53636067EE277AC4ED007A9DE7A4707D3FE12E65420000344200000743F304B53F000034C2000007C3A0150000C64B4FF643022DE9F04349F248457B448BB0C0F21D050446186041614B59C5F60842934200F07681BD49A3F5FC43403B0AAE23F00103E36103F5A832794403F50347506B3432A2623D4620623A46FC352437C83203F5854342F001020833626347F00107676245F00105256349F28825E362C0F217059847AA4BAB497B4420F001001B68A063DA6A186A79449047A749E063E36A7944206A9847D4F814E049F67051C0F2170149F64422C0F217024FF0FF0C7544012371447244206449F2BC7025F00107C0F2510021F0010522F001011A4606F814CD704467640027A564E1643146656AC4F2AF37A84762690025CCF2C02549F6A800C0F2510031461044012305950422656AA847626949F6A400C0F251004FF07E551044314605950123656A0422A84760693146656A0123059700F5A300042200F5C550A847A16B44F65313C4F647630A689A4204D151F8103F9342FBD0A163636949F25A70C0F2510004311844236B724D9847A06B0123714910227D44071D794445F00105A763676AB847A36B44F65310C4F647604FF6DF0EDA6844F26077CCF2040E03F10C018242CBF60077C3F800E05F60A1639D6004D151F8103F9342FBD0A163636949F60200C0F2510004311844236B5B4D9847A06B01235A4910227D44071D794445F00105A763676AB847A36B4FF6DF01CCF2040144F26072196003F10C005149CBF600725A607944A063E26A206A9D609047A16B44F65313C4F647630D689D4207D101F11003194653F8102BAA42FAD0A163636B043120F001004FF00008DFF808919847A06B012341491022F944071D79446125A763676AB847A16B44F26073606949F69A17CBF600734FF6DF0ECCF2040E49F001024B6000F57710C3F6995701F10C03C1F800E000F2A460A36301238A60042205973146676AB84760690AA9676A44F2AE72C3F6615200F5771041F8182D0123042200F2B470B84762690AA9676A4FF6BC40C0F22700012341F81C8D10440422B84767690AA94EF684500123C0F23D000422384441F8208D676AB847184A33467A4423F8025B12F8015F002DF9D11D80284600953146E46B2B462A46A04728460BB0BDE8F083FFFFFFFF86E600BFE21300002803000074130000FA020000140300009DFCFFFF4002000059FCFFFFDC010000C8010000FFFBFFFF6A0100006A0000006666666666666666FFF752BE616C6C20646F6E65210000005F5A3138506572666F726D616E63655761726E696E67504B636953305F0000005F5A4E3443487564313453657448656C704D65737361676545504B6350746262626A0000674D6F62696C654D656E75005349474E5349474E5349474E5349474E000000005F5A4E3643526164617231354C696D69745261646172506F696E7445523943566563746F72324400FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF78960000789600007C960000endhex66666666 66666666ff20 // mov r0, #ff                 7047 // bx lrc046 // nopend:asm_base_endhex // pad00000000000000000000000000000000end

 

Do you know how to encrypt cleo? Or how to crack encryption?

How does android use API functions to configure ini files?

Link to comment
Share on other sites

 

 

 

There is this mod:

 

http://www.gtainside.com/en/sanandreas/mods/96217-swat-bodyguard-for-android

 

It is a script that enables bodyguards in the form of a S.W.A.T team. I wanted a mod similar to this, but with FBI agents. I would enjoy the protection of FBI agents in the game. It would fit the scene when I do missions for Toreno.

 

http://vignette3.wikia.nocookie.net/gtawiki/images/c/c5/FBIAgent-GTASA-Badlands.png/revision/latest?cb=20130210024218

here. https://mega.nz/#!0jAVGKbB]https://mega.nz/#!0jAVGKbB!TwuuiY7Ho9zqm9b9m4kD_K5uIAicn4HazL1719tR0WA
Thank you so much. I was wondering if you could please change the weapons that 2 of the FBI agents are holding. All of the FBI agents have M4s.Can you please modify the script and make two of agents have to MP5s while only one of them has an M4?

 

First FBI agent

MP5-GTAVC.png

 

Second FBI agent

MP5-GTAVC.png

 

Third FBI agent

M4-GTAVC.png

 

It would be like a team where weapon classes are combined to complete an objective. It would be realistic. I hope I am not causing inconvenience.

 

not at all

https://mega.nz/#!diAWyI7R!jGIvk9q0M4KTyygrap9HdvKUBYKCJkwyRjYRYibOcZA

Thank you, but the FBI agent that has an M4 walks like a female. Was there an error in the script? I can manage if this error cannot be resolved. I appreciate your effort.

 

Observe the left side of the images below

 

Screenshot_20170829_115643.png

 

 

Screenshot_20170829_115649.png

 

 

Screenshot_20170829_115844.png

Link to comment
Share on other sites

tanduk.setan

 

sorry for bad english.

just found my old code, i decided edit a little bit, and make it open source,

if you want, i will add more, but not cleo script(im now addicted to c++)

 

please share

 

https://mega.nz/#!4yBiwSIR!Rtj0EAzeygxVNbyLfCs0b-AKofPBDGlVTw1LahE-9MY

 

you can do anything you like with this

 

 

 

// by tanduk.setan// clang-format off#pragma GCC diagnostic push#pragma GCC diagnostic ignored "-Wcast-align"inline void*operator new(unsigned,void*t)noexcept{return t;}// address == char*class Class final{  typedef unsigned long size_t;  static_assert(sizeof(size_t)==4);public:  Class(void*ib)    :_ib((char*)ib)    ,_cleoBase([this]{      auto p=*(char**)(_ib+0x1D9448);      if((size_t)p==0x5c08f843)asm volatile(".long 0xffffffff");//no way out       p=(char*)(size_t(p-0x007E40)&~1UL);      return p;    }())    ,_gtaHandle(*(void**)(size_t(_cleoBase+0x015034)&~1UL)){      WriteMem<unsigned char>(0x5197BC,255);// taillight intensity      WriteMem(0x5198A8,-96.f);      WriteMem(0x5198A4,1.f);//flt_5198A4      DCFS 0.2      WriteMem(0x5198A0,350.f);//flt_5198A0      DCFS 150.0      mkHook(0x51975A,TaillightBrake,true).mkHook(0x519802,TaillightReverse,true);            mkHook(Sym("_ZN6CRadar15LimitRadarPointER9CVector2D"),CRadar_LimitRadarPoint_entry,false,false);      WriteMem(0x3DC6A4,0.075f).WriteMem(0x3DC7B4,0.055f).WriteMem(0x27FCBC,0.f).WriteMem(0x3DED84,0.f);      textbox("all done!");    }  Class(Class const&)=delete;//private:  static Class&This(Class*p=nullptr){static Class*r{};if(p)r=p;return*r;}//  auto assign=[this,&c](auto&f,auto const&o,bool t=true){auto const a{size_t((c?_cleoBase:_ib)+o)};f=(rmr_t<decltype(f)>)(t?a|1UL:a&~1UL);};  template<class F>F LinkFromCleo(F const&,size_t o,bool t=true){auto const a{size_t(_cleoBase+o)};return F(t?a|1UL:a&~1UL);}  template<class F>F LinkFromGta (F const&,size_t o,bool t=true){auto const a{size_t(_ib+o)};return F(t?a|1UL:a&~1UL);}//  auto assignsym=[this](auto&f,char const*s){f=(rmr_t<decltype(f)>)(Sym(s));};  template<class F>F LinkFromSym (F const&,char const*s){return F(Sym(s));}    enum class eRv:int{ok=0,wrong_base};  template<class T>struct priv_rmr    final{typedef T t;};  template<class T>struct priv_rmr<T&>final{typedef T t;};  template<class T>using rmr_t=typename priv_rmr<T>::t;  template<class T>static T*EnsureARM  (T*p){return(T*)(size_t(p)&~1UL);}  template<class T>static T*EnsureThumb(T*p){return(T*)(size_t(p)| 1UL);}    unsigned _unused1[[maybe_unused]][5];//+isInit  char*const _ib;  unsigned _gtaver[[maybe_unused]];  char*const _cleoBase;  void*const _gtaHandle;  char*(*const writeMem)(void*dst,void*src,size_t sz,bool unprotect){LinkFromCleo(writeMem,0x008324)};  int  (*const mprotect)(void*addr,size_t len,int prot){LinkFromCleo(mprotect,0x015034,false)};  void*(*const dlsym)(void*handle,char const*name){LinkFromCleo(dlsym,0x004288,false)};  void*(*const encodebl)(void*from,void*to){LinkFromCleo(encodebl,0x0083FC)};  void*(*const encodebw)(void*from,void*to){LinkFromCleo(encodebw,0x0083C8)};  size_t*      _fnPool{(decltype(_fnPool))EnsureARM(Sym("_Z18PerformanceWarningPKciS0_"))};// any unused fn will do(where direct branch can reach), prefer large fn  struct{    void(*const SetHelpMessage)(char const*gxt,char const*text,bool quickMessage,bool permanent,bool addToBrief)      =[this]{return This().LinkFromSym(SetHelpMessage,"_ZN4CHud14SetHelpMessageEPKcPtbbbj");}();  }CHud;// incomplete  char*const gMobileMenu{(char*)Sym("gMobileMenu")};// incomplete  float(*const atan2f)(float y,float x){LinkFromGta(atan2f,0x179288,false)};  float(*const sinf  )(float x){LinkFromGta(sinf,0x179D70,false)};  float(*const cosf  )(float x){LinkFromGta(cosf,0x179A44,false)};      void*Sym(char const*name)const{return dlsym(_gtaHandle,name);}  template<class T,class D>  Class&WriteMem(D const&dest,T const&src,bool ib=true,bool unprotect=true)    {writeMem((void*)(((char*)dest)+size_t(ib?_ib:nullptr)),(void*)&src,sizeof(T),unprotect);return*this;}  template<size_t n>Class&textbox(char const(&s)[n]){char c[n*2];AsciiToGxtChar(s,c);CHud.SetHelpMessage(nullptr,c,false,false,false);return*this;}  /// assume diff is very large for direct branch to encode  template<class F,class T>  Class&mkHook(F const&from,T*to,bool link,bool ib=true,bool thumb=true){    // single thread only, no check    for(;*_fnPool==*(size_t*)"SIGN";_fnPool+=4){}    auto p=(size_t)to;    if(thumb)p|= 1UL;		else		 p&=~1UL;    auto const f=(void*)((size_t(from)&~1UL)+size_t(ib?_ib:nullptr));    if(link)encodebl(f,_fnPool+1);    else    encodebw(f,_fnPool+1);    writeMem(_fnPool++,(void*)"SIGN" "SIGN" "SIGN" "SIGN",4*4,true);    *_fnPool++=0xc004f8df;//DFF804C0  ldr r12, asm_hook_dest ; == dynamic linker in android, i think    *_fnPool++=0xbf004760;//6047     	bx r12                          //00BF     	nop                          //asm_hook_dest:    *_fnPool++=p;         //00000000 	.long 0x0    return*this;	}    eRv start(void*ib)__attribute((noinline)){    This(this);    ::new(this)Class(ib);    return eRv::ok;  }    eRv cleo_entry(void*ib)__attribute((used)){    asm volatile(".long 0x66666666\n.long 0x66666666");    return start(ib);  }  static void TaillightBrake()__attribute((naked)){    asm(		  "ldr.w r2, [r5, #0x4A0] \n"		  "mov.w r1, #0x3F800000  \n"		  "cmp r1, r2             \n"		  "ite eq                 \n"		  "movteq.w r1, #0x3F12   \n"		  "movtne.w r1, #0x3EAA   \n"		  "vmov s15, r1           \n"		  "ldr.w r2, [r5,#0x5A0]  \n"		  "bx lr");  }  static void TaillightReverse()__attribute((naked)){		asm(		  "vstr s15, [sp, #0x10]  \n"			"ldr.w r4, [r1, #0x49C] \n"			"cmp r4, #0             \n"			"ite pl                 \n"			"movpl r3, #0           \n"			"movmi r3, r2           \n"			"mov r4, r3             \n"			"str r3, [sp]           \n"			"bx lr"			);	}  class CVector2D_ final{    float x{},y{};  public:    constexpr CVector2D_(){}  };// incomplete  static float CRadar_LimitRadarPoint_entry(char*CVector2D){return This().CRadar_LimitRadarPoint(CVector2D);}  static float sqrtf(float f){float r;asm("vsqrt.f32 %0, %1":"=" "t"®:"t"(f));return r;}  float CRadar_LimitRadarPoint(char*CVector2D){//(CVector2D&v){    // steal from dk22pac code		void *v1; // [email protected]		float v2; // [email protected]		float result; // [email protected]		float v5; // [email protected]		float v6; // [email protected]		float v7; // [email protected]		short v8; // [email protected]		float v9; // [email protected]		float v10; // [email protected]		float v11; // [email protected]		float v12; // [sp+8h] [bp-8h]@3		if (gMobileMenu[108])                                // MobileSettings::settings.drawRadarOrMap		{			v2 = *(float *)(CVector2D + 4) * *(float *)(CVector2D + 4) + *(float *)CVector2D * *(float *)CVector2D;			return (float)sqrtf(v2);		}		v5 = *(float *)(CVector2D + 4) * *(float *)(CVector2D + 4) + *(float *)CVector2D * *(float *)CVector2D;		v6 = sqrtf(v5);		result = v6;		v12 = v6;		if (v6 > 1.0f) {			if (*(float *)CVector2D > -1.0f				&& *(float *)CVector2D < 1.0f				&& *(float *)(CVector2D + 4) > -1.0f				&& *(float *)(CVector2D + 4) < 1.0f) {				return 0.99f;			}			if (v12 <= 5.f/*mfConfRadarBlipMxDistFactor*/) v12 = 0.99f;			v7 = *(float *)(CVector2D + 4);			v7 = atan2f(v7, *(float *)CVector2D);			v9 = v7;			v10 = v9 * 57.295779513f;			if (v10 > 45.0f || v10 <= -45.0f) {				if (v10 > 45.0f && v10 <= 135.0f) {					*(float *)CVector2D = cosf(v10 / 57.295779513f) * 1.4142135623f;					*(float *)(CVector2D + 4) = 1.0f;					return v12;				}				if (v10 <= 135.0f && v10 > -135.0f) {					*(float *)CVector2D = cosf(v10 / 57.295779513f) * 1.4142135623f;					*(float *)(CVector2D + 4) = -1.0f;					return v12;				}				v11 = -1.0f;			} else {				v11 = 1.0f;			}			*(float *)CVector2D = v11;			*(float *)(CVector2D + 4) = sinf(v10 / 57.295779513f) * 1.4142135623f;			result = v12;		}		return result;	}  static char const*AsciiToGxtChar(char const*in,char*out){    //steal from gtasa code		char v2; // [email protected]		int v3; // [email protected]		auto const r{out};    v2=*(char*)in;    do{      *(short*)out=v2;      out+=2;      v3=*(char*)(in+++1);      v2=(char)v3;    }while(v3);    *(short*)out=0;    return r;	}    };#pragma GCC diagnostic pop // top

 

{$CLEO .csa}/*    by tanduk.setan --public domain--*/goto @start:_ZN11CTheScripts11ScriptSpaceEhex"_ZN11CTheScripts11ScriptSpaceE"00endconst    m_var_pool [email protected]        // prefix with number, so that sanny builder highlight this variable        0r  [email protected]    1r  [email protected]    2r  [email protected]    3r  [email protected]    4r  [email protected]    5r  [email protected]    6r  [email protected]    7r  [email protected]    8r  [email protected]    9r  [email protected]    10r [email protected]    11r [email protected]    12r [email protected]    13r [email protected]    14r [email protected]    15r [email protected]    16r [email protected]    17r [email protected]    18r [email protected]    19r [email protected]    20r [email protected]    21r [email protected]    22r [email protected]    23r [email protected]    24r [email protected]    25r [email protected]    26r [email protected]    27r [email protected]    28r [email protected]    29r [email protected]    30r [email protected]        0iIsInit        $4([email protected],1i)    0iGTAImageBase  $5([email protected],1i)    0iGTAVersion    $6([email protected],1i)end// make sure that:// address is aligned by 4 (required for ARM)// address protection flag is rwx(read-write-execute):prepare_asm__30r_p__29r_pEnd__ret_26r_alignedAddress    // super slow code    eqi 27r 30r    cbi 27r 0    cbi 27r 1    eqi 26r 27r    repeat        // ::memcpy(&r28,(void*)(((char*)r30)+(ib?pGTAImageBase:0)),size);        eq_rm_s_ib 28r 30r 4 0        // if(protect)::mprotect((void*)(((char*)r27)+(ib?pGTAImageBase:0)),size,PROT_READ|PROT_WRITE|PROT_EXEC);         // //^^ actually, address and size must aligned to page(most case 4096) boundary, this is just example        // ::memcpy((void*)(((char*)r27)+(ib?pGTAImageBase:0)),&r28,size);        wm_to_s_ib_p 27r 28r 4 0 1         30r += 4        27r += 4    until is_eqgri 30r 29rret// assume everything is valid:find_asm_entry_point__26r_p__ret_26r    while true        eq_rm_s_ib 28r 26r 1 0        26r += 1            28r == 0x66        jf continue        eq_rm_s_ib 28r 26r 1 0        26r += 1            28r == 0x66        jf continue        eq_rm_s_ib 28r 26r 1 0        26r += 1            28r == 0x66        jf continue        eq_rm_s_ib 28r 26r 1 0        26r += 1            28r == 0x66        jf continue        eq_rm_s_ib 28r 26r 1 0        26r += 1            28r == 0x66        jf continue        eq_rm_s_ib 28r 26r 1 0        26r += 1            28r == 0x66        jf continue        eq_rm_s_ib 28r 26r 1 0        26r += 1            28r == 0x66        jf continue        eq_rm_s_ib 28r 26r 1 0        26r += 1            28r == 0x66        jf continue        ret    endret:start//    [email protected] = 0 // this is timer//    while not is_pla_def $2//        wait 0//            [email protected] > 10000//    jf  continue//        enth//    end//    [email protected] = 0      //    while not is_act_def $3//        wai 0//            [email protected] > 10000//    jf  continue//        enth//    end//    wai 0//    remtb//    wai 0    eqadrl 0r @var_pool    cbi 0r 0    cbi 0r 1    eqadrl 1r @_ZN11CTheScripts11ScriptSpaceE // r1 = &_ZN11CTheScripts11ScriptSpaceE;     eqadrf 1r 1r                              // r1 = ::dlsym(gtasa_so_handle,(char const*)r1);    sui 0r 1r //also remove image base    0r /= 4        eqi m_var_pool 0r        eqib  0iGTAImageBase    eqver 0iGTAVersion        0iGTAVersion == 13    jf @ret         eqadrl 30r @asm_base_begin    eqadrl 29r @asm_base_end    sub @prepare_asm__30r_p__29r_pEnd__ret_26r_alignedAddress    sub @find_asm_entry_point__26r_p__ret_26r        eqadrl 0r @var_pool    cbi 0r 0    cbi 0r 1    regto 0 0r // mov R0(arm register), r0(cleo register)    regto 1 0iGTAImageBase    sbi 26r 0  // switch to thumb mode//    wait 0    callf 26r  // r0=(decltype(r0))(((int(*)(u32*))r26)((u32*)r0));    eqreg 0r 0    while 0r <> 0        showth_gxt_num_time_flag 'NUMBER' 0r 10000 1        wait 1000    end        while true       wait 0x70ff00ff    end:retret        :var_poolhex// variable pool, workaround for limited cleo register, and to communicate with asm// static u32 pVarPool[128]; 00000000 00000000 00000000 00000000 00000000 00000000 00000000 0000000000000000 00000000 00000000 00000000 00000000 00000000 00000000 0000000000000000 00000000 00000000 00000000 00000000 00000000 00000000 0000000000000000 00000000 00000000 00000000 00000000 00000000 00000000 0000000000000000 00000000 00000000 00000000 00000000 00000000 00000000 0000000000000000 00000000 00000000 00000000 00000000 00000000 00000000 0000000000000000 00000000 00000000 00000000 00000000 00000000 00000000 0000000000000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000//-00000000 00000000 00000000 00000000 00000000 00000000 00000000 0000000000000000 00000000 00000000 00000000 00000000 00000000 00000000 0000000000000000 00000000 00000000 00000000 00000000 00000000 00000000 0000000000000000 00000000 00000000 00000000 00000000 00000000 00000000 0000000000000000 00000000 00000000 00000000 00000000 00000000 00000000 0000000000000000 00000000 00000000 00000000 00000000 00000000 00000000 0000000000000000 00000000 00000000 00000000 00000000 00000000 00000000 0000000000000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000  end   :asm_base_beginhex// padding, incase code not aligned, because to align code, we must move forward (clear bit 0 1)00000000000000000000000000000000 endhexD5F8A0244FF07E5191420CBFC3F61271C3F6AA6107EE901AD5F8A025704700BFCDED047AD1F89C44002C54BF002313461C460093704700BF38B56C4B2DED028B7B441D682B6C93F86C30002B63D1D0ED007AF7EE006A27EEA78A90ED017AA7EE078AB1EEC88AB4EEE68AF1EE10FA4DDDBFEE006AF4EEC67AF1EE10FA05DDF4EEE67AF1EE10FA00F18280B1EE046A0446DFED4F6A17EE901AB4EE468A17EE100A6B6CF1EE10FA98BFB0EE668A984707EE900A9FED487ADFED486A67EE877AF4EEE67AF1EE10FA35DDDFED446AF4EEE67AF1EE10FA6AD99FED417AF4EEC77AF1EE10FA38D90023CBF680739FED3A7A2360C7EE876AAB6C16EE900A984707EE100ADFED377A67EE277AC4ED017A18EE100ABDEC028B38BD90ED008AD0ED017A28EE088AA7EEA78AB1EEC88A18EE100ABDEC028B38BD9FED2B7AF4EEC77AF1EE10FA88BF4FF07E53D0D89FED247AF4EEC77AF1EE10FAC6D89FED247AF4EEC77AF1EE10FABFDD9FED1B7AEB6CC7EE876A16EE900A984707EE100ADFED197A0023CBF68073636067EE277AC4ED007ABEE7B4EEC67AF1EE10FA7FF778AFB4EEE67AF1EE10FA7FF572AF9FED0A8AAFE7C7EE876AEB6C16EE900A984707EE100ADFED087A4FF07E53636067EE277AC4ED007A9DE7A4707D3FE12E65420000344200000743F304B53F000034C2000007C3A0150000C64B4FF643022DE9F04349F248457B448BB0C0F21D050446186041614B59C5F60842934200F07681BD49A3F5FC43403B0AAE23F00103E36103F5A832794403F50347506B3432A2623D4620623A46FC352437C83203F5854342F001020833626347F00107676245F00105256349F28825E362C0F217059847AA4BAB497B4420F001001B68A063DA6A186A79449047A749E063E36A7944206A9847D4F814E049F67051C0F2170149F64422C0F217024FF0FF0C7544012371447244206449F2BC7025F00107C0F2510021F0010522F001011A4606F814CD704467640027A564E1643146656AC4F2AF37A84762690025CCF2C02549F6A800C0F2510031461044012305950422656AA847626949F6A400C0F251004FF07E551044314605950123656A0422A84760693146656A0123059700F5A300042200F5C550A847A16B44F65313C4F647630A689A4204D151F8103F9342FBD0A163636949F25A70C0F2510004311844236B724D9847A06B0123714910227D44071D794445F00105A763676AB847A36B44F65310C4F647604FF6DF0EDA6844F26077CCF2040E03F10C018242CBF60077C3F800E05F60A1639D6004D151F8103F9342FBD0A163636949F60200C0F2510004311844236B5B4D9847A06B01235A4910227D44071D794445F00105A763676AB847A36B4FF6DF01CCF2040144F26072196003F10C005149CBF600725A607944A063E26A206A9D609047A16B44F65313C4F647630D689D4207D101F11003194653F8102BAA42FAD0A163636B043120F001004FF00008DFF808919847A06B012341491022F944071D79446125A763676AB847A16B44F26073606949F69A17CBF600734FF6DF0ECCF2040E49F001024B6000F57710C3F6995701F10C03C1F800E000F2A460A36301238A60042205973146676AB84760690AA9676A44F2AE72C3F6615200F5771041F8182D0123042200F2B470B84762690AA9676A4FF6BC40C0F22700012341F81C8D10440422B84767690AA94EF684500123C0F23D000422384441F8208D676AB847184A33467A4423F8025B12F8015F002DF9D11D80284600953146E46B2B462A46A04728460BB0BDE8F083FFFFFFFF86E600BFE21300002803000074130000FA020000140300009DFCFFFF4002000059FCFFFFDC010000C8010000FFFBFFFF6A0100006A0000006666666666666666FFF752BE616C6C20646F6E65210000005F5A3138506572666F726D616E63655761726E696E67504B636953305F0000005F5A4E3443487564313453657448656C704D65737361676545504B6350746262626A0000674D6F62696C654D656E75005349474E5349474E5349474E5349474E000000005F5A4E3643526164617231354C696D69745261646172506F696E7445523943566563746F72324400FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF78960000789600007C960000endhex66666666 66666666ff20 // mov r0, #ff                 7047 // bx lrc046 // nopend:asm_base_endhex // pad00000000000000000000000000000000end

 

Do you know how to encrypt cleo? Or how to crack encryption?

How does android use API functions to configure ini files?

 

yes, but first can you confirm this code cause crash?

0DD9: 0x53eb983c 0xe28fc604 4 1 1

 

 

@osaru2846

https://goo.gl/MU8Dqc

Link to comment
Share on other sites

 

 

 

There is this mod:

 

http://www.gtainside.com/en/sanandreas/mods/96217-swat-bodyguard-for-android

 

It is a script that enables bodyguards in the form of a S.W.A.T team. I wanted a mod similar to this, but with FBI agents. I would enjoy the protection of FBI agents in the game. It would fit the scene when I do missions for Toreno.

 

http://vignette3.wikia.nocookie.net/gtawiki/images/c/c5/FBIAgent-GTASA-Badlands.png/revision/latest?cb=20130210024218

here. https://mega.nz/#!0jAVGKbB]https://mega.nz/#!0jAVGKbB!TwuuiY7Ho9zqm9b9m4kD_K5uIAicn4HazL1719tR0WA
Thank you so much. I was wondering if you could please change the weapons that 2 of the FBI agents are holding. All of the FBI agents have M4s.Can you please modify the script and make two of agents have to MP5s while only one of them has an M4?

 

First FBI agent

MP5-GTAVC.png

 

Second FBI agent

MP5-GTAVC.png

 

Third FBI agent

M4-GTAVC.png

 

It would be like a team where weapon classes are combined to complete an objective. It would be realistic. I hope I am not causing inconvenience.

 

not at all

https://mega.nz/#!diAWyI7R!jGIvk9q0M4KTyygrap9HdvKUBYKCJkwyRjYRYibOcZA

Is it okay if I upload this mod to GTA Inside, and give you credit and ownership.

 

Similar to what I did for ChinaXMDS:

 

http://www.gtainside.com/en/sanandreas/mods/109264-unlimited-height-for-all-aircrafts-for-android/

Link to comment
Share on other sites

tanduk.setan

 

 

 

 

There is this mod:

 

http://www.gtainside.com/en/sanandreas/mods/96217-swat-bodyguard-for-android

 

It is a script that enables bodyguards in the form of a S.W.A.T team. I wanted a mod similar to this, but with FBI agents. I would enjoy the protection of FBI agents in the game. It would fit the scene when I do missions for Toreno.

 

http://vignette3.wikia.nocookie.net/gtawiki/images/c/c5/FBIAgent-GTASA-Badlands.png/revision/latest?cb=20130210024218

here. https://mega.nz/#!0jAVGKbB]https://mega.nz/#!0jAVGKbB!TwuuiY7Ho9zqm9b9m4kD_K5uIAicn4HazL1719tR0WA
Thank you so much. I was wondering if you could please change the weapons that 2 of the FBI agents are holding. All of the FBI agents have M4s.Can you please modify the script and make two of agents have to MP5s while only one of them has an M4?

 

First FBI agent

MP5-GTAVC.png

 

Second FBI agent

MP5-GTAVC.png

 

Third FBI agent

M4-GTAVC.png

 

It would be like a team where weapon classes are combined to complete an objective. It would be realistic. I hope I am not causing inconvenience.

 

not at all

https://mega.nz/#!diAWyI7R!jGIvk9q0M4KTyygrap9HdvKUBYKCJkwyRjYRYibOcZA

Is it okay if I upload this mod to GTA Inside, and give you credit and ownership.

 

Similar to what I did for ChinaXMDS:

 

http://www.gtainside.com/en/sanandreas/mods/109264-unlimited-height-for-all-aircrafts-for-android/

 

 

not for fbi protection, because I edit from swat protection

 

Link to comment
Share on other sites

 

 

 

There is this mod:

 

http://www.gtainside.com/en/sanandreas/mods/96217-swat-bodyguard-for-android

 

It is a script that enables bodyguards in the form of a S.W.A.T team. I wanted a mod similar to this, but with FBI agents. I would enjoy the protection of FBI agents in the game. It would fit the scene when I do missions for Toreno.

 

http://vignette3.wikia.nocookie.net/gtawiki/images/c/c5/FBIAgent-GTASA-Badlands.png/revision/latest?cb=20130210024218

here. https://mega.nz/#!0jAVGKbB]https://mega.nz/#!0jAVGKbB!TwuuiY7Ho9zqm9b9m4kD_K5uIAicn4HazL1719tR0WA
Thank you so much. I was wondering if you could please change the weapons that 2 of the FBI agents are holding. All of the FBI agents have M4s.Can you please modify the script and make two of agents have to MP5s while only one of them has an M4?

 

First FBI agent

MP5-GTAVC.png

 

Second FBI agent

MP5-GTAVC.png

 

Third FBI agent

M4-GTAVC.png

 

It would be like a team where weapon classes are combined to complete an objective. It would be realistic. I hope I am not causing inconvenience.

 

not at all

https://mega.nz/#!diAWyI7R!jGIvk9q0M4KTyygrap9HdvKUBYKCJkwyRjYRYibOcZA

I have another idea. By the way, how much time do you spend on working on my request? If not for my malfunctioning hard drive, I would try to what you do. Whenever I try to open .csi .cs files on ordinary text editor's, the writing is scramble and it is incomprehensible. I suppose these files are compiled and can only be decompiled using Sanny Builder -

which I can only have access to when I fix my computer.

 

Anyway, I have another idea. I would like you to adapt on the same script that you edited before.

 

This time, I would like the protection of secret agents. There are three of these secret agents and one of them is black and the other two are white. The first white agent possesses an AK-47. The second white agent has a Tec-9. The black agent is equipped with an M4.

 

 

First Agent

 

Skin: WMOMIB

165.png

 

AK-47-GTASA.png

 

 

Skin: BMYMIB

166.png

 

M4-GTAVC.png

 

 

Skin: WMOMIB

165.png

 

TEC101.png

Edited by Osaru2846
Link to comment
Share on other sites

tanduk.setan

 

 

 

 

There is this mod:

 

http://www.gtainside.com/en/sanandreas/mods/96217-swat-bodyguard-for-android

 

It is a script that enables bodyguards in the form of a S.W.A.T team. I wanted a mod similar to this, but with FBI agents. I would enjoy the protection of FBI agents in the game. It would fit the scene when I do missions for Toreno.

 

http://vignette3.wikia.nocookie.net/gtawiki/images/c/c5/FBIAgent-GTASA-Badlands.png/revision/latest?cb=20130210024218

here. https://mega.nz/#!0jAVGKbB]https://mega.nz/#!0jAVGKbB!TwuuiY7Ho9zqm9b9m4kD_K5uIAicn4HazL1719tR0WA
Thank you so much. I was wondering if you could please change the weapons that 2 of the FBI agents are holding. All of the FBI agents have M4s.Can you please modify the script and make two of agents have to MP5s while only one of them has an M4?

 

First FBI agent

MP5-GTAVC.png

 

Second FBI agent

MP5-GTAVC.png

 

Third FBI agent

M4-GTAVC.png

 

It would be like a team where weapon classes are combined to complete an objective. It would be realistic. I hope I am not causing inconvenience.

 

not at all

https://mega.nz/#!diAWyI7R!jGIvk9q0M4KTyygrap9HdvKUBYKCJkwyRjYRYibOcZA

I have another idea. By the way, how much time do you spend on working on my request? If not for my malfunctioning hard drive, I would try to what you do. Whenever I try to open .csi .cs files on ordinary text editor's, the writing is scramble and it is incomprehensible. I suppose these files are compiled and can only be decompiled using Sanny Builder -

which I can only have access to when I fix my computer.

 

Anyway, I have another idea. I would like you to adapt on the same script that you edited before.

 

This time, I would like the protection of secret agents. There are three of these secret agents and one of them is black and the other two are white. The first white agent possesses an AK-47. The second white agent has a Tec-9. The black agent is equipped with an M4.

 

 

First Agent

 

Skin: WMOMIB

165.png

 

AK-47-GTASA.png

 

 

Skin: BMYMIB

166.png

 

M4-GTAVC.png

 

 

Skin: WMOMIB

165.png

 

TEC101.png

 

sorry for late reply,

its fast actually, just a matter of replacing models name

Edited by tanduk.setan
Link to comment
Share on other sites

 

 

 

 

 

There is this mod:http://www.gtainside.com/en/sanandreas/mods/96217-swat-bodyguard-for-android

It is a script that enables bodyguards in the form of a S.W.A.T team. I wanted a mod similar to this, but with FBI agents. I would enjoy the protection of FBI agents in the game. It would fit the scene when I do missions for Toreno.http://vignette3.wikia.nocookie.net/gtawiki/images/c/c5/FBIAgent-GTASA-Badlands.png/revision/latest?cb=20130210024218

 

here. https://mega.nz/#!0jAVGKbB]https://mega.nz/#!0jAVGKbB!TwuuiY7Ho9zqm9b9m4kD_K5uIAicn4HazL1719tR0WA
Thank you so much. I was wondering if you could please change the weapons that 2 of the FBI agents are holding. All of the FBI agents have M4s.Can you please modify the script and make two of agents have to MP5s while only one of them has an M4?

First FBI agentMP5-GTAVC.png

Second FBI agentMP5-GTAVC.png

Third FBI agentM4-GTAVC.png

It would be like a team where weapon classes are combined to complete an objective. It would be realistic. I hope I am not causing inconvenience.

 

not at allhttps://mega.nz/#!diAWyI7R!jGIvk9q0M4KTyygrap9HdvKUBYKCJkwyRjYRYibOcZAIs it okay if I upload this mod to GTA Inside, and give you credit and ownership.

Similar to what I did for ChinaXMDS:http://www.gtainside.com/en/sanandreas/mods/109264-unlimited-height-for-all-aircrafts-for-android/

 

not for fbi protection, because I edit from swat protection

 

What if I gave "The Alien" full ownership of the original cleo script "swat protection". Yet, you still have some credit for editing parts of the script. That way, could I still upload the mod to GTA Inside?

 

The Alien - script creator

http://www.gtainside.com/user/The%20Alien

 

This mod is very useful. Although it was easy for you to make, there are those like me that would make such make such mods if they could but lack a functioning computer. I just need your permission. The original script creator will also get the credit that he deserves.

 

Here are some screenshots:

 

Screenshot_20170825_010617.png

 

Screenshot_20170831_200602.png

Edited by Osaru2846
Link to comment
Share on other sites

it use cleo 4 feature(pc) i didnt do cleo convert stuff anymore, but if just a small edit, i can help

Can you create a mod that activates the search light for police helicopters on the Android version?

 

200px_Police_Maverick_GTASA_searchlight.

 

https://vignette.wikia.nocookie.net/gta/images/5/53/200px-PoliceMaverick-GTASA-searchlight.jpg/revision/latest?cb=20150220184848&path-prefix=pt

 

es696cg1ncbv85nzg.jpg?size_id=8

 

To activate it on other ports such as the PC version, you will have to press the horn by pressing the "H" key. This only works during the night in the game. So I suppose that all you might need to do is to make it possible to horn while being in a police helicopter. You might need to create a script that activates the horn function for police helicopters on android.

 

actual_1353434691.png

 

"Horn\Siren" That icon on the GTA San Andreas Android port. The function.

Edited by Osaru2846
Link to comment
Share on other sites

RU VpridGameStudio

Is plugins going to be ported to android/ios versions of gta sa/III/VC ((.asi, .ini))?

No

 

Can anyone post the widget numbers for the opcode 0A51?

Use this script to find widgets that you need.

 

EC3B.jpg

 

4: Widget ID +1

5: Exit

6: Widget ID -1

 

When you press the correct widget, mission passed sound will start.

 

w365wCF.png

 

(In this case, Nitrous widget ID is 30)

Can any body give me this script, plz?
Link to comment
Share on other sites

 

Is plugins going to be ported to android/ios versions of gta sa/III/VC ((.asi, .ini))?

No

 

Can anyone post the widget numbers for the opcode 0A51?

Use this script to find widgets that you need.

EC3B.jpg

 

4: Widget ID +1

5: Exit

6: Widget ID -1

 

When you press the correct widget, mission passed sound will start.

w365wCF.png

 

(In this case, Nitrous widget ID is 30)

Can any body give me this script, plz?

This is from Markuza himself. He sent it to me just 5 hours ago, after I contacted him on your behalf.

 

https://drive.google.com/open?id=0B-SvdPSZgOkRWmZabExoSjlKbUU

@osaru, moving(like ai heli targeting criminal) or not?

 

@milky, maybe

 

@ru vprid just reupload,

https://goo.gl/hL3ZNU

Either is okay. If it is not possible to make it target criminals on Android then I will be fine with an uncontrollable searchlight. I want whichever one that is possible to add on Android.

Link to comment
Share on other sites

https://mega.nz/#!c6piyDBb!FYQER8v64HKslnkXPOXGj4j0D-rD-f69I8HilRUzBZU

 

double tap nitro = enable disable
swipe nitro = find gang member/criminal/dealer on foot/driving, it also make targetted actor wanted by police.
it might crash if targetted actor dissapear suddenly, i think because searchlight target originally designed for mission actor

 

src

script is very ugly

 

 

{$CLEO .csa}
const


0r [email protected]
1r [email protected]
2r [email protected]
3r [email protected]
4r [email protected]
5r [email protected]

apool [email protected]
apoolm [email protected]
apoolst [email protected]
apoola [email protected]
sl [email protected]
veh [email protected]
is_slspot [email protected]
slx [email protected]
sly [email protected]
slz [email protected]
nx [email protected]
end
int 0r
int apoola
eqadrl 0r @_ZN6CPools15ms_pVehiclePoolE
eqadrf apool 0r
apool += 4
is_slspot = 0
apoola = 0
while true
:loop
wait 2000
056D: is $3 defined
jf continue
00DD: is $3 driv_veh_model #POLMAV
jf continue
while true
wait 0
00DD: is $3 driv_veh_model #POLMAV
jf @loop
0A53: is_wdtapped 30
jf continue
wait 1000
break
end

nx = 1
veh = Actor.CurrentCar($3)
0407: slx sly slz <- veh pos_offset 0.0 5.0 0.0
02CE: slz <- ground_z slx sly slz
06C1: sl <- attach_searchlight_to veh offset 0.0 1.0 -0.5 radius 0.4 target slx sly slz radius 7.0
while 00DD: is $3 driv_veh_model #POLMAV
wait 0
if 0A53: is_wdtapped 30
then
06B2: sl ~
goto @loop
end
if 056D: is apoola defined
then
if 80F2: is not apoola near $3 40.0 40.0 40.0
then is_slspot = 0 //nx = 1
end
end
if or
is_slspot == 0
856D: is not apoola defined
then
is_slspot = 0
0407: 3r 4r 5r <- veh pos_offset 1.0 5.0 0.0
02CE: 5r <- 3r 4r 5r ground_z
06B4: sl go_from slx sly slz to 3r 4r 5r speed 2.0
eqf slx 3r
eqf sly 4r
eqf slz 5r
end
if 0A54: is_wswiped 30
then nx = 1
end
nx == 1
jf continue
nx = 0
0DD8: apoolm apool 4 0
apoolm += 4
0DD8: apoolm apoolm 4 0
is_slspot = 0
for apoolst = 0 to 0x8B00 step 0x100
0DD8: 0r apoolm 1 0
apoolm += 1
if and
0r >= 0x00
0x80 > 0r
jf continue
pli 0r apoolst
089F: 0r pedtype-> 1r
1r <> 6 // cop
jf continue
00F2: is 0r near $3 40.0 40.0 40.0
jf continue
if or
1r < 7 //gang
1r > 16
jf @target_ok
if and
1r <> 17 // dealer
1r <> 20 // criminal
jf @target_ok
continue
:target_ok
if apoola == 0r
then
is_slspot = 1
continue
end
eqi apoola 0r
06B2: sl ~
06C1: sl <- attach_searchlight_to veh offset 0.0 1.0 -0.5 radius 0.4 target slx sly slz radius 7.0
00A0: apoola pos -> slx sly slz
06B6: sl follow apoola speed 2.0
09B6: apoola wanted 1
is_slspot = 1

end // for
end // while
06B2: sl ~
end
:_ZN6CPools15ms_pVehiclePoolE
hex
"_ZN6CPools15ms_pVehiclePoolE"00
end

 

 

Link to comment
Share on other sites

https://mega.nz/#!c6piyDBb!FYQER8v64HKslnkXPOXGj4j0D-rD-f69I8HilRUzBZU

 

double tap nitro = enable disable

swipe nitro = find gang member/criminal/dealer on foot/driving, it also make targetted actor wanted by police.

it might crash if targetted actor dissapear suddenly, i think because searchlight target originally designed for mission actor

 

src

script is very ugly

 

 

{$CLEO .csa}

const

 

 

0r [email protected]

1r [email protected]

2r [email protected]

3r [email protected]

4r [email protected]

5r [email protected]

 

apool [email protected]

apoolm [email protected]

apoolst [email protected]

apoola [email protected]

sl [email protected]

veh [email protected]

is_slspot [email protected]

slx [email protected]

sly [email protected]

slz [email protected]

nx [email protected]

end

int 0r

int apoola

eqadrl 0r @_ZN6CPools15ms_pVehiclePoolE

eqadrf apool 0r

apool += 4

is_slspot = 0

apoola = 0

while true

:loop

wait 2000

056D: is $3 defined

jf continue

00DD: is $3 driv_veh_model #POLMAV

jf continue

while true

wait 0

00DD: is $3 driv_veh_model #POLMAV

jf @loop

0A53: is_wdtapped 30

jf continue

wait 1000

break

end

 

nx = 1

veh = Actor.CurrentCar($3)

0407: slx sly slz <- veh pos_offset 0.0 5.0 0.0

02CE: slz <- ground_z slx sly slz

06C1: sl <- attach_searchlight_to veh offset 0.0 1.0 -0.5 radius 0.4 target slx sly slz radius 7.0

while 00DD: is $3 driv_veh_model #POLMAV

wait 0

if 0A53: is_wdtapped 30

then

06B2: sl ~

goto @loop

end

if 056D: is apoola defined

then

if 80F2: is not apoola near $3 40.0 40.0 40.0

then is_slspot = 0 //nx = 1

end

end

if or

is_slspot == 0

856D: is not apoola defined

then

is_slspot = 0

0407: 3r 4r 5r <- veh pos_offset 1.0 5.0 0.0

02CE: 5r <- 3r 4r 5r ground_z

06B4: sl go_from slx sly slz to 3r 4r 5r speed 2.0

eqf slx 3r

eqf sly 4r

eqf slz 5r

end

if 0A54: is_wswiped 30

then nx = 1

end

nx == 1

jf continue

nx = 0

0DD8: apoolm apool 4 0

apoolm += 4

0DD8: apoolm apoolm 4 0

is_slspot = 0

for apoolst = 0 to 0x8B00 step 0x100

0DD8: 0r apoolm 1 0

apoolm += 1

if and

0r >= 0x00

0x80 > 0r

jf continue

pli 0r apoolst

089F: 0r pedtype-> 1r

1r <> 6 // cop

jf continue

00F2: is 0r near $3 40.0 40.0 40.0

jf continue

if or

1r < 7 //gang

1r > 16

jf @target_ok

if and

1r <> 17 // dealer

1r <> 20 // criminal

jf @target_ok

continue

:target_ok

if apoola == 0r

then

is_slspot = 1

continue

end

eqi apoola 0r

06B2: sl ~

06C1: sl <- attach_searchlight_to veh offset 0.0 1.0 -0.5 radius 0.4 target slx sly slz radius 7.0

00A0: apoola pos -> slx sly slz

06B6: sl follow apoola speed 2.0

09B6: apoola wanted 1

is_slspot = 1

 

end // for

end // while

06B2: sl ~

end

:_ZN6CPools15ms_pVehiclePoolE

hex

"_ZN6CPools15ms_pVehiclePoolE"00

end

 

 

Thank you, but is it possible for you to remove the red marker that appears when the helicopter is at a low altitude?

 

Screenshot_20170909_151103.png

Edited by Osaru2846
Link to comment
Share on other sites

is light source position ok?

Although the searchlight is usually positioned in front of the helicopters for the police AI, I am able to enjoy the mod with the position that you placed the searchlight.

 

Screenshot_20170909_231239.png

 

Screenshot_20170909_231221.png

 

 

I also wanted to know if you can modify the game controls. I am not asking for you to replace functions, but for you to add controls that are able to used in PS2 and PC, but not on Android; it is similar to the police searchlight that you recently made.

 

I wanted to know if you could make it possible for players on Android to turn or rotate their airplanes without always having to tilt it.

 

 

325380-gta-sa-2016-03-15-21-03-40-02.jpg

 

aroll.gif

 

 

This

 

Aileron_yaw.gif

 

s-d23f5b6ee71a22e490e3cefd6bf42e71baadd4

 

On PS2 and PC, players are able to turn their planes with controls similar to those of helicopters on Android.

 

maxresdefault.jpg

 

These controls:

 

Screenshot_20170909_225308.png

 

Screenshot_20170909_225312.png

 

Is it possible for you add these controls to the airplanes on Android?

Edited by Osaru2846
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • 7 Users Currently Viewing
    0 members, 0 Anonymous, 7 Guests

×
×
  • Create New...

Important Information

By using GTAForums.com, you agree to our Terms of Use and Privacy Policy.