Проблемы с YSF
#1

Поставил себе плагин YSF из за расширенных функций с TD и других нужных функций.
В ходе использования почему-то функция IsValidPlayerTextDraw возвращает не ожидаемые значения.

Полная система в которой использую её:
PHP код:
UpdateVehicleDamage(playerid, vehicleid)
{
    new 
        
color1,
        
color2,
        
modelid,
        
Float:health,
        
Float:progress
    
;
    
GetVehicleHealth(vehicleid, health);
    
modelid = GetVehicleModel(vehicleid);
    
GetVehicleColor(vehicleid, color1, color2);
    
    
progress = ((health-300.0) * 100.0 / 700.0) * 0.4;
    
    
printf("%f", progress);
    
    if (
progress < 0.0) progress = 0.0;
    else if (
progress > 40.0) progress = 40.0;
    
    if (!
IsValidPlayerTextDraw(playerid, SpeedoTextDraws[playerid][8]))
    {
        
SpeedoTextDraws[playerid][8] = CreatePlayerTextDraw(playerid, 540.000000, 420.000000, "LD_SPAC:white");
        
PlayerTextDrawLetterSize(playerid, SpeedoTextDraws[playerid][8], 0.000000, 0.000000);
        
PlayerTextDrawTextSize(playerid, SpeedoTextDraws[playerid][8], 40.000000, -progress);
        
PlayerTextDrawAlignment(playerid, SpeedoTextDraws[playerid][8], 1);
        
PlayerTextDrawColor(playerid, SpeedoTextDraws[playerid][8], 0x9CC254FF);
        
PlayerTextDrawSetShadow(playerid, SpeedoTextDraws[playerid][8], 0);
        
PlayerTextDrawSetOutline(playerid, SpeedoTextDraws[playerid][8], 0);
        
PlayerTextDrawBackgroundColor(playerid, SpeedoTextDraws[playerid][8], 255);
        
PlayerTextDrawFont(playerid, SpeedoTextDraws[playerid][8], 4);
        
PlayerTextDrawSetProportional(playerid, SpeedoTextDraws[playerid][8], 0);
        
PlayerTextDrawSetShadow(playerid, SpeedoTextDraws[playerid][8], 0);
        
PlayerTextDrawShow(playerid, SpeedoTextDraws[playerid][8]);
        print(
"TD 8 Не создан");
    }
    else
    {
        
PlayerTextDrawTextSize(playerid, SpeedoTextDraws[playerid][8], 40.000000, -progress);
        
PlayerTextDrawShow(playerid, SpeedoTextDraws[playerid][8]);
        print(
"TD 8 создан");
    }
    if (!
IsValidPlayerTextDraw(playerid, SpeedoTextDraws[playerid][9]))
    {    
        
SpeedoTextDraws[playerid][9] = CreatePlayerTextDraw(playerid, 540.000000, 380.000000, "");
        
PlayerTextDrawLetterSize(playerid, SpeedoTextDraws[playerid][9], 0.000000, 0.000000);
        
PlayerTextDrawTextSize(playerid, SpeedoTextDraws[playerid][9], 40.000000, 40.000000);
        
PlayerTextDrawAlignment(playerid, SpeedoTextDraws[playerid][9], 1);
        
PlayerTextDrawColor(playerid, SpeedoTextDraws[playerid][9], -1);
        
PlayerTextDrawSetShadow(playerid, SpeedoTextDraws[playerid][9], 0);
        
PlayerTextDrawSetOutline(playerid, SpeedoTextDraws[playerid][9], 0);
        
PlayerTextDrawBackgroundColor(playerid, SpeedoTextDraws[playerid][9], 0);
        
PlayerTextDrawFont(playerid, SpeedoTextDraws[playerid][9], 5);
        
PlayerTextDrawSetProportional(playerid, SpeedoTextDraws[playerid][9], 0);
        
PlayerTextDrawSetShadow(playerid, SpeedoTextDraws[playerid][9], 0);
        
PlayerTextDrawSetPreviewModel(playerid, SpeedoTextDraws[playerid][9], modelid);
        
PlayerTextDrawSetPreviewRot(playerid, SpeedoTextDraws[playerid][9], -10.000000, 0.000000, 0.000000, 0.800000);
        
PlayerTextDrawSetPreviewVehCol(playerid, SpeedoTextDraws[playerid][9], color1, color2);
        
PlayerTextDrawShow(playerid, SpeedoTextDraws[playerid][9]);
        print(
"TD 9 Не создан");
    }
    return 
true;
} 
Вызов:
PHP код:
public OnPlayerUpdate(playerid)
{
    if ((new 
vehicleid = GetPlayerVehicleID(playerid)) != 0 && GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
    {
        
UpdateVehicleDamage(playerid, vehicleid);
    }
    
#if defined speedo_OnPlayerUpdate
        
return speedo_OnPlayerUpdate(playerid);
    
#else
            
return false;
    
#endif
}
#if defined _ALS_OnPlayerUpdate
    #undef OnPlayerUpdate
#else
    #define _ALS_OnPlayerUpdate
#endif
#define OnPlayerUpdate speedo_OnPlayerUpdate
#if defined speedo_OnPlayerUpdate
    
forward speedo_OnPlayerUpdate(playerid);
#endif 
Сервер лог:
PHP код:
[14:54:02] 40.000000
[14:54:02] TD 8 Не создан
[14:54:02] TD 9 Не создан
[14:54:02] 40.000000
[14:54:02] TD 8 Не создан
[14:54:02] TD 9 Не создан
[14:54:02] 40.000000
[14:54:02] TD 8 Не создан
[14:54:02] TD 9 Не создан
[14:54:02] 40.000000
[14:54:02] TD 8 Не создан
[14:54:02] TD 9 Не создан
[14:54:02] 40.000000
[14:54:02] TD 8 Не создан
[14:54:02] TD 9 Не создан 
UPD: Мде, еще год назад в теме писали, что не работает эта функция, так и не исправлено. Тему можно закрыть/удалить.
Reply
#2

Должна работать. Не пробовал вызывать UpdateVehicleDamage с задержкой (лучше в таймере, а не в OnPlayerUpdate)?
Reply
#3

Quote:
Originally Posted by ZiGGi
Посмотреть сообщение
Должна работать. Не пробовал вызывать UpdateVehicleDamage с задержкой (лучше в таймере, а не в OnPlayerUpdate)?
Да пробовал вызвать командой, ситуация не изменялась.

Да я уже по другому это реализовал, когда узнал что эта функция не рабочая (версия плагина R14-2, более новая версия не хочет запускаться и во все).
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)