l4d PrintToChatAll нужна помощь

B

bYKa

Здравствуйте. Как правильно вставить это -

PrintToChatAll("\x04[INFO]\x05 NEW %s TANK SPAWN HP: %d \x04", clName , maxHP);

в код:
PHP:
ShowHealthGauge(client, maxBAR, maxHP, nowHP, String:clName[]){
    new percent = RoundToCeil((float(nowHP) / float(maxHP)) * float(maxBAR));
    new i, length = maxBAR * nCharLength + 2;

    decl String:showBAR[length];
    showBAR[0] = '\0';
    for(i=0; i<percent&&i<maxBAR; i++){
        StrCat(showBAR, length, sCharHealth);
    }
    for(; i<maxBAR; i++){
        StrCat(showBAR, length, sCharDamage);
    }

    if(nShowType){
        if(!nShowNum){
            PrintHintText(client, "HP: |-%s-|  %s", showBAR, clName);
        }
        else{
            PrintHintText(client, " %s HP: %d / %d ", clName,nowHP, maxHP);
        }
    }
    else{
        if(!nShowNum){
            PrintCenterText(client, "HP: |-%s-|  %s", showBAR, clName);
        }
        else{
            PrintHintText(client, " %s HP: %d / %d ", clName,nowHP, maxHP);
        }

    }
    PrintToChatAll("\x04[INFO]\x05 NEW %s TANK SPAWN HP: %d \x04", clName , maxHP);
}
У МЕНЯ МНОГО СПАМА ПОЛУЧАЕТСЯ В ЧАТЕ:

[INFO] NEW TANK SPAWN HP: 20000
[INFO] NEW TANK SPAWN HP: 20000
[INFO] NEW TANK SPAWN HP: 20000
[INFO] NEW TANK SPAWN HP: 20000

НУЖНО ЧТОБЫ ПИСАЛО 1 РАЗ.
 

Vit_ amin

Добрая душа
Сообщения
1,525
Реакции
688
Данное сообщение вставь в событие появления танка tank_spawn.
 
B

bYKa

само сообщение работает когда танк появляется [INFO] NEW TANK SPAWN но у меня не работают значения clName , maxHP.
то есть не показвает здоровье танка и его название.
вот ссылка на плагин https://forums.alliedmods.net/showthread.php?t=125747
кто поможет правильно поставить

PrintToChatAll("\x04[INFO]\x05 NEW %s TANK SPAWN HP: %d \x04", clName , maxHP);
 

Vit_ amin

Добрая душа
Сообщения
1,525
Реакции
688
Не компилировал (нету возможности)
 

Вложения

  • l4d_infectedhp.sp
    10.2 КБ · Просмотры: 4
Последнее редактирование:
B

bYKa

это не работает. вообще нет сообщения о танке.
 
B

bYKa

не работает. мой первый пост там работает но вместо одной строки очень много.может там добавить что то нужно
 

Vit_ amin

Добрая душа
Сообщения
1,525
Реакции
688
Попробуй так я уже не знаю даже, если не так ...
 
B

bYKa

СРАБОТАЛ ЭТОТ КОД

public Action:OnTankSpawn(Handle:event, const String:name[], bool:dontBroadcast)
{
new client = GetClientOfUserId(GetEventInt(event, "userid"));
decl String:clName[MAX_NAME_LENGTH];
GetClientName(client, clName, sizeof(clName));
{
PrintToChatAll("\x04[INFO]\x05 NEW \x04 %s \x05 TANK SPAWN \x04 HP: %i\x05", clName, GetConVarInt(FindConVar("z_tank_health")));
}

}

КАК В НЕГО ДОБАВИТЬ maxHP чтобы показывало HP танка ?

GetConVarInt(FindConVar("z_tank_health")) показвывает HP не правильно.

у танка 20000 он показывает 10000
 

Vit_ amin

Добрая душа
Сообщения
1,525
Реакции
688
Значит какой, то другой плагин или еще что-то меняет, потому что консольная переменная z_tank_spawn и так устанавливает максимальное значение здоровья танку.
 
B

bYKa

public Action:OnTankSpawn(Handle:event, const String:name[], bool:dontBroadcast)
{
new client = GetClientOfUserId(GetEventInt(event, "userid"));
new maxHP = GetEntProp(client, Prop_Send, "m_iMaxHealth") & 0xffff;
decl String:clName[MAX_NAME_LENGTH];
GetClientName(client, clName, sizeof(clName));
{
PrintToChatAll("\x04[INFO]\x05 NEW \x04 %s \x05 TANK SPAWN \x04 HP: %i\x05", clName, maxHP);
}

}

HP работает .зато не работает clName ((
 

Vit_ amin

Добрая душа
Сообщения
1,525
Реакции
688
public Action:OnTankSpawn(Handle:event, const String:name[], bool:dontBroadcast)
{
new client = GetClientOfUserId(GetEventInt(event, "userid"));
new maxHP = GetEntProp(client, Prop_Send, "m_iMaxHealth") & 0xffff;
decl String:clName[MAX_NAME_LENGTH];
GetClientName(client, clName, sizeof(clName));
{
PrintToChatAll("\x04[INFO]\x05 NEW \x04 %s \x05 TANK SPAWN \x04 HP: %i\x05", clName, maxHP);
}

}

HP работает .зато не работает clName ((
PHP:
public OnSpawnTank(Handle:event, const String:name[], bool:dontBroadcast)
{
    new client = GetClientOfUserId(GetEventInt(event, "userid"));
    decl String:s_name[MAX_NAME_LENGTH];
    PrintToChatAll("\x04[INFO]\x05 NEW \x04 %s \x05 TANK SPAWN \x04 HP: %i\x05", GetClientName(client, s_name, sizeof(s_name)), GetEntProp(client, Prop_Send, "m_iMaxHealth"));
}
 

The End Is Near...

Russian Roulette
Сообщения
874
Реакции
691
Vit_ amin
PHP:
// Функция GetClientName возвращает:
// True on success, false otherwise. (https://sm.alliedmods.net/api/index.php?fastload=show&id=399&)
// т.е. true/false; 1/0

"%N", client // надо пробовать, по аналогии с css, может что и изменили, давно не проверял
 
Сверху Снизу