17.01.2017, 18:25
Hi, I'm creating a player object system. Everything is working well except the colors. If I set a color then it just makes the object invisible. This is what the OnDialogResponse for adding colors looks like:
This is how I set the attached object:
What's the problem? Everything else works: it saves and loads everything including the colors, but the colors are acting weird.
Код:
case DIALOG_PLAYER_OBJECT_COLOR:
{
new color, slot = PlayerInfo[playerid][pEditingObject];
switch (listitem)
{
case 0: color = 0xFFFFFFFF;
case 1: color = 0x000000FF;
case 2: color = 0x999999FF;
case 3: color = 0x663300FF;
case 4: color = 0xFF0000FF;
case 5: color = 0x990000FF;
case 6: color = 0xFF9900FF;
case 7: color = 0xFFFF00FF;
case 8: color = 0x00CC00FF;
case 9: color = 0x66FF00FF;
case 10: color = 0x0099FFFF;
case 11: color = 0x66CCFFFF;
case 12: color = 0x000099FF;
case 13: color = 0x00FFFFFF;
case 14: color = 0xFF66FFFF;
case 15: color = 0x3300FFFF;
}
for (new i; i < strlen(inputtext); i++) {
tolower(inputtext[0]);
}
PlayerObjects[playerid][slot][ObjectColor] = color; //this is the most important part
PlayerInfo[playerid][pEditingObject] = -1;
ResetListedObjects(playerid);
if (PlayerObjects[playerid][slot][ObjectWearing]) RefreshPlayerObject(playerid, slot);
SendClientMessageEx(playerid, COLOR_YELLOW, "* You have set the color of your %s to %s.", GetPlayerObjectName(PlayerObjects[playerid][slot][ObjectModel]), inputtext);
}
Код:
RefreshPlayerObject(playerid, slot)
{
if (IsPlayerAttachedObjectSlotUsed(playerid, PlayerObjects[playerid][slot][ObjectIndex])) RemovePlayerAttachedObject(playerid, PlayerObjects[playerid][slot][ObjectIndex]);
if (PlayerObjects[playerid][slot][ObjectColor] != -1) //this part is with the colors
{
SetPlayerAttachedObject(playerid, PlayerObjects[playerid][slot][ObjectIndex], PlayerObjects[playerid][slot][ObjectModel], PlayerObjects[playerid][slot][ObjectBone], PlayerObjects[playerid][slot][ObjectPos][0], PlayerObjects[playerid][slot][ObjectPos][1], PlayerObjects[playerid][slot][ObjectPos][2],
PlayerObjects[playerid][slot][ObjectPos][3], PlayerObjects[playerid][slot][ObjectPos][4], PlayerObjects[playerid][slot][ObjectPos][5], PlayerObjects[playerid][slot][ObjectPos][6], PlayerObjects[playerid][slot][ObjectPos][7], PlayerObjects[playerid][slot][ObjectPos][8],
PlayerObjects[playerid][slot][ObjectColor], PlayerObjects[playerid][slot][ObjectColor]);
}
else
{
SetPlayerAttachedObject(playerid, PlayerObjects[playerid][slot][ObjectIndex], PlayerObjects[playerid][slot][ObjectModel], PlayerObjects[playerid][slot][ObjectBone], PlayerObjects[playerid][slot][ObjectPos][0], PlayerObjects[playerid][slot][ObjectPos][1], PlayerObjects[playerid][slot][ObjectPos][2],
PlayerObjects[playerid][slot][ObjectPos][3], PlayerObjects[playerid][slot][ObjectPos][4], PlayerObjects[playerid][slot][ObjectPos][5], PlayerObjects[playerid][slot][ObjectPos][6], PlayerObjects[playerid][slot][ObjectPos][7], PlayerObjects[playerid][slot][ObjectPos][8]);
}
}


