#include <Influx/simpleranks>
public void OnPluginStart()
{
HookEvent("player_spawn", Event_Spawn);
}
public void Event_Spawn(Event hEvent, const char[] sName, bool bDontBroadcast)
{
int iClient = GetClientOfUserId(hEvent.GetInt("userid"));
SetScore(iClient);
}
public void Influx_OnClientIdRetrieved( int iClient, int uid, bool bNew )
{
CreateTimer(1.0, Timer_Delay, GetClientUserId(iClient), TIMER_FLAG_NO_MAPCHANGE);
}
public Action Timer_Delay(Handle hTimer, int iUserId)
{
int iClient = GetClientOfUserId(iUserId);
if(!iClient)
{
return Plugin_Continue;
}
if(IsClientInGame(iClient) && GetClientTeam(iClient) > 1)
{
SetScore(iClient);
}
return Plugin_Continue;
}
void SetScore(int iClient)
{
SetEntProp(iClient, Prop_Data, "m_iFrags", Influx_GetClientSimpleRankPoints(iClient));
}
отлично работает, только больше трехзначных не влазит, если нельзя то переделаю под трехзначнуюПо идеи - simpleranks предоставляет API и не обязательно редактировать исходный плагин :)
Если я все еще не потерял опыт работы с инфлюксом и если очки нужно выводить именно туда, куда вы просите, то вроде так (Не проверял)
C-подобный:#include <Influx/simpleranks> public void OnPluginStart() { HookEvent("player_spawn", Event_Spawn); } public void Event_Spawn(Event hEvent, const char[] sName, bool bDontBroadcast) { int iClient = GetClientOfUserId(hEvent.GetInt("userid")); SetScore(iClient); } public void Influx_OnClientIdRetrieved( int iClient, int uid, bool bNew ) { CreateTimer(1.0, Timer_Delay, GetClientUserId(iClient), TIMER_FLAG_NO_MAPCHANGE); } public Action Timer_Delay(Handle hTimer, int iUserId) { int iClient = GetClientOfUserId(iUserId); if(!iClient) { return Plugin_Continue; } if(IsClientInGame(iClient) && GetClientTeam(iClient) > 1) { SetScore(iClient); } return Plugin_Continue; } void SetScore(int iClient) { SetEntProp(iClient, Prop_Data, "m_iFrags", Influx_GetClientSimpleRankPoints(iClient)); }
Из-за этого - обычно количество поинтов устанавливают в поле "очки" а табеотлично работает, только больше трехзначных не влазит, если нельзя то переделаю под трехзначную
а что поменять чтоб тогда в поинты показывало?Из-за этого - обычно количество поинтов устанавливают в поле "очки" а табе
#include <cstrike>
#include <Influx/simpleranks>
public void OnPluginStart()
{
HookEvent("player_spawn", Event_Spawn);
}
public void Event_Spawn(Event hEvent, const char[] sName, bool bDontBroadcast)
{
int iClient = GetClientOfUserId(hEvent.GetInt("userid"));
SetScore(iClient);
}
public void Influx_OnClientIdRetrieved( int iClient, int uid, bool bNew )
{
CreateTimer(1.0, Timer_Delay, GetClientUserId(iClient), TIMER_FLAG_NO_MAPCHANGE);
}
public Action Timer_Delay(Handle hTimer, int iUserId)
{
int iClient = GetClientOfUserId(iUserId);
if(!iClient)
{
return Plugin_Continue;
}
if(IsClientInGame(iClient) && GetClientTeam(iClient) > 1)
{
SetScore(iClient);
}
return Plugin_Continue;
}
void SetScore(int iClient)
{
CS_SetClientContributionScore(iClient, Influx_GetClientSimpleRankPoints(iClient));
}
rank.sp(35) : error 017: undefined symbol "CS_SetClientContributionScore"По идеи так
C-подобный:#include <Influx/simpleranks> public void OnPluginStart() { HookEvent("player_spawn", Event_Spawn); } public void Event_Spawn(Event hEvent, const char[] sName, bool bDontBroadcast) { int iClient = GetClientOfUserId(hEvent.GetInt("userid")); SetScore(iClient); } public void Influx_OnClientIdRetrieved( int iClient, int uid, bool bNew ) { CreateTimer(1.0, Timer_Delay, GetClientUserId(iClient), TIMER_FLAG_NO_MAPCHANGE); } public Action Timer_Delay(Handle hTimer, int iUserId) { int iClient = GetClientOfUserId(iUserId); if(!iClient) { return Plugin_Continue; } if(IsClientInGame(iClient) && GetClientTeam(iClient) > 1) { SetScore(iClient); } return Plugin_Continue; } void SetScore(int iClient) { CS_SetClientContributionScore(iClient, Influx_GetClientSimpleRankPoints(iClient)); }
Обновил код прошлого сообщения - попробуйте сейчасrank.sp(35) : error 017: undefined symbol "CS_SetClientContributionScore"
работает спасибоОбновил код прошлого сообщения - попробуйте сейчас