Model Kustom (0.3.DL)
Skin dan objek kustom dengan fallback 0.3.7 yang aman.
SA-MP 0.3.DL memungkinkan klien mengunduh model karakter dan objek kustom. Knight mendeteksi versi klien dan hanya mengirim data model ke klien DL.
Daftarkan model
knight
system::start() {
// Skin kustom: base skin 305, id baru 20001 (rentang 20001-30000)
AddCharModel(305, 20001, "skins/cop.dff", "skins/cop.txd");
// Objek kustom: base objek 19379, id baru -2000 (rentang -30000..-1000)
AddSimpleModel(-1, 19379, -2000, "/srv/models/crate.dff", "/srv/models/crate.txd");
AddPlayerClass(20001, 1958.4, 1343.2, 15.4, 270.0, 24, 50);
};
Di mana file diletakkan?
Di mana saja. Path berperilaku seperti include C++:
knight
AddSimpleModel(-1, 19379, -2000, "/srv/models/a.dff", "/srv/models/a.txd"); // absolut
AddSimpleModel(-1, 19379, -2001, "assets/a.dff", "assets/a.txd"); // relatif ke CWD
AddSimpleModel(-1, 19379, -2002, "a.dff", "a.txd"); // nama saja -> artpath
Alur unduhan
knight
player::request_download(int playerid, int type, int crc) {
// type 1 = model, 2 = tekstur. Kembalikan false untuk menolak.
Log("permintaan unduhan type={type} crc={crc}");
return true; // layani dari artwork_cdn / artpath
};
player::finished_downloading(int playerid, int virtualworld) {
SendClientMessage(playerid, "Model kustom siap!");
};
Fallback 0.3.7
- Klien 0.3.7 tidak pernah menerima RPC model kustom.
- ID skin kustom dikirim sebagai base skin.
- ID objek kustom dikirim sebagai base objek.
- Gamemode tetap menyimpan id asli, jadi
GetPlayerCustomSkintetap benar.
Tip
IsValidCustomModel(id) mengecek apakah sebuah id berada di rentang kustom.