PDA

Просмотр полной версии : [Вопрос] Не исчезаю TextDraw`ы



HarrWe
29.07.2016, 11:11
Hello, начал заполнять мод TD и заметил что когда я 1 тестирую сервер TD нормально скрываются по таймеру, а когда сидим с другом у 1 скрывается а у другого остаются.
Вот к примеру этот код вызывается когда игроку выдаются деньги

f("+%d$", money);
PlayerTextDrawSetString(playerid, MoneyPlus[playerid], string);
PlayerTextDrawShow(playerid, MoneyPlus[playerid]);
PlayerPlaySound(playerid, 1137, 0.0, 0.0, 0.0);
SetTimer("HideTextDrawPlusMoney",5000, 0);
Вот код который вызывается

ppublic HideTextDrawPlusMoney(playerid) return PlayerTextDrawHide(playerid, MoneyPlus[playerid]);

ziggi
29.07.2016, 14:06
Ты вызываешь функцию HideTextDrawPlusMoney лишь для игрока с id 0.

ppublic HideTextDrawPlusMoney()
{
#if defined _FOREACH_LOCAL_VERSION
foreach (new playerid : Player) {
#else
for (new playerid = GetPlayerPoolSize(); playerid != -1; playerid--) {
if (!IsPlayerConnected(playerid) || IsPlayerNPC(playerid)) {
continue;
}
#endif
PlayerTextDrawHide(playerid, MoneyPlus[playerid]);
}
}

DeimoS
29.07.2016, 14:09
В таймере нужно передать playerid как параметр, иначе в HideTextDrawPlusMoney всегда передаётся 0

SetTimer("HideTextDrawPlusMoney",5000, 0);
на

SetTimerEx("HideTextDrawPlusMoney",5000, 0, "i", playerid);

- - - Добавлено - - -


Ты вызываешь функцию HideTextDrawPlusMoney лишь для игрока с id 0.

ppublic HideTextDrawPlusMoney()
{
#if defined _FOREACH_LOCAL_VERSION
foreach (new playerid : Player) {
#else
for (new playerid = GetPlayerPoolSize(); playerid != -1; playerid--) {
if (!IsPlayerConnected(playerid) || IsPlayerNPC(playerid)) {
continue;
}
#endif
PlayerTextDrawHide(playerid, MoneyPlus[playerid]);
}
}

Там же индивидуальный текстдрав показывается в момент, когда игрок игрок получает деньги. Зачем у всех скрывать?

HarrWe
29.07.2016, 14:13
Всем пасябки!Темку можете закрывать)