Dabar yra 2019 Gru 14 13:31




 Puslapis 11 [ 4 pranešimai(ų) ] 
Autorius Žinutė
 Pranešimo tema: Reikia pagalbos dėl submodels
Žinutės numeris: #1  StandartinėParašytas: 2019 Rgs 01 13:42 
Ar jis surinks 50 žinučių?
Vartotojo avataras

Užsiregistravo: 2015 Geg 29 22:41
Pranešimai: 37
Karma: 2
Sveiki. Bandau pereiti ant submodels, bet iškilo klausimas dėl grupinių submodels uždėjimo.
Pas mane yra vienoje skiltyje hats, kitoje - skinai.
Šaltinis : https://forums.alliedmods.net/showthread.php?t=210789

Aš tuos submodels persidariau, tai pas mane yra taip:
Modelių skaičius - 6
Hats skaičius - 23

Cituojant
Cituoti:
pev_body = hat_id * amount_of_models + model_id
turi būti taip, bet vėlgi nėra tiksliai paaiškinta,
ar modelių suma tik hats reikšmė, ar visų modelių kartu sudėjus.

Tarkim, aš noriu užsidėti pas save antrąjį submodel, bei antrą hat tai bandžiau skaičiuot:

1 * 23 + 1 = 24 (netinka)
2 * 23 + 2 = 48 (netinka) (cia testavimas, nedarant atimties veiksmo)

2 * 29 + 2 = 60 (netinka)
1 * 29 + 1 = 30 (netinka) (cia testavimas, nedarant atimties veiksmo)

Jau galva net skauda, niekaip neuzdeda man normalaus skino, kokio reikia :)

Net nebežinau kokią reikšmę įvest .. :trollface:

  1. set_pev(id, pev_body, ?)


Gal kas susidūrėt su šia bėda, ar aš kažko nesuprantu? :asian:


Atsijungęs
 Aprašymas  
 
 Pranešimo tema: Re: Reikia pagalbos dėl submodels
Žinutės numeris: #2  StandartinėParašytas: 2019 Rgs 19 16:20 
AMX Mod X ekspertai
Vartotojo avataras

Užsiregistravo: 2011 Bal 02 11:23
Pranešimai: 875
Karma: 73

Miestas: Šiauliai


METŲ NARYS
O geras, nemaniau kad kažkam kažkada šito prireiks. Kažkada sukau galvą, kaip apskaičiuot šitą šūdą. HL bei HL model viewer'iai naudoja HLSDK funkcijas išgaut iš modelio informaciją, o su Pawn jau sunkiau. Bet šiaip ne taip gavosi.

Funkcija:
  1. /**
  2.  * Calculates model body index from given parameters.
  3.  *
  4.  * @param parts  Model part indexes from each group
  5.  * @param sizes  Each group's sizes
  6.  * @param count  Total amount of groups
  7.  * @return       Body index
  8.  */
  9. stock CalculateModelBody(const parts[], const sizes[], count)
  10. {
  11.     new body = 0;
  12.  
  13.     while (count--)
  14.     {
  15.         if (sizes[count] == 1)
  16.             continue;
  17.        
  18.         new temp = parts[count];
  19.  
  20.         for (new i = 0; i < count; i++)
  21.             temp *= sizes[i];
  22.  
  23.         body += temp;
  24.     }
  25.  
  26.     return body;
  27. }

Pavyzdys:
  1. // Let's use HL soldier model hgrunt.mdl
  2. entity_set_model(entity, "models/player/hgrunt.mdl");
  3.  
  4. // hgrunt.mdl has 3 model part groups:
  5. new groupCount = 3;
  6.  
  7. // By inspecting hgrunt.mdl via HLMV we can see it has these model groups and parts:
  8. // body    (1 part)
  9. // heads   (4 parts)
  10. // weapons (3 parts)
  11. new groupSizes[] =
  12. {
  13.     1, // Size of 1st model part group (body)
  14.     4, // Size of 2nd model part group (heads)
  15.     3  // Size of 3rd model part group (weapons)
  16. };
  17.  
  18. // Now define which parts we want to use (counting starts from zero)
  19. new modelParts[] =
  20. {
  21.     0, // 1st (and only) part in body group
  22.     2, // 3rd part in heads group (balaclava)
  23.     1  // 2nd part in weapons group (shotgun)
  24. };
  25.  
  26. // Let's calculate body and set it for entity
  27. new body = CalculateModelBody(modelParts, groupSizes, groupCount);
  28. entity_set_int(entity, EV_INT_body, body);

Tai tavo atveju, jei pvz. nori imt pirmą kūną (index 0) ir antrą kepurę (index 1), turbūt būtų
  1. new body = CalculateModelBody({0, 1}, {6, 23}, 2);

Mėgink.



_________________
Paveikslėlis ← RIP best userbar
DISKUSIJA: KIETAS PLUGIN'O UŽSAKOVAS
Privačios pagalbos neteikiu!
Atsijungęs
 Aprašymas  
 
 Pranešimo tema: Re: Reikia pagalbos dėl submodels
Žinutės numeris: #3  StandartinėParašytas: 2019 Rgs 20 21:12 
Ar jis surinks 50 žinučių?
Vartotojo avataras

Užsiregistravo: 2015 Geg 29 22:41
Pranešimai: 37
Karma: 2
hleV rašė:
O geras, nemaniau kad kažkam kažkada šito prireiks. Kažkada sukau galvą, kaip apskaičiuot šitą šūdą. HL bei HL model viewer'iai naudoja HLSDK funkcijas išgaut iš modelio informaciją, o su Pawn jau sunkiau. Bet šiaip ne taip gavosi.

Funkcija:
  1. /**
  2.  * Calculates model body index from given parameters.
  3.  *
  4.  * @param parts  Model part indexes from each group
  5.  * @param sizes  Each group's sizes
  6.  * @param count  Total amount of groups
  7.  * @return       Body index
  8.  */
  9. stock CalculateModelBody(const parts[], const sizes[], count)
  10. {
  11.     new body = 0;
  12.  
  13.     while (count--)
  14.     {
  15.         if (sizes[count] == 1)
  16.             continue;
  17.        
  18.         new temp = parts[count];
  19.  
  20.         for (new i = 0; i < count; i++)
  21.             temp *= sizes[i];
  22.  
  23.         body += temp;
  24.     }
  25.  
  26.     return body;
  27. }

Pavyzdys:
  1. // Let's use HL soldier model hgrunt.mdl
  2. entity_set_model(entity, "models/player/hgrunt.mdl");
  3.  
  4. // hgrunt.mdl has 3 model part groups:
  5. new groupCount = 3;
  6.  
  7. // By inspecting hgrunt.mdl via HLMV we can see it has these model groups and parts:
  8. // body    (1 part)
  9. // heads   (4 parts)
  10. // weapons (3 parts)
  11. new groupSizes[] =
  12. {
  13.     1, // Size of 1st model part group (body)
  14.     4, // Size of 2nd model part group (heads)
  15.     3  // Size of 3rd model part group (weapons)
  16. };
  17.  
  18. // Now define which parts we want to use (counting starts from zero)
  19. new modelParts[] =
  20. {
  21.     0, // 1st (and only) part in body group
  22.     2, // 3rd part in heads group (balaclava)
  23.     1  // 2nd part in weapons group (shotgun)
  24. };
  25.  
  26. // Let's calculate body and set it for entity
  27. new body = CalculateModelBody(modelParts, groupSizes, groupCount);
  28. entity_set_int(entity, EV_INT_body, body);

Tai tavo atveju, jei pvz. nori imt pirmą kūną (index 0) ir antrą kepurę (index 1), turbūt būtų
  1. new body = CalculateModelBody({0, 1}, {6, 23}, 2);

Mėgink.


Viskas veikia, ačiū :D Reiks dabar su kitais išsitestuoti. :D
Dar toks pastebėjimas, kad į stock`e pakeitus į
  1. new temp = parts[count]-1;
nereiks atimti po vieną nuolatos, ko aš, žinoma, vistiek pamiršiu :D


Paskutinį kartą redagavo likux35 2019 Rgs 20 23:03. Iš viso redaguota 3 kartus.

Atsijungęs
 Aprašymas  
 
 Pranešimo tema: Re: Reikia pagalbos dėl submodels
Žinutės numeris: #4  StandartinėParašytas: 2019 Rgs 21 14:09 
AMX Mod X ekspertai
Vartotojo avataras

Užsiregistravo: 2011 Bal 02 11:23
Pranešimai: 875
Karma: 73

Miestas: Šiauliai


METŲ NARYS
Geriau nieko nekeitinėk tam stock'e jei pilnai nesupranti kaip jis skaičiuoja. Gal su vienu modeliu pasiseks ir veiks, bet pabandysi su kitais, kur pvz. yra daugiau sub-grupių ir pnš. ir gali jau blogai apskaičiuot. Indeksai visada ėjo ir eis nuo 0, ne nuo 1. Nieko čia atiminėt nereikia, tiesiog įsimint šitą esminį dalyką.



_________________
Paveikslėlis ← RIP best userbar
DISKUSIJA: KIETAS PLUGIN'O UŽSAKOVAS
Privačios pagalbos neteikiu!
Atsijungęs
 Aprašymas  
 
Rodyti paskutinius pranešimus:  Rūšiuoti pagal  
 Puslapis 11 [ 4 pranešimai(ų) ] 


Dabar prisijungę

Vartotojai naršantys šį forumą: Registruotų vartotojų nėra ir 2 svečių


Jūs negalite kurti naujų temų šiame forume
Jūs negalite atsakinėti į temas šiame forume
Jūs negalite redaguoti savo pranešimų šiame forume
Jūs negalite trinti savo pranešimų šiame forume
Jūs negalite prikabinti failų šiame forume

Ieškoti:
Pereiti į: