modelių keitimas.
Re: modelių keitimas.
http://amxmodx.lt/viewtopic.php?f=16&t=432
Čia panši tema, dėl tų VGUI, daugiau čia yra mano temų tokių, pasiieškok.
Čia panši tema, dėl tų VGUI, daugiau čia yra mano temų tokių, pasiieškok.
Re: modelių keitimas.
Code: Select all
register_forward(FM_SetModel,"fw_SetModel", 1) public fw_SetModel(entity, const model[]) { new weapon = entity switch(weapon) { case CSW_M4A1: { entity_set_model(entity, _emke_models[2]); } case CSW_AK47: { entity_set_model(entity, _ak_models[2]); } case CSW_AWP: { entity_set_model(entity, _awp_models[2]); } case CSW_SCOUT: { entity_set_model(entity, _scout_models[2]); } case CSW_USP: { entity_set_model(entity, _usp_models[2]); } case CSW_GLOCK18: { entity_set_model(entity, _glock_models[2]); } //case CSW_MP5NAVY: { entity_set_model(entity, _mp5_models[2]); } case CSW_UMP45: { entity_set_model(entity, _ump_models[2]); } case CSW_M249: { entity_set_model(entity, _mash_models[2]); } case CSW_DEAGLE: { entity_set_model(entity, _dgl_models[2]); } case CSW_HEGRENADE: {entity_set_model(entity, _he_models[2]); } case CSW_FAMAS: { entity_set_model(entity, _famas_models[2]); } }}
- aaarnas
- Vyr. diskusijų administratorius
- Posts: 3891
- Joined: 2010 Aug 31 13:21
- Skype: fiarno
- Contact:
Re: modelių keitimas.
Žmogau. entity tai yra daikto ID adresas variklyje, o ne ginklo id sąraše 
Vienas iš variantų kaip aptikti reikiamą modelį:
Optimaliausia tai manau būtų su switch pagal char'us skenuoti, nes jei su containi visus atvejus tikrinsi, lavai daug cpu sunaudosi.
Tik žinoma čia pavyzdys. Reikia susirašyti viską.

Vienas iš variantų kaip aptikti reikiamą modelį:
Code: Select all
public fw_SetModel(entity, const model[]) { if(contain(model, "w_m4a1") { entity_set_model(entity, _emke_models[2]) }}
Code: Select all
switch(model[5]) { case 'm': { switch(model[6]) { case '4': { // M4a1 } } } case 'b': { } }
Palikau CS pasaulį ;/ . Nebepasiekiamas.
Re: modelių keitimas.
Neveiktų šiuo atveju cs_get_weapon_id() ar get_pdata_int(entity, 43, 4)?
Re: modelių keitimas.
pirmas variantas veikia, bet jeigu darau taip:
Tada visiem ginklams padaro tokį modelį.
O antras variantas neveikia, darau taip:
Code: Select all
if(contain(model, "w_m4a1") ) { entity_set_model(entity, _emke_models[2]) }
O antras variantas neveikia, darau taip:
Code: Select all
switch(model[5]) { case 'm': { switch(model[6]) { case '4': { entity_set_model(entity, _emke_models[2]) } } } case 'a': { switch(model[6]) { case 'k': { entity_set_model(entity, _ak_models[2]) } case 'w': { entity_set_model(entity, _awp_models[2]) } } }}
Last edited by aurimasko on 2011 Apr 09 16:36, edited 1 time in total.
- aaarnas
- Vyr. diskusijų administratorius
- Posts: 3891
- Joined: 2010 Aug 31 13:21
- Skype: fiarno
- Contact:
Re: modelių keitimas.
contain(model, "w_m4a1") != turi būti.
Antrame variante tik pavyzdys.. Reikia char vietas atitaikyti model masyve.
Daryk taip:
Antrame variante tik pavyzdys.. Reikia char vietas atitaikyti model masyve.
Daryk taip:
Code: Select all
public fw_SetModel(entity, const model[]) { if(!is_valid_ent(entity)) return FMRES_IGNORED; switch(cs_get_weapon_id(entity)) { case CSW_M4A1: { entity_set_model(entity, _emke_models[2]); } case CSW_AK47: { entity_set_model(entity, _ak_models[2]); } case CSW_AWP: { entity_set_model(entity, _awp_models[2]); } case CSW_SCOUT: { entity_set_model(entity, _scout_models[2]); } case CSW_USP: { entity_set_model(entity, _usp_models[2]); } case CSW_GLOCK18: { entity_set_model(entity, _glock_models[2]); } //case CSW_MP5NAVY: { entity_set_model(entity, _mp5_models[2]); } case CSW_UMP45: { entity_set_model(entity, _ump_models[2]); } case CSW_M249: { entity_set_model(entity, _mash_models[2]); } case CSW_DEAGLE: { entity_set_model(entity, _dgl_models[2]); } case CSW_HEGRENADE: {entity_set_model(entity, _he_models[2]); } case CSW_FAMAS: { entity_set_model(entity, _famas_models[2]); } } return FMRES_IGNORED;}
Palikau CS pasaulį ;/ . Nebepasiekiamas.
Re: modelių keitimas.
aaarnas wrote:contain(model, "w_m4a1") != turi būti.
Antrame variante tik pavyzdys.. Reikia char vietas atitaikyti model masyve.
Daryk taip:
Code: Select all
public fw_SetModel(entity, const model[]) { if(!is_valid_ent(entity)) return FMRES_IGNORED; switch(cs_get_weapon_id(entity)) { case CSW_M4A1: { entity_set_model(entity, _emke_models[2]); } case CSW_AK47: { entity_set_model(entity, _ak_models[2]); } case CSW_AWP: { entity_set_model(entity, _awp_models[2]); } case CSW_SCOUT: { entity_set_model(entity, _scout_models[2]); } case CSW_USP: { entity_set_model(entity, _usp_models[2]); } case CSW_GLOCK18: { entity_set_model(entity, _glock_models[2]); } //case CSW_MP5NAVY: { entity_set_model(entity, _mp5_models[2]); } case CSW_UMP45: { entity_set_model(entity, _ump_models[2]); } case CSW_M249: { entity_set_model(entity, _mash_models[2]); } case CSW_DEAGLE: { entity_set_model(entity, _dgl_models[2]); } case CSW_HEGRENADE: {entity_set_model(entity, _he_models[2]); } case CSW_FAMAS: { entity_set_model(entity, _famas_models[2]); } } return FMRES_IGNORED;}
Code: Select all
L 04/09/2011 - 19:04:05: [CSTRIKE] Non-player entity 2 out of rangeL 04/09/2011 - 19:04:05: [AMXX] Displaying debug trace (plugin ".amxx")L 04/09/2011 - 19:04:05: [AMXX] Run time error 10: native error (native "cs_get_weapon_id")L 04/09/2011 - 19:04:05: [AMXX] [0] .sma::fw_SetModel (line 430)L 04/09/2011 - 19:04:12: [CSTRIKE] Non-player entity 1 out of rangeL 04/09/2011 - 19:04:12: [AMXX] Displaying debug trace (plugin ".amxx")L 04/09/2011 - 19:04:12: [AMXX] Run time error 10: native error (native "cs_get_weapon_id")L 04/09/2011 - 19:04:12: [AMXX] [0] .sma::fw_SetModel (line 430)
Re: modelių keitimas.
Atrodo cs_get_weapon_id() naudojant entity iš FM_SetModel forward'o visada grąžina 0, tad tekst dirbtis su model[] eilutės tikrinimu.
Edit:
Edit:
Code: Select all
GetWeaponFromModel(const model[]){ static Trie:weaponIds; if (weaponIds == Invalid_Trie) { weaponIds = TrieCreate(); TrieSetCell(weaponIds, "models/w_ak47.mdl", CSW_AK47); TrieSetCell(weaponIds, "models/w_aug.mdl", CSW_AUG); TrieSetCell(weaponIds, "models/w_awp.mdl", CSW_AWP); TrieSetCell(weaponIds, "models/w_c4.mdl", CSW_C4); TrieSetCell(weaponIds, "models/w_deagle.mdl", CSW_DEAGLE); TrieSetCell(weaponIds, "models/w_elite.mdl", CSW_ELITE); TrieSetCell(weaponIds, "models/w_famas.mdl", CSW_FAMAS); TrieSetCell(weaponIds, "models/w_fiveseven.mdl", CSW_FIVESEVEN); //TrieSetCell(weaponIds, "models/w_flashbang.mdl", CSW_FLASHBANG); TrieSetCell(weaponIds, "models/w_g3sg1.mdl", CSW_G3SG1); TrieSetCell(weaponIds, "models/w_galil.mdl", CSW_GALIL); TrieSetCell(weaponIds, "models/w_glock18.mdl", CSW_GLOCK18); //TrieSetCell(weaponIds, "models/w_hegrenade.mdl", CSW_HEGRENADE); //TrieSetCell(weaponIds, "models/w_kevlar.mdl", CSW_VEST); //TrieSetCell(weaponIds, "models/w_knife.mdl", CSW_KNIFE); TrieSetCell(weaponIds, "models/w_m3.mdl", CSW_M3); TrieSetCell(weaponIds, "models/w_m4a1.mdl", CSW_M4A1); TrieSetCell(weaponIds, "models/w_m249.mdl", CSW_M249); TrieSetCell(weaponIds, "models/w_mac10.mdl", CSW_MAC10); TrieSetCell(weaponIds, "models/w_mp5.mdl", CSW_MP5NAVY); TrieSetCell(weaponIds, "models/w_p90.mdl", CSW_P90); TrieSetCell(weaponIds, "models/w_p228.mdl", CSW_P228); TrieSetCell(weaponIds, "models/w_scout.mdl", CSW_SCOUT); TrieSetCell(weaponIds, "models/w_sg550.mdl", CSW_SG550); TrieSetCell(weaponIds, "models/w_sg552.mdl", CSW_SG552); //TrieSetCell(weaponIds, "models/w_shield.mdl", CSW_SHIELD); //TrieSetCell(weaponIds, "models/w_smokegrenade.mdl", CSW_SMOKEGRENADE); TrieSetCell(weaponIds, "models/w_tmp.mdl", CSW_TMP); TrieSetCell(weaponIds, "models/w_ump45.mdl", CSW_UMP45); TrieSetCell(weaponIds, "models/w_usp.mdl", CSW_USP); TrieSetCell(weaponIds, "models/w_xm1014.mdl", CSW_XM1014); } new weapon; return TrieGetCell(weaponIds, model, weapon) ? weapon : 0;}
Re: modelių keitimas.
Kuris variantas optimalesnis? Ta kur hleV pasiūlė ar šis:
EDIT:
Su šiuo būdu viskas veikia, bet meta:
L 04/10/2011 - 17:41:24: [AMXX] Displaying debug trace (plugin ".amxx")
L 04/10/2011 - 17:41:24: [AMXX] Run time error 5: memory access
L 04/10/2011 - 17:41:24: [AMXX] [0] .sma::fw_SetModel (line 611)
Ant šitos eilutes meta switch(model[9])
Code: Select all
public fw_SetModel(entity, const model[]) { if(!is_valid_ent(entity)) return FMRES_IGNORED; switch(model[9]) { case 'm': { switch(model[10]) { case '4': { entity_set_model(entity, _emke_models[2]); } case '2': { entity_set_model(entity, _mash_models[2]); } } } }}ir t.t.
Su šiuo būdu viskas veikia, bet meta:
L 04/10/2011 - 17:41:24: [AMXX] Displaying debug trace (plugin ".amxx")
L 04/10/2011 - 17:41:24: [AMXX] Run time error 5: memory access
L 04/10/2011 - 17:41:24: [AMXX] [0] .sma::fw_SetModel (line 611)
Ant šitos eilutes meta switch(model[9])
Re: modelių keitimas.
Jei nesi prisidėjęs modelių su panašiais pavadinimais ir tikrinamas vieną kitą raidę esi įsitikinęs, kad modelis tas kurio ieškai, tai naudok switch.
Who is online
Users browsing this forum: No registered users and 4 guests