Вывести кредиты в hud от модуля army rank

Марина

Участник
Сообщения
144
Реакции
4
помогите вывести колличество кредитов в существующее hud меню модуля army rank

C-подобный:
#include <army_ranks>
#include <shop>

new Handle:Hud[MAXPLAYERS+1] = INVALID_HANDLE;
new String:    sRank[MAXPLAYERS+1][256];
new String:    sNextRank[MAXPLAYERS+1][256];
new Kills[MAXPLAYERS+1] = -1;
new Deaths[MAXPLAYERS+1] = -1;
new NextRankKills[MAXPLAYERS+1] = -1;

public Plugin:myinfo =
{
    name = "[ ARMY ] Hud info",
    author = "sahapro33",
    description = "",
    version = "1.1"
}

public ARMY_PlayerConnect(client,g_sRank[],g_iKills[],g_iDeaths[])
{
    if (IsClientInGame(client) && !IsFakeClient(client))
    {
        if(Hud[client]==INVALID_HANDLE)
        {
            Hud[client] = CreateTimer(1.0,HudStart,client,TIMER_REPEAT);
        }
    }
}
public ARMY_PlayerDisconnect(client,g_sRank[],g_iKills[],g_iDeaths[])
{
    if(Hud[client]!=INVALID_HANDLE)
    {
        KillTimer(Hud[client]);
        Hud[client] = INVALID_HANDLE;
    }
    sRank[client] = "";
    Kills[client] = -1;
    Deaths[client] = -1;
    sNextRank[client] = "";
    NextRankKills[client] = -1;
}

public Action:HudStart(Handle:timer, any:client)
{
    if (IsClientInGame(client) && !IsFakeClient(client))
    {
        if(IsPlayerAlive(client))
        {
            decl String:Message[256];
           
            if(!Army_GetStringRank(client,sRank[client]))
            {
                return Plugin_Stop;
            }
            if((Kills[client] = Army_GetClientKills(client))==-1)return Plugin_Stop;
            if((Deaths[client] = Army_GetClientDeaths(client))==-1)return Plugin_Stop;
            NextRankKills[client] = Army_GetClientNextRankKills(client);
            new Handle:hBuffer = StartMessageOne("KeyHintText", client);
            BfWriteByte(hBuffer, 1);
            if(Army_GetClientStringNextRank(client,sNextRank[client],sizeof(sNextRank[])))
            {
                Format(Message,sizeof(Message),"Звание: [%s]\n\nУбийств -  %d \nСмертей -  %d \n\nСледующее звание - [%s]\nТребуется убийств -  %d \n\nМеню сервера кнопка I\nДжетпак CTRL+SHIFT",
                    sRank[client],
                    Kills[client],
                    Deaths[client],
                    sNextRank[client],
                    NextRankKills[client]-Kills[client]);
                BfWriteString(hBuffer, Message);
                EndMessage();
            }
            else
            {
                Format(Message,sizeof(Message),"Ваше звание - [%s]\n\nУбийств - [ %d ]\nСмертей - [ %d ]\n\nВы достигли максимального звания!",
                    sRank[client],
                    Kills[client],
                    Deaths[client]);
                BfWriteString(hBuffer, Message);
                EndMessage();
            }
        }
    }
    else return Plugin_Stop;
    return Plugin_Continue;
}
 

AlmazON

Не путать с самим yand3xmail
Сообщения
5,099
Реакции
2,755
Format(Message,sizeof(Message),"Звание: [%s]\n\nУбийств - %d \nСмертей - %d \n\nСледующее звание - [%s]\nТребуется убийств - %d \n\nМеню сервера кнопка I\nДжетпак CTRL+SHIFT",
Заменяется на:
PHP:
FormatEx(Message,sizeof(Message),"Кредиты - %d \nЗвание: [%s]\n\nУбийств - %d \nСмертей - %d \n\nСледующее звание - [%s]\nТребуется убийств - %d \n\nМеню сервера кнопка I\nДжетпак CTRL+SHIFT", Shop_GetClientCredits(client),
Format(Message,sizeof(Message),"Ваше звание - [%s]\n\nУбийств - [ %d ]\nСмертей - [ %d ]\n\nВы достигли максимального звания!",
Тоже на:
PHP:
FormatEx(Message,sizeof(Message),"Кредитов - %d \nВаше звание - [%s]\n\nУбийств - [ %d ]\nСмертей - [ %d ]\n\nВы достигли максимального звания!", Shop_GetClientCredits(client),
 

AlmazON

Не путать с самим yand3xmail
Сообщения
5,099
Реакции
2,755
Лучше бы стоило сделать хотя бы так:
PHP:
#include <army_ranks>
#include <shop>

new Handle:Hud[MAXPLAYERS+1];

public Plugin:myinfo =
{
    name = "[ ARMY ] Hud info",
    author = "sahapro33",
    description = "",
    version = "1.1shop"
}

public ARMY_PlayerConnect(client,g_sRank[],g_iKills[],g_iDeaths[])
{
    if (IsClientInGame(client) && !IsFakeClient(client))
    {
        if(Hud[client]==INVALID_HANDLE)
        {
            Hud[client] = CreateTimer(1.0,HudStart,client,TIMER_REPEAT);
        }
    }
}
public ARMY_PlayerDisconnect(client,g_sRank[],g_iKills[],g_iDeaths[])
{
    if(Hud[client]!=INVALID_HANDLE)
    {
        KillTimer(Hud[client]);
        Hud[client] = INVALID_HANDLE;
    }
}

public Action:HudStart(Handle:timer, any:client)
{
	if(IsPlayerAlive(client))
	{
		decl String:rank[100];
		if(Army_GetStringRank(client,rank))
		{
			decl kills;
			if((kills = Army_GetClientKills(client))!=-1)
			{
				decl deaths;
				if((deaths = Army_GetClientDeaths(client))!=-1)
				{
					decl Handle:hBuffer, players[1], String:Message[256], String:nextRank[100];
					players[0] = client;
					BfWriteByte(hBuffer = StartMessage("KeyHintText", players, 1), 1);
					if(Army_GetClientStringNextRank(client,nextRank,sizeof(nextRank)))
					{
						FormatEx(Message,sizeof(Message),"Кредитов - %d \nЗвание: [%s]\n\nУбийств -  %d \nСмертей -  %d \n\nСледующее звание - [%s]\nТребуется убийств -  %d \n\nМеню сервера кнопка I\nДжетпак CTRL+SHIFT",
							Shop_GetClientCredits(client),
							rank,
							kills,
							deaths,
							nextRank,
							Army_GetClientNextRankKills(client)-kills);
					}
					else
					{
						FormatEx(Message,sizeof(Message),"Кредитов - %d \nВаше звание - [%s]\n\nУбийств - [ %d ]\nСмертей - [ %d ]\n\nВы достигли максимального звания!",
							Shop_GetClientCredits(client),
							rank,
							kills,
							deaths);
					}
					BfWriteString(hBuffer, Message);
					EndMessage();
					return Plugin_Continue;
				}
			}
		}
		Hud[client] = INVALID_HANDLE;
		return Plugin_Stop;
	}
	return Plugin_Continue;
}
И вообще, много написано для сообщения. Возможно, просто превышен лимит символов.
 

Марина

Участник
Сообщения
144
Реакции
4
@AlmazON, Убрана одна строчка, всё меню влезло, кредиты показывает, как всегда спасибо!!!)
 
Сверху Снизу