Не всегда отображается килчат
#1

Здравствуйте, не знаю в чем проблема, но если загрузить public OnPlayerTakeDamage в килчате перестает отображать убийства с причиной взрыв, то есть убийство с rpg или гидры или гранаты не отображает в килчате ну и кил соответственно не засчитывает, я очень долго искал причину этой проблемы сначала в onplayerdeath, но теперь точно уверен что проблема в OnPlayerTakeDamage, вот код

PHP код:
public OnPlayerTakeDamage(playeridissueridFloat:amountweaponid)
{
    if(
issuerid == INVALID_PLAYER_ID) return 1;
    if (
tdmfull[issuerid] != && GetPlayerTeam(issuerid) == GetPlayerTeam(playerid)) return 1;
    if (
PlayerInfo[playerid][God] == false){
    new 
string[60], str[256];
    
PlayerPlaySound(issuerid,17802,0,0,0);
    
// если удалить участок отображения дамага то будет все нормально
    
format(str,256,"~r~~h~ %s(%d) / %.0f DMG / %s",BadSymbols(PlayerInfo[issuerid][pName]),issuerid,amount,WeaponNames[GetPlayerWeapon(issuerid)]);
    
PlayerTextDrawSetString(playerid,PotDamage[playerid],str);
    
PlayerTextDrawHide(playerid,PotDamage[playerid]);
    
PlayerTextDrawShow(playerid,PotDamage[playerid]);
    
KillTimer(DamageTimer[playerid]);
    
DamageTimer[playerid] = SetTimerEx("HideDamageTextDraw"25000"d"playerid);
    
format(str,256,"~g~~h~ %s(%d) / %.0f DMG / %s",BadSymbols(PlayerInfo[playerid][pName]),playerid,amount,WeaponNames[GetPlayerWeapon(issuerid)]);
    
PlayerTextDrawSetString(issuerid,PotDamage[issuerid],str);
    
PlayerTextDrawHide(issuerid,PotDamage[issuerid]);
    
PlayerTextDrawShow(issuerid,PotDamage[issuerid]);
    
KillTimer(DamageTimer[issuerid]);
    
DamageTimer[issuerid] = SetTimerEx("HideDamageTextDraw"25000"d"issuerid);
    
//
    
format(string,sizeof(string),"-%.0f",amount);
    
SetPlayerChatBubble(playeridstring0xFF4500FF 100.02000);
    
PlayerInfo[playerid][DmgTaken] += amount;
    
PlayerInfo[issuerid][DmgGiven] += amount;
    }
    return 
1;
}
forward HideDamageTextDraw(playerid);
public 
HideDamageTextDraw(playeridPlayerTextDrawHide(playerid,PotDamage[playerid]); 
Подскажите в чем дело
Reply
#2

Quote:

WeaponNames[GetPlayerWeapon(issuerid)]

Если я "пропингую" или игрок, у меня к эту времени будет кулак. Логика ломается.
И да... взрывное оружие не определяется, всегда будет 51(просто взрыв)
Reply
#3

WeaponNames[GetPlayerWeapon(issuerid)] а каким образом это влияет на вывод информации убийства игрока игроком с причиной 51, сам текстдрав работает замечательно, при убийстве с оружия любого все как обычно все в кил чат выводит, но почему при убийстве одного игрока другим взрывом не выводит в килчат

Проверил, убрал WeaponNames[GetPlayerWeapon(issuerid)], то же самое на убийство взрывом 0 реакции, в килчате пусто
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)