Siema
Mam problem odnoście structów za pomocą enuma i stringów w ich wnętrzu. W niektórych przypadkach nie mogę się normalnie dostać za pomocą wartości enum do oczekiwanej wartości. Dzieje się to w przypadku wystąpienia stringa. Po prostu jakby znak 0 na końcu stringa niszczył mi strukturę, a kolejny string pojawia się od razu za poprzednim zamiast w odpowiednim miejscu.
PRZYKŁAD
Mam sobie takie 2 enumy:
enum _:WeaponModelData
{
VModelPath[128],
PModelPath[128],
WModelPath[128]
}
enum _:BoxingTeamData
{
BoxingTeamName[64],
BoxingTeamGlovesModelData[WeaponModelData]
}
Przykładowa tablica, która implementuje te strukty:
new boxingTeams[][BoxingTeamData] =
{
{
"team_1",
{ "v_sciezk1.mdl", "p_sciezk1.mdl", "w_sciezk1.mdl" }
},
{
"team_2",
{ "v_sciezk2.mdl", "p_sciezk2.mdl", "w_sciezk2.mdl" }
}
}
Tutaj przykładowy problem:
public plugin_precache()
{
for(new i = 0; i < sizeof(boxingTeams); i++)
{
precache_model(boxingTeams[i][BoxingTeamGlovesModelData][VModelPath]);
precache_model(boxingTeams[i][BoxingTeamGlovesModelData][PModelPath]);
precache_model(boxingTeams[i][BoxingTeamGlovesModelData][WModelPath]);
}
}
Nawet przy zwykłej próbie precachu za pomocą pętli mam problem. Po prostu w miejscu 2 linijki pętli (precache_model(boxingTeams[i][BoxingTeamGlovesModelData][PModelPath])
mam już praktycznie pustego stringa i cały struct się jebie.
Ogólnie zauważyłem też, że przy korzystaniu tylko z pierwszego structa problem nie występuje. Jakby BoxingTeamName[64] mieszał wszystko za nim. To niżej w teorii działa jak testowałem.
new prisonerKnifeWeaponModelData[WeaponModelData] =
{
"v_skin.mdl",
"p_skin.mdl",
"w_skin.mdl"
};
Wie ktoś jak to robić poprawnie? Może ja coś źle robię w przypadku próby wydobycia stringa w takich strukturach?
Pozdrawiam


Dodatki SourceMod












