Nào tiếp tục... Về Buy Menu cực kỳ phức tạp để làm 1 Buy Menu đẹp cũng như tiện lợi... Mình chỉ nói về Classic thôi, các bản MOD cũng có thể dựa trên cơ sở này để tạo thêm.
Để tạo 1 Buy Menu thì chỉ cần 2 thứ như tạo classe char
Tất nhiên là các file này phải ở trong
Gồm:
Mã:
1. File MainBuyMenu.res
2. Các file classe tạo thêm.
Buy Menu quan trọng và phức tạp ở chỗ là phải tạo thêm file classe chứ ko dùng file classes có sẵn đc.
Các file classes tạo ra phải có đuôi .res và phải có đặc điểm như classes khác
Dạng mẫu:
Mã:
"Resource/UI/BuyPistols_CT.res" (Khai báo tên đường dẫn file classes)
{
Các lệnh khác (có thể lồng các lệnh vào nhau)
}
Luôn luôn phải mở đầu (hơi khó nói) một cái thân thì phải là
{ và kết thúc là
}
Các bạn chỉ nên chú ý vào phần sau:
Mã:
"Resource/UI/BuyPistols_CT.res"
{
[code]
[spoil]
"BuyPistols_CT"
{
"ControlName" "WizardSubPanel"
"fieldName" "BuyPistols_CT"
"xpos" "50"
"ypos" "10"
"wide" "552"
"tall" "448"
"autoResize" "0"
"pinCorner" "0"
"visible" "1"
"enabled" "1"
"tabPosition" "0"
}
"Title"
{
"ControlName" "Label"
"fieldName" "Title"
"xpos" "76"
"ypos" "22"
"wide" "500"
"tall" "48"
"autoResize" "0"
"pinCorner" "0"
"visible" "1"
"enabled" "1"
"tabPosition" "0"
"labelText" "#Cstrike_PistolsLabel"
"textAlignment" "west"
"dulltext" "0"
"brighttext" "0"
"font" "Title"
"wrap" "0"
}
"ItemInfo"
{
"ControlName" "Panel"
"fieldName" "ItemInfo"
"xpos" "244"
"ypos" "116"
"wide" "400"
"tall" "380"
"autoResize" "3"
"pinCorner" "0"
"visible" "1"
"enabled" "1"
"tabPosition" "0"
}
[/spoil]
"Glock18"
{
"ControlName" "MouseOverPanelButton"
"fieldName" "Glock18"
"xpos" "76"
"ypos" "116"
"labelText" "#Cstrike_Glock18"
"command" "glock"
"cost" "400"
}
[spoil]
Mã:
"USP45"
{
"ControlName" "MouseOverPanelButton"
"fieldName" "USP45"
"xpos" "76"
"ypos" "148"
"wide" "148"
"tall" "20"
"autoResize" "0"
"pinCorner" "2"
"visible" "1"
"enabled" "1"
"tabPosition" "0"
"labelText" "#Cstrike_USP45"
"textAlignment" "west"
"dulltext" "0"
"brighttext" "0"
"command" "usp"
"cost" "500"
}
"P228"
{
"ControlName" "MouseOverPanelButton"
"fieldName" "P228"
"xpos" "76"
"ypos" "180"
"wide" "148"
"tall" "20"
"autoResize" "0"
"pinCorner" "2"
"visible" "1"
"enabled" "1"
"tabPosition" "0"
"labelText" "#Cstrike_P228"
"textAlignment" "west"
"dulltext" "0"
"brighttext" "0"
"command" "p228"
"cost" "600"
}
"DesertEagle"
{
"ControlName" "MouseOverPanelButton"
"fieldName" "DesertEagle"
"xpos" "76"
"ypos" "212"
"wide" "148"
"tall" "20"
"autoResize" "0"
"pinCorner" "2"
"visible" "1"
"enabled" "1"
"tabPosition" "0"
"labelText" "#Cstrike_DesertEagle"
"textAlignment" "west"
"dulltext" "0"
"brighttext" "0"
"command" "deagle"
"cost" "650"
}
"CancelButton"
{
"ControlName" "MouseOverPanelButton"
"fieldName" "CancelButton"
"xpos" "76"
"ypos" "380"
"wide" "148"
"tall" "20"
"autoResize" "0"
"pinCorner" "2"
"visible" "1"
"enabled" "1"
"tabPosition" "0"
"labelText" "#Cstrike_Cancel"
"textAlignment" "west"
"dulltext" "0"
"brighttext" "0"
"Command" "vguicancel"
"Default" "1"
}
[/spoil]
}
[/code]
Chú ý các phần trên
fieldName: Cái này giống với classes char.. mình xin nói thêm là chỗ này thực ra là nó gọi tên file trong CStrike\classes. Nếu trong đó ko có file res thì nó chẳng có tác dụng j ^^.
Xpos,
Ypos: khỏi phải nói.. tương tự thôi ^^
labelText: Tương tự..
command: lệnh mua súng... cái này thì dễ zầu.. chỉ việc đưa tên súng vô là đc.. tùy mod nhé.. nói sau ^^
cost: đối với mod (cso-nst) thì ko cần cái này. Là số tiền sẽ mất sau khi nhấn vào
nếu để là 0 hoặc xóa đi thì mua súng free
Còn 1 số cái nữa thì tương tự.
Đến đây coi như là đủ để các bạn sửa (và tạo thêm) file classe mới.. giờ mình ko đề cập đến nữa.. sẽ nói rõ hơn nếu ko ai hiểu
Giờ là chỉnh sửa file MainBuyMenu.res
[spoil]
Mã:
"Resource/UI/MainBuyMenu.res"
{
"ItemInfo"
{
"ControlName" "Panel"
"fieldName" "ItemInfo"
"xpos" "1680"
"ypos" "1160"
"wide" "400"
"tall" "380"
"autoResize" "0"
"pinCorner" "0"
"visible" "1"
"enabled" "1"
"tabPosition" "0"
}
"Title"
{
"ControlName" "Label"
"fieldName" "Title"
"xpos" "76"
"ypos" "22"
"wide" "500"
"tall" "48"
"autoResize" "0"
"pinCorner" "0"
"visible" "1"
"enabled" "1"
"tabPosition" "0"
"labelText" "#Cstrike_Buy_Menu"
"textAlignment" "west"
"dulltext" "0"
"brighttext" "0"
"font" "Title"
"wrap" "0"
}
"selectCategory"
{
"ControlName" "Label"
"fieldName" "selectCategory"
"xpos" "84"
"ypos" "87"
"wide" "160"
"tall" "24"
"autoResize" "0"
"pinCorner" "0"
"visible" "1"
"enabled" "1"
"labelText" "#Cstrike_Select_Category"
"textAlignment" "west"
"dulltext" "0"
"brighttext" "1"
}
"pistols"
{
"ControlName" "MouseOverPanelButton"
"fieldName" "pistols"
"xpos" "76"
"ypos" "116"
"wide" "148"
"tall" "20"
"autoResize" "0"
"pinCorner" "0"
"visible" "1"
"enabled" "1"
"tabPosition" "0"
"labelText" "#Cstrike_Pistols"
"textAlignment" "west"
"dulltext" "0"
"brighttext" "0"
"Command" "Resource/UI/BuyPistols.res"
"Default" "0"
}
"shotguns"
{
"ControlName" "MouseOverPanelButton"
"fieldName" "shotguns"
"xpos" "76"
"ypos" "148"
"wide" "148"
"tall" "20"
"autoResize" "0"
"pinCorner" "0"
"visible" "1"
"enabled" "1"
"tabPosition" "0"
"labelText" "#Cstrike_Shotguns"
"textAlignment" "west"
"dulltext" "0"
"brighttext" "0"
"Command" "Resource/UI/BuyShotguns.res"
"Default" "0"
}
"submachineguns"
{
"ControlName" "MouseOverPanelButton"
"fieldName" "submachineguns"
"xpos" "76"
"ypos" "180"
"wide" "148"
"tall" "20"
"autoResize" "0"
"pinCorner" "0"
"visible" "1"
"enabled" "1"
"tabPosition" "0"
"labelText" "#Cstrike_SubMachineGuns"
"textAlignment" "west"
"dulltext" "0"
"brighttext" "0"
"Command" "Resource/UI/BuySubMachineGuns.res"
"Default" "0"
}
"rifles"
{
"ControlName" "MouseOverPanelButton"
"fieldName" "rifles"
"xpos" "76"
"ypos" "212"
"wide" "148"
"tall" "20"
"autoResize" "0"
"pinCorner" "0"
"visible" "1"
"enabled" "1"
"tabPosition" "0"
"labelText" "#Cstrike_Rifles"
"textAlignment" "west"
"dulltext" "0"
"brighttext" "0"
"Command" "Resource/UI/BuyRifles.res"
"Default" "0"
}
"machineguns"
{
"ControlName" "MouseOverPanelButton"
"fieldName" "machineguns"
"xpos" "76"
"ypos" "244"
"wide" "148"
"tall" "20"
"autoResize" "0"
"pinCorner" "0"
"visible" "1"
"enabled" "1"
"tabPosition" "0"
"labelText" "#Cstrike_MachineGuns"
"textAlignment" "west"
"dulltext" "0"
"brighttext" "0"
"Command" "Resource/UI/BuyMachineGuns.res"
"Default" "0"
}
"primaryammo"
{
"ControlName" "MouseOverPanelButton"
"fieldName" "primaryammo"
"xpos" "76"
"ypos" "276"
"wide" "148"
"tall" "20"
"autoResize" "0"
"pinCorner" "0"
"visible" "1"
"enabled" "1"
"tabPosition" "0"
"labelText" "#Cstrike_Prim_Ammo"
"textAlignment" "west"
"dulltext" "0"
"brighttext" "0"
"Command" "primammo"
"Default" "0"
}
"secammo"
{
"ControlName" "MouseOverPanelButton"
"fieldName" "secammo"
"xpos" "76"
"ypos" "308"
"wide" "148"
"tall" "20"
"autoResize" "0"
"pinCorner" "0"
"visible" "1"
"enabled" "1"
"tabPosition" "0"
"labelText" "#Cstrike_Sec_Ammo"
"textAlignment" "west"
"dulltext" "0"
"brighttext" "0"
"Command" "secammo"
"Default" "0"
}
"equipment"
{
"ControlName" "MouseOverPanelButton"
"fieldName" "equipment"
"xpos" "76"
"ypos" "340"
"wide" "148"
"tall" "20"
"autoResize" "0"
"pinCorner" "0"
"visible" "1"
"enabled" "1"
"tabPosition" "0"
"labelText" "#Cstrike_Equipment"
"textAlignment" "west"
"dulltext" "0"
"brighttext" "0"
"Command" "Resource/UI/BuyEquipment.res"
"Default" "0"
}
"CancelButton"
{
"ControlName" "MouseOverPanelButton"
"fieldName" "CancelButton"
"xpos" "76"
"ypos" "380"
"wide" "148"
"tall" "20"
"autoResize" "0"
"pinCorner" "0"
"visible" "1"
"enabled" "1"
"tabPosition" "0"
"labelText" "#Cstrike_Cancel"
"textAlignment" "west"
"dulltext" "0"
"brighttext" "0"
"Command" "vguicancel"
"Default" "1"
}
"AutobuyButton"
{
"ControlName" "Button"
"fieldName" "AutobuyButton"
"xpos" "249"
"ypos" "116"
"wide" "160"
"tall" "20"
"autoResize" "0"
"pinCorner" "0"
"visible" "1"
"enabled" "1"
"tabPosition" "0"
"labelText" "#Cstrike_BuyMenuAutobuy"
"textAlignment" "west"
"dulltext" "0"
"brighttext" "0"
"Command" "autobuy"
"Default" "0"
}
"RebuyButton"
{
"ControlName" "Button"
"fieldName" "RebuyButton"
"xpos" "249"
"ypos" "148"
"wide" "160"
"tall" "20"
"autoResize" "0"
"pinCorner" "0"
"visible" "1"
"enabled" "1"
"tabPosition" "0"
"labelText" "#Cstrike_BuyMenuRebuy"
"textAlignment" "west"
"dulltext" "0"
"brighttext" "0"
"Command" "rebuy"
"Default" "0"
}
"Divider1"
{
"ControlName" "Divider"
"fieldName" "Divider1"
"xpos" "236"
"ypos" "116"
"wide" "2"
"tall" "284"
"autoResize" "0"
"pinCorner" "0"
"visible" "1"
"enabled" "1"
"tabPosition" "0"
}
}
[/spoil]
Chú ý:
Mã:
"pistols"
{
"ControlName" "MouseOverPanelButton"
"fieldName" "pistols"
"xpos" "76"
"ypos" "116"
"labelText" "#Cstrike_Pistols"
"Command" "Resource/UI/BuyPistols.res"
"Default" "0"
}
Ở đây, command sẽ gọi tên file classes... cái này là mặt hiển thị sau khi mình nhấn ^^. Mấy cái khác tương tự...
Default: Cái này ko quan trọng.. có thể xóa nếu cần

.. nên để là 0.. vì chuyển thành 1 có thể sẽ xung đột khi ingame...
Được rồi.. bắt đầu vào việc thêm súng...
Trước hết.. Phần Buy Menu của hầu hết mọi người đã đến page thứ 3.. và đã gần hết. Vậy mình sẽ hướng dẫn các bạn các thêm Page của Rifle (các cái khác tương tự)
CSO-NST có các file cần thiết sau:
Mã:
MainBuyMenu.res
NSTWpn_Hegrenade_1_CT.res
NSTWpn_Hegrenade_1_TER.res
NSTWpn_Knife_1_CT.res
NSTWpn_Knife_1_TER.res
NSTWpn_Pistols_1_CT.res
NSTWpn_Pistols_1_TER.res
NSTWpn_Rifles_1_CT.res
NSTWpn_Rifles_1_TER.res
NSTWpn_Rifles_2_CT.res
NSTWpn_Rifles_2_TER.res
NSTWpn_Rifles_3_backup_newWpn.res
NSTWpn_Rifles_3_CT.res
NSTWpn_Rifles_3_TER.res
Tên của Page thì các bạn thích đặt tên là j cũng đc nhưng phải chú ý 2 điều:
Mã:
1. Phải có dạng "<tên file>_CT.res" và "<tên file>_TER.res"
2. Phải có phần khai báo "Command" trong file như đã nói ở trên...
Giờ thì mình sẽ tạo thêm các file mới là:
Mã:
NSTWpn_Rifles_4_CT.res
NSTWpn_Rifles_4_TER.res
NSTWpn_Rifles_5_CT.res
NSTWpn_Rifles_5_TER.res
Và tất nhiên là tạo luôn 5 Pages...
Như phía trên đã nói.. các bạn khai báo ở phần "Command" thì nó sẽ gọi file đó hiển thị ra bên ngoài. Vậy thì ta sẽ dùng các file cũ...
Và mỗi page các bạn phải có phần này là phần hiển thị phía trên (tên page)
[spoil]
// #####################################################
// ----------------------- PAGES -----------------------
// #####################################################
"page-1-bg"
{
"ControlName" "ImagePanel"
"fieldName" "page-1-bg"
"xpos" "325"
"ypos" "46"
"wide" "25"
"tall" "20"
"autoResize" "0"
"pinCorner" "0"
"visible" "1"
"enabled" "1"
"textAlignment" "center"
"image" "resource/control/page"
"scaleImage" "1"
}
"page-1-cmd"
{
"ControlName" "Button"
"fieldName" "page-1-cmd"
"xpos" "325"
"ypos" "46"
"wide" "20"
"tall" "20"
"autoResize" "0"
"pinCorner" "2"
"visible" "1"
"enabled" "1"
"tabPosition" "0"
"labelText" "#csonst_page1"
"textAlignment" "center"
"dulltext" "0"
"brighttext" "0"
"Command" "Resource/UI/NSTWpn_Rifles_1.res"
"Default" "1"
}
"page-2-bg"
{
"ControlName" "ImagePanel"
"fieldName" "page-2-bg"
"xpos" "360"
"ypos" "46"
"wide" "25"
"tall" "20"
"autoResize" "0"
"pinCorner" "0"
"visible" "1"
"enabled" "1"
"textAlignment" "center"
"image" "resource/control/page"
"scaleImage" "1"
}
"page-2-cmd"
{
"ControlName" "Button"
"fieldName" "page-2-cmd"
"xpos" "360"
"ypos" "46"
"wide" "20"
"tall" "20"
"autoResize" "0"
"pinCorner" "2"
"visible" "1"
"enabled" "1"
"tabPosition" "0"
"labelText" "#csonst_page2"
"textAlignment" "center"
"dulltext" "0"
"brighttext" "0"
"Command" "Resource/UI/NSTWpn_Rifles_2.res"
"Default" "1"
}
"page-3-bg"
{
"ControlName" "ImagePanel"
"fieldName" "page-3-bg"
"xpos" "395"
"ypos" "46"
"wide" "25"
"tall" "20"
"autoResize" "0"
"pinCorner" "0"
"visible" "1"
"enabled" "1"
"textAlignment" "center"
"image" "resource/control/page"
"scaleImage" "1"
}
"page-3-cmd"
{
"ControlName" "Button"
"fieldName" "page-3-cmd"
"xpos" "395"
"ypos" "46"
"wide" "20"
"tall" "20"
"autoResize" "0"
"pinCorner" "2"
"visible" "1"
"enabled" "1"
"tabPosition" "0"
"labelText" "#csonst_page3"
"textAlignment" "center"
"dulltext" "0"
"brighttext" "0"
"Command" "Resource/UI/NSTWpn_Rifles_3.res"
"Default" "1"
}
[/spoil]
Mã:
Hãy xem lại phần tạo Char để biết thủ thuật xét tọa độ
và mình sẽ thêm vào 2 page thì phải có cấu trúc như cũ và chỉ thay đổi 1 ít:
Mã:
"page-4-bg"
{
"ControlName" "ImagePanel"
"fieldName" "page-2-bg"
"xpos" "360"
"ypos" "46"
"wide" "25"
"tall" "20"
"autoResize" "0"
"pinCorner" "0"
"visible" "1"
"enabled" "1"
"textAlignment" "center"
"image" "resource/control/page"
"scaleImage" "1"
}
"page-4-cmd"
{
"ControlName" "Button"
"fieldName" "page-2-cmd"
"xpos" "360"
"ypos" "46"
"wide" "20"
"tall" "20"
"autoResize" "0"
"pinCorner" "2"
"visible" "1"
"enabled" "1"
"tabPosition" "0"
"labelText" "#csonst_page2"
"textAlignment" "center"
"dulltext" "0"
"brighttext" "0"
"Command" "Resource/UI/NSTWpn_Rifles_4.res"
"Default" "1"
}
"page-5-bg"
{
"ControlName" "ImagePanel"
"fieldName" "page-3-bg"
"xpos" "395"
"ypos" "46"
"wide" "25"
"tall" "20"
"autoResize" "0"
"pinCorner" "0"
"visible" "1"
"enabled" "1"
"textAlignment" "center"
"image" "resource/control/page"
"scaleImage" "1"
}
"page-5-cmd"
{
"ControlName" "Button"
"fieldName" "page-3-cmd"
"xpos" "395"
"ypos" "46"
"wide" "20"
"tall" "20"
"autoResize" "0"
"pinCorner" "2"
"visible" "1"
"enabled" "1"
"tabPosition" "0"
"labelText" "#csonst_page3"
"textAlignment" "center"
"dulltext" "0"
"brighttext" "0"
"Command" "Resource/UI/NSTWpn_Rifles_5.res"
"Default" "1"
}
Có thể các bạn sẽ thắc mắc ở command này:
Mã:
"Command" "Resource/UI/NSTWpn_Rifles_5.res"
"Default" "1"
Các bạn chỉ khai báo tên file và đường dẫn.. phần _CT và _TER sẽ ko cần thêm vào vì vào Game nó sẽ dựa theo đuôi này để gọi file tùy thuộc vào Team bạn đang chọn.
_CT: Counter-Terrorist (đặc nhiệm)
_TER: Terrorist (khủng bố)
Tất nhiên là 2 cái trên kia mình chưa set tọa độ...
Vì 3 Page cũ nó đã có vị trí thế này:
nên mình nghĩ là nó có thể add đc thêm 1 hoặc 2 page..
Mã:
"page-4-bg"
{
"ControlName" "ImagePanel"
"fieldName" "page-4-bg"
"xpos" "430"
"ypos" "46"
"wide" "25"
"tall" "20"
"autoResize" "0"
"pinCorner" "0"
"visible" "1"
"enabled" "1"
"textAlignment" "center"
"image" "resource/control/page"
"scaleImage" "1"
}
"page-4-cmd"
{
"ControlName" "Button"
"fieldName" "page-4-cmd"
"xpos" "430"
"ypos" "46"
"wide" "20"
"tall" "20"
"autoResize" "0"
"pinCorner" "2"
"visible" "1"
"enabled" "1"
"tabPosition" "0"
"labelText" "#csonst_page2"
"textAlignment" "center"
"dulltext" "0"
"brighttext" "0"
"Command" "Resource/UI/NSTWpn_Rifles_4.res"
"Default" "1"
}
"page-5-bg"
{
"ControlName" "ImagePanel"
"fieldName" "page-5-bg"
"xpos" "465"
"ypos" "46"
"wide" "25"
"tall" "20"
"autoResize" "0"
"pinCorner" "0"
"visible" "1"
"enabled" "1"
"textAlignment" "center"
"image" "resource/control/page"
"scaleImage" "1"
}
"page-5-cmd"
{
"ControlName" "Button"
"fieldName" "page-5-cmd"
"xpos" "465"
"ypos" "46"
"wide" "20"
"tall" "20"
"autoResize" "0"
"pinCorner" "2"
"visible" "1"
"enabled" "1"
"tabPosition" "0"
"labelText" "#csonst_page3"
"textAlignment" "center"
"dulltext" "0"
"brighttext" "0"
"Command" "Resource/UI/NSTWpn_Rifles_5.res"
"Default" "1"
}
Vậy là mình đã tạo đc 2 nút ấn khi vào game để chọn trong page.. Bây giờ sẽ copy đoạn đó và dán vào các file page:
Mã:
NSTWpn_Pistols_1_CT.res
NSTWpn_Pistols_1_TER.res
NSTWpn_Rifles_1_CT.res
NSTWpn_Rifles_1_TER.res
NSTWpn_Rifles_2_CT.res
NSTWpn_Rifles_2_TER.res
NSTWpn_Rifles_3_backup_newWpn.res
NSTWpn_Rifles_3_CT.res
NSTWpn_Rifles_3_TER.res
NSTWpn_Rifles_4_CT.res
NSTWpn_Rifles_4_TER.res
NSTWpn_Rifles_5_CT.res
NSTWpn_Rifles_5_TER.res
Và thế là vào Game chúng ta sẽ có:
Oh men.. vậy là mình đã tính toán sai.. page 5 đã bị chèn vào phần kia.. vậy chỉ chèn tối đa đc đến page 4.. nếu muốn chèn thêm pag5 thì phải đặt lại vị trí lùi ra phía trc 1 button:
Sửa lại tất cả:
[spoil]
Mã:
"page-1-bg"
{
"ControlName" "ImagePanel"
"fieldName" "page-1-bg"
"xpos" "290"
"ypos" "46"
"wide" "25"
"tall" "20"
"autoResize" "0"
"pinCorner" "0"
"visible" "1"
"enabled" "1"
"textAlignment" "center"
"image" "resource/control/page"
"scaleImage" "1"
}
"page-1-cmd"
{
"ControlName" "Button"
"fieldName" "page-1-cmd"
"xpos" "290"
"ypos" "46"
"wide" "20"
"tall" "20"
"autoResize" "0"
"pinCorner" "2"
"visible" "1"
"enabled" "1"
"tabPosition" "0"
"labelText" "#csonst_page1"
"textAlignment" "center"
"dulltext" "0"
"brighttext" "0"
"Command" "Resource/UI/NSTWpn_Rifles_1.res"
"Default" "1"
}
"page-2-bg"
{
"ControlName" "ImagePanel"
"fieldName" "page-2-bg"
"xpos" "325"
"ypos" "46"
"wide" "25"
"tall" "20"
"autoResize" "0"
"pinCorner" "0"
"visible" "1"
"enabled" "1"
"textAlignment" "center"
"image" "resource/control/page"
"scaleImage" "1"
}
"page-2-cmd"
{
"ControlName" "Button"
"fieldName" "page-2-cmd"
"xpos" "325"
"ypos" "46"
"wide" "20"
"tall" "20"
"autoResize" "0"
"pinCorner" "2"
"visible" "1"
"enabled" "1"
"tabPosition" "0"
"labelText" "#csonst_page2"
"textAlignment" "center"
"dulltext" "0"
"brighttext" "0"
"Command" "Resource/UI/NSTWpn_Rifles_2.res"
"Default" "1"
}
"page-3-bg"
{
"ControlName" "ImagePanel"
"fieldName" "page-3-bg"
"xpos" "360"
"ypos" "46"
"wide" "25"
"tall" "20"
"autoResize" "0"
"pinCorner" "0"
"visible" "1"
"enabled" "1"
"textAlignment" "center"
"image" "resource/control/page"
"scaleImage" "1"
}
"page-3-cmd"
{
"ControlName" "Button"
"fieldName" "page-3-cmd"
"xpos" "360"
"ypos" "46"
"wide" "20"
"tall" "20"
"autoResize" "0"
"pinCorner" "2"
"visible" "1"
"enabled" "1"
"tabPosition" "0"
"labelText" "#csonst_page3"
"textAlignment" "center"
"dulltext" "0"
"brighttext" "0"
"Command" "Resource/UI/NSTWpn_Rifles_3.res"
"Default" "1"
}
"page-4-bg"
{
"ControlName" "ImagePanel"
"fieldName" "page-4-bg"
"xpos" "395"
"ypos" "46"
"wide" "25"
"tall" "20"
"autoResize" "0"
"pinCorner" "0"
"visible" "1"
"enabled" "1"
"textAlignment" "center"
"image" "resource/control/page"
"scaleImage" "1"
}
"page-4-cmd"
{
"ControlName" "Button"
"fieldName" "page-4-cmd"
"xpos" "395"
"ypos" "46"
"wide" "20"
"tall" "20"
"autoResize" "0"
"pinCorner" "2"
"visible" "1"
"enabled" "1"
"tabPosition" "0"
"labelText" "#csonst_page4"
"textAlignment" "center"
"dulltext" "0"
"brighttext" "0"
"Command" "Resource/UI/NSTWpn_Rifles_4.res"
"Default" "1"
}
"page-5-bg"
{
"ControlName" "ImagePanel"
"fieldName" "page-5-bg"
"xpos" "430"
"ypos" "46"
"wide" "25"
"tall" "20"
"autoResize" "0"
"pinCorner" "0"
"visible" "1"
"enabled" "1"
"textAlignment" "center"
"image" "resource/control/page"
"scaleImage" "1"
}
"page-5-cmd"
{
"ControlName" "Button"
"fieldName" "page-5-cmd"
"xpos" "430"
"ypos" "46"
"wide" "20"
"tall" "20"
"autoResize" "0"
"pinCorner" "2"
"visible" "1"
"enabled" "1"
"tabPosition" "0"
"labelText" "#csonst_page5"
"textAlignment" "center"
"dulltext" "0"
"brighttext" "0"
"Command" "Resource/UI/NSTWpn_Rifles_5.res"
"Default" "1"
}
[/spoil]
Xong phần Page.. nếu ko rõ có thể trả lời phía dưới...
Tiếp theo sẽ là phần thêm súng...
Dạng mẫu trong CSO-NST:
Mã:
// ---------------------- weapon 1 ----------------------
"1-weapon1-bg"
{
"ControlName" "ImagePanel"
"fieldName" "1-weapon1-bg"
"xpos" "30"
"ypos" "85"
"wide" "138"
"tall" "63"
"autoResize" "0"
"pinCorner" "0"
"visible" "1"
"enabled" "1"
"textAlignment" "center"
"image" "resource/control/item_bg"
"scaleImage" "1"
}
"1-weapon1-bgwpn"
{
"ControlName" "ImagePanel"
"fieldName" "1-weapon1-bgwpn"
"xpos" "30"
"ypos" "85"
"wide" "138"
"tall" "48"
"autoResize" "0"
"pinCorner" "0"
"visible" "1"
"enabled" "1"
"textAlignment" "center"
"image" "resource/control/item_bgwpn"
"scaleImage" "1"
}
"1-weapon1-img"
{
"ControlName" "ImagePanel"
"fieldName" "1-weapon1-img"
"xpos" "30"
"ypos" "85"
"wide" "138"
"tall" "48"
"autoResize" "0"
"pinCorner" "0"
"visible" "1"
"enabled" "1"
"textAlignment" "center"
// 1-weapon1-img
[b]"image" "gfx/vgui/file"[/b]
"scaleImage" "1"
}
"1-weapon1-team"
{
"ControlName" "ImagePanel"
"fieldName" "1-weapon1-team"
"xpos" "140"
"ypos" "126"
"wide" "26"
"tall" "7"
"autoResize" "0"
"pinCorner" "0"
"visible" "1"
"enabled" "1"
"textAlignment" "center"
// 1-weapon1-team
"image" "resource/control/team"
"scaleImage" "1"
}
"1-weapon1-name"
{
"ControlName" "Label"
"fieldName" "1-weapon1-name"
"xpos" "30"
"ypos" "133"
"wide" "138"
"tall" "15"
"autoResize" "0"
"pinCorner" "0"
"visible" "1"
"enabled" "1"
// 1-weapon1-name
[b]"labelText" "Name Gun - Cost"[/b]
"textAlignment" "center"
"dulltext" "1"
"brighttext" "0"
}
"1-weapon1-bottom"
{
"ControlName" "Button"
"fieldName" "1-weapon1-bottom"
"xpos" "30"
"ypos" "85"
"wide" "138"
"tall" "63"
"autoResize" "0"
"pinCorner" "2"
"visible" "1"
"enabled" "1"
"tabPosition" "0"
"labelText" ""
// 1-weapon1-bottom
[b]"command" "nst_buy_wpn "[/b]
}
Các bạn chỉ cần chú ý 3 phần sau.. các phần khác để yên...
Mã:
"1-weapon1-name"
{
"ControlName" "Label"
"fieldName" "1-weapon1-name"
"xpos" "30"
"ypos" "133"
"wide" "138"
"tall" "15"
"autoResize" "0"
"pinCorner" "0"
"visible" "1"
"enabled" "1"
// 1-weapon1-name
[b]"labelText" "Name Gun - Cost"[/b]
"textAlignment" "center"
"dulltext" "1"
"brighttext" "0"
}
"1-weapon1-img"
{
"ControlName" "ImagePanel"
"fieldName" "1-weapon1-img"
"xpos" "30"
"ypos" "85"
"wide" "138"
"tall" "48"
"autoResize" "0"
"pinCorner" "0"
"visible" "1"
"enabled" "1"
"textAlignment" "center"
// 1-weapon1-img
[b]"image" "gfx/vgui/file"[/b]
"scaleImage" "1"
}
"1-weapon1-bottom"
{
"ControlName" "Button"
"fieldName" "1-weapon1-bottom"
"xpos" "30"
"ypos" "85"
"wide" "138"
"tall" "63"
"autoResize" "0"
"pinCorner" "2"
"visible" "1"
"enabled" "1"
"tabPosition" "0"
"labelText" ""
// 1-weapon1-bottom
[b]"command" "nst_buy_wpn "[/b]
}
Ở phần
Mã:
[b]"labelText" "Name Gun - Cost"[/b]
Các bạn thay
Name Gun - Cost bằng tên súng và giá tiền (túm lại là đoạn mã hiển thị)
Mã:
[b]"image" "gfx/vgui/file"[/b]
Các bạn thay
file bằng tên file ảnh kèm luôn đường dẫn.
Mã:
[b]"command" "nst_buy_wpn "[/b]
Vì là Cso-NSt đang dùng My WPn nên sẽ có phần này:
Command.. là lệnh để mua súng hoặc chọn súng v.v..
phần này có dạng
"command" "nst_buy_wpn <tên models>" và đã được khai báo trong nst_wpn.ini.
ví dụ mình đã khai báo khẩu MP5 mà lúc nãy Evee vừa share có tên models là
mp5gold thì sẽ được
"command" "nst_buy_wpn mp5gold"
Rồi.. thế là đã xong.. mệt ghê.. àh còn 1 thủ thuật nữa:
Mã:
Vì 3 page đều có các khung như nhau.. ví dụ bạn muốn thêm 1 khẩu ở vị trí thứ 20 (cái cuối cùng góc bên trái) thì cứ mở 1 file có đoạn đó ví dụ
NSTWpn_Rifles_2_CT.res
và copy phần đó và chỉ việc thay đổi cấu trúc của 3 phần trên là OK =))