GTA: Modification Area

A website for the GTA modding scene

Search
 
 

Display results as :
 


Rechercher Advanced Search

Latest topics
» Big-game starts raising Schneider's profile
Sun Mar 04, 2012 2:28 am by lavivi

» [Help] cleo created lighting
Thu Oct 14, 2010 1:03 am by findmy012

» Mission Question
Thu Oct 14, 2010 1:02 am by findmy012

» [IV] Spoiler Script
Thu Oct 14, 2010 1:02 am by findmy012

» Mission mod [help]
Sat Sep 18, 2010 5:50 pm by jayd00

» Bc7 Mod Help
Fri Aug 20, 2010 11:19 am by pengpeng

» Found a bug
Fri Dec 18, 2009 4:22 am by _CJ360_

» [IV] Novitec Rosso 599 GTB
Tue Nov 17, 2009 4:22 pm by Kotton

» Hello/Guidance Request
Mon Oct 12, 2009 6:45 am by Adler

Navigation
 Portal
 Index
 Memberlist
 Profile
 FAQ
 Search
Affiliates
image

Image

Image

Image

Image

Image

Image

Image

Image

Image

image

Image

steve-m.com

Image


----- Русский -----

Если ваш сайт содержит большую коллекцию SCM/CLEO-скриптов (больше 16), напишите на мой e-mail, и я добавлю его в список. Приветствуются скрипты, которые не встречаются на других сайтах ... Спасибо. ))))


----- English -----

If your website has a big enough collection of SCM/CLEO scripts (more than 16) notify me by e-mail
, and I will add it to the list. The unique scripts are preferable ... Thank you. ))))

Log in

I forgot my password



December 2016
MonTueWedThuFriSatSun
   1234
567891011
12131415161718
19202122232425
262728293031 

Calendar Calendar


You are not connected. Please login or register

Вот код изменения GXT в run-time

View previous topic View next topic Go down  Message [Page 1 of 1]



Вот код изменения GXT в run-time. От комментирую позже.
Пара замечаний: массив строк (0900) должен оканчиваться на метку (даже пустую), максимум изменяемых строк таким способом равно 31 (по числу локальных переменных). После запуска этой подпрограммы, ключи из GXT используются как обычно; текст не должен оканчиваться на пробел (не знаю почему).

Процедура полностью автономная, все что нужно менять это 1) сами строки, 2) массив меток 3) в цикле while число (31@ < 24), оно равно числу элементов массива * 2.

Чтобы строки отображались не в верхнем регистре, а как написаны, переключите форматирование в опциях санника на 'Как есть' ('As is'). Grin Smile



Code:

// ----------------------------------------------------------------------
//          change GXT Entries
// ---------------------------------------------------------------------- 
:ChangeGXTEntries 
  alloc($_param1, 76)
  alloc($_asmproc, 77)
  alloc($_param2, 78)
  1@ = @_GXTNewString_1 
  2@ = @_GXTNewString_2
  3@ = @_GXTNewString_3
  4@ = @_GXTNewString_4   
  5@ = @_GXTNewString_5   
  6@ = @_GXTNewString_6   
  7@ = @_GXTNewString_7   
  8@ = @_GXTNewString_8 
  9@ = @_GXTNewString_9 
  10@ = @_GXTNewString_10 
  11@ = @_GXTNewString_11 
  12@ = @_GXTNewString_12
  0@ = -429863
  31@ = 1
  while 31@ < 24  // strings*2
      // -------------------------------
      // FIND GXT ENTRY
      // -------------------------------       
      &0(0@,1i) = 0xA49960
      &0(0@,1i) += @_GetGxtStringPointer
      $_asmproc = 0x6A0050              // char* GetGxtString
      $_param1 = 0xA49958
      005E: $_param1 += 1@(31@,33i)      // char* GXTEntry     
      0572: run_asm_inject true
      // -------------------------------
      // CHANGE GXT STRING
      // -------------------------------
      dec(31@)
      $_param1 = 0xA49964
      005E: $_param1 += 1@(31@,33i)    // char* Source, new string
      &0(0@,1i) = 0xA49960
      &0(0@,1i) += @_CopyString
      $_asmproc = 0x718660              // int CopyString
      0572: run_asm_inject true
      inc(31@,2)     
  end 
return
  // ASM injectors
  // ------------------------------- 
  // .text:006A0050 ; char *__cdecl GetGxtString(char *GXT_Entry)
  :_GetGxtStringPointer
  hex
  FF 35 909AA400      // push dword ptr [0xA49960+$_param1*4]
  B9    40B3C100      // mov ecx, @aAmericanGxt
  FF 15 949AA400      // call dword ptr [0xA49960+$_asmproc*4]
  A3    989AA400      // mov [$_param2], eax
  C3                  // return 
  end
  // .text:00718660 ; int __cdecl CopyString(char *Destination,char *Source)
  :_CopyString
  hex
  FF 35 909AA400      // push dword ptr [0xA49960+$_param1*4]
  FF 35 989AA400      // push dword ptr [0xA49960+$_param2*4]
  FF 15 949AA400      // call dword ptr [0xA49960+$_asmproc*4]
  83 C4 08            // add esp, 8
  C3                  // return 
  end                                                         
  // Compiled Strings Pool (null-terminated)
  // ------------------------------- 
  :_GXTNewString_1
  0900: "NewText1"
  0900: 'Entry1'
 
  :_GXTNewString_2
  0900: "NewText2"
  0900: 'Entry2'

  :_GXTNewString_3 
  0900: "NewText3"
  0900: 'Entry3'

  :_GXTNewString_4
  0900: "NewText4"
  0900: 'Entry4'
   
  :_GXTNewString_5
  0900: "NewText5"
  0900: 'Entry5'

  :_GXTNewString_6
  0900: "NewText6"
  0900: 'Entry6'

  :_GXTNewString_7
  0900: "NewText7"
  0900: 'Entry7'

  :_GXTNewString_8
  0900: "NewText8"
  0900: 'Entry8'

  :_GXTNewString_9
  0900: "NewText9"
  0900: 'Entry9'
 
  :_GXTNewString_10
  0900: "NewText10"
  0900: 'Entry10'

  :_GXTNewString_11
  0900: "NewText11"
  0900: 'Entry11'

 :_GXTNewString_12
 // last entry


View user profile http://gtamodding.com

View previous topic View next topic Back to top  Message [Page 1 of 1]

Permissions in this forum:
You cannot reply to topics in this forum