here's your problem!
.
if (v_selected_wpn == 1)
{
STRING* str_selected_number = "2";
}
if (v_selected_wpn == 0)
{
STRING* str_selected_number = "1";
}
you're not changing str_selected_number just creating a new local variable, use
str_cpy(str_selected_number, "1");
also, if you've only two weapons
v_selected_wpn += 1;
v_selected_wpn %= 2;
would be better written as
v_selected_wpn = 1 - v_selected_wpn;