Страница 1 от 2

Преработка на плъгин "Leader"

Публикувано на: 13 Май 2019, 19:27
от Dvstoyanov89
Здравейте, възможно ли е този плъгин да се редактира така, че да се премахне наградата от 210 ХП при старт на играта и да се добавят освен He гранати и другите (флаш и смоук)
+ това ХУД съобщението да се вижда постоянно.

Благодаря предварително!

Код за потвърждение: Избери целия код

#include <amxmodx> 
#include <amxmisc>
#include <cstrike>
#include <fakemeta_util> 
#include <fun>

new pHp, pRound, pRED, pGREEN, pBLUE
new CurRound, Leader

public plugin_init()
{
  register_plugin("Leader", "1.0", "Exta5y")

  register_event("ResetHUD", "eSpawn", "b")
  register_event("DeathMsg", "eDeath", "a")
  register_event("TextMsg", "eRestart", "a", "2=#Game_will_restart_in")

  register_logevent("roundStart", 2, "1=Round_Start")

  pHp = register_cvar("leader_hp", "5") // количество ХП за человека
  pRound = register_cvar("leader_round", "2")

  pRED = register_cvar("leader_glow_red", "0")
  pGREEN = register_cvar("leader_glow_green", "128")
  pBLUE = register_cvar("leader_glow_blue", "0")
  
  Leader = -1
  CurRound = 0
}

// ищем лидера по фрагам и смертям
SearchLeader() 
{
  new iPlayers[32], NumPlayers
  get_players(iPlayers, NumPlayers, "a")

  new LeaderFrags
  new LeaderDeaths
  new Frags
  new Deaths

  LeaderFrags = get_user_frags(iPlayers[0])
  LeaderDeaths = get_user_deaths(iPlayers[0])
  Leader = iPlayers[0]

  for(new i = 1; i < NumPlayers; i++)
  {
    Frags = get_user_frags(iPlayers[i])
    Deaths = get_user_deaths(iPlayers[i])
    if((Frags > LeaderFrags) || ((Frags == LeaderFrags) && (Deaths < LeaderDeaths)))
    {
      LeaderFrags = Frags
      LeaderDeaths = Deaths
      Leader = iPlayers[i] // id
    }
  }
  if(Leader != -1)
    SetLeader(Leader) // вывод HUD сообщение с именем лидера
  else
    un_glow(Leader)
}


// вывод HUD сообщение с именем лидера
SetLeader(id)
{
  new iPlayers[32], NumPlayers
  get_players(iPlayers, NumPlayers, "")
  give_item(id,"weapon_deagle")
  cs_set_user_bpammo(id,CSW_DEAGLE,35)
  give_item(id,"weapon_knife")
  give_item(id,"weapon_hegrenade")
  cs_set_user_bpammo(id,CSW_HEGRENADE,3)
  set_user_health(id,  100 + get_pcvar_num(pHp) * (NumPlayers-1))

  do_glow(id)

  if(get_user_team(id) == 1)
    set_hudmessage(255, 0, 0, 0.05, 0.2, 0, 6.0, 300.0)
  else
    set_hudmessage(0, 0, 255, 0.05, 0.2, 0, 6.0, 300.0)

  new name[32]
  get_user_name(id, name, 31)

  show_hudmessage(0, "%s is a LEADER!!!!", name)
}

public client_disconnect(id)
{
  if(id == Leader)
    Leader = -1
}

public eRestart()
{
  CurRound = 0
  Leader = -1
}

public roundStart()
{
  CurRound++
  if(CurRound <= get_pcvar_num(pRound) || Leader == -1)
    SearchLeader()
}

public eSpawn(id)
{
  if(Leader == id)
    SetLeader(id) // вывод HUD сообщение с именем лидера
  else
    un_glow(id)
}

public eDeath()
{
  if(CurRound < get_pcvar_num(pRound))
    return PLUGIN_HANDLED

  new killer = read_data(1)
  new victim = read_data(2)
  
  if(victim != Leader)
    return PLUGIN_HANDLED

  if(!killer)
    return PLUGIN_HANDLED

  if(killer != victim && is_user_alive(killer) && get_user_team(killer) != get_user_team(victim))
  {
    Leader = killer
    SetLeader(killer) // вывод HUD сообщение с именем лидера
  }

  return PLUGIN_HANDLED
}

public do_glow(id)
{
  new RED, GREEN, BLUE
  RED = get_pcvar_num(pRED)
  GREEN = get_pcvar_num(pGREEN)
  BLUE = get_pcvar_num(pBLUE)

  set_user_rendering(id,kRenderFxGlowShell, RED, GREEN, BLUE, kRenderNormal,25)
  return PLUGIN_HANDLED;
}

public un_glow(id)
{
  set_user_rendering(id,kRenderFxGlowShell,0,0,0,kRenderNormal,25)
  return PLUGIN_HANDLED;
}

Преработка на плъгин "Leader"

Публикувано на: 13 Май 2019, 20:14
от blazz3rzbg

Код за потвърждение: Избери целия код

#include <amxmodx> 
#include <amxmisc>
#include <cstrike>
#include <fakemeta_util> 
#include <fun>

new /*pHp, */pRound, pRED, pGREEN, pBLUE
new CurRound, Leader

new g_iName[33][32];
new rgb[3];

public plugin_init()
{
	register_plugin("Leader", "1.0", "Exta5y")

	register_event("ResetHUD", "eSpawn", "b")
	register_event("DeathMsg", "eDeath", "a")
	register_event("TextMsg", "eRestart", "a", "2=#Game_will_restart_in")

	register_logevent("roundStart", 2, "1=Round_Start")

	//pHp = register_cvar("leader_hp", "5") // количество ХП за человека
	pRound = register_cvar("leader_round", "2")

	pRED = register_cvar("leader_glow_red", "0")
	pGREEN = register_cvar("leader_glow_green", "128")
	pBLUE = register_cvar("leader_glow_blue", "0")

	Leader = -1
	CurRound = 0

	set_task(1.0, "leader_hud", _, .flags = "b");
}

// ищем лидера по фрагам и смертям
SearchLeader() 
{
	new iPlayers[32], NumPlayers
	get_players(iPlayers, NumPlayers, "a")

	new LeaderFrags
	new LeaderDeaths
	new Frags
	new Deaths

	LeaderFrags = get_user_frags(iPlayers[0])
	LeaderDeaths = get_user_deaths(iPlayers[0])
	Leader = iPlayers[0]

	for(new i = 1; i < NumPlayers; i++)
	{
		Frags = get_user_frags(iPlayers[i])
		Deaths = get_user_deaths(iPlayers[i])
		if((Frags > LeaderFrags) || ((Frags == LeaderFrags) && (Deaths < LeaderDeaths)))
		{
			LeaderFrags = Frags
			LeaderDeaths = Deaths
			Leader = iPlayers[i] // id
		}
	}
	if(Leader != -1)
	SetLeader(Leader) // вывод HUD сообщение с именем лидера
	else
	un_glow(Leader)
}


// вывод HUD сообщение с именем лидера
SetLeader(id)
{
	new iPlayers[32], NumPlayers
	get_players(iPlayers, NumPlayers, "")
	give_item(id,"weapon_deagle")
	cs_set_user_bpammo(id,CSW_DEAGLE,35)
	give_item(id,"weapon_knife")
	give_item(id,"weapon_hegrenade")
	give_item(id,"weapon_flashbang")
	give_item(id,"weapon_smokegrenade")
	cs_set_user_bpammo(id,CSW_HEGRENADE,3)
	cs_set_user_bpammo(id,CSW_FLASHBANG,3)
	cs_set_user_bpammo(id,CSW_SMOKEGRENADE,3)
	//set_user_health(id,  100 + get_pcvar_num(pHp) * (NumPlayers-1))

	do_glow(id)
	
	get_user_name(id, g_iName[id], 31)
	
	if(get_user_team(id) = 1) {
		rgb[0] = 255;
		rgb[1] = 0;
		rgb[2] = 0;
	}
	else {
		rgb[0] = 0;
		rgb[1] = 0;
		rgb[2] = 255;
	}
}

public leader_hud()
{
	if(Leader == -1)
		return;
	
	set_hudmessage(rgb[0], rgb[1], rgb[2], 0.05, 0.2, 0, 6.0, 1.1);
	show_hudmessage(0, "%s is a LEADER!!!!", g_iName[id]);
}

public client_disconnect(id)
{
	if(id == Leader)
	Leader = -1
}

public eRestart()
{
	CurRound = 0
	Leader = -1
}

public roundStart()
{
	CurRound++
	if(CurRound <= get_pcvar_num(pRound) || Leader == -1)
	SearchLeader()
}

public eSpawn(id)
{
	if(Leader == id)
	SetLeader(id) // вывод HUD сообщение с именем лидера
	else
	un_glow(id)
}

public eDeath()
{
	if(CurRound < get_pcvar_num(pRound))
	return PLUGIN_HANDLED

	new killer = read_data(1)
	new victim = read_data(2)

	if(victim != Leader)
	return PLUGIN_HANDLED

	if(!killer)
	return PLUGIN_HANDLED

	if(killer != victim && is_user_alive(killer) && get_user_team(killer) != get_user_team(victim))
	{
		Leader = killer
		SetLeader(killer) // вывод HUD сообщение с именем лидера
	}

	return PLUGIN_HANDLED
}

public do_glow(id)
{
	new RED, GREEN, BLUE
	RED = get_pcvar_num(pRED)
	GREEN = get_pcvar_num(pGREEN)
	BLUE = get_pcvar_num(pBLUE)

	set_user_rendering(id,kRenderFxGlowShell, RED, GREEN, BLUE, kRenderNormal,25)
	return PLUGIN_HANDLED;
}

public un_glow(id)
{
	set_user_rendering(id,kRenderFxGlowShell,0,0,0,kRenderNormal,25)
	return PLUGIN_HANDLED;
}

Тествай и пиши :)

Преработка на плъгин "Leader"

Публикувано на: 13 Май 2019, 20:25
от Dvstoyanov89
Не мога да го компилирам. Пробвах и локално пак същите грешки.

Изображение

Преработка на плъгин "Leader"

Публикувано на: 13 Май 2019, 20:26
от blazz3rzbg

Код за потвърждение: Избери целия код

#include <amxmodx> 
#include <amxmisc>
#include <cstrike>
#include <fakemeta_util> 
#include <fun>

new /*pHp, */pRound, pRED, pGREEN, pBLUE
new CurRound, Leader

new g_iName[33][32];
new rgb[3];

public plugin_init()
{
	register_plugin("Leader", "1.0", "Exta5y")

	register_event("ResetHUD", "eSpawn", "b")
	register_event("DeathMsg", "eDeath", "a")
	register_event("TextMsg", "eRestart", "a", "2=#Game_will_restart_in")

	register_logevent("roundStart", 2, "1=Round_Start")

	//pHp = register_cvar("leader_hp", "5") // количество ХП за человека
	pRound = register_cvar("leader_round", "2")

	pRED = register_cvar("leader_glow_red", "0")
	pGREEN = register_cvar("leader_glow_green", "128")
	pBLUE = register_cvar("leader_glow_blue", "0")

	Leader = -1
	CurRound = 0

	set_task(1.0, "leader_hud", _, .flags = "b");
}

// ищем лидера по фрагам и смертям
SearchLeader() 
{
	new iPlayers[32], NumPlayers
	get_players(iPlayers, NumPlayers, "a")

	new LeaderFrags
	new LeaderDeaths
	new Frags
	new Deaths

	LeaderFrags = get_user_frags(iPlayers[0])
	LeaderDeaths = get_user_deaths(iPlayers[0])
	Leader = iPlayers[0]

	for(new i = 1; i < NumPlayers; i++)
	{
		Frags = get_user_frags(iPlayers[i])
		Deaths = get_user_deaths(iPlayers[i])
		if((Frags > LeaderFrags) || ((Frags == LeaderFrags) && (Deaths < LeaderDeaths)))
		{
			LeaderFrags = Frags
			LeaderDeaths = Deaths
			Leader = iPlayers[i] // id
		}
	}
	if(Leader != -1)
	SetLeader(Leader) // вывод HUD сообщение с именем лидера
	else
	un_glow(Leader)
}


// вывод HUD сообщение с именем лидера
SetLeader(id)
{
	new iPlayers[32], NumPlayers
	get_players(iPlayers, NumPlayers, "")
	give_item(id,"weapon_deagle")
	cs_set_user_bpammo(id,CSW_DEAGLE,35)
	give_item(id,"weapon_knife")
	give_item(id,"weapon_hegrenade")
	give_item(id,"weapon_flashbang")
	give_item(id,"weapon_smokegrenade")
	cs_set_user_bpammo(id,CSW_HEGRENADE,3)
	cs_set_user_bpammo(id,CSW_FLASHBANG,3)
	cs_set_user_bpammo(id,CSW_SMOKEGRENADE,3)
	//set_user_health(id,  100 + get_pcvar_num(pHp) * (NumPlayers-1))

	do_glow(id)
	
	get_user_name(id, g_iName[id], 31)
	
	if(get_user_team(id) == 1) {
		rgb[0] = 255;
		rgb[1] = 0;
		rgb[2] = 0;
	}
	else {
		rgb[0] = 0;
		rgb[1] = 0;
		rgb[2] = 255;
	}
}

public leader_hud()
{
	if(Leader == -1)
		return;
	
	set_hudmessage(rgb[0], rgb[1], rgb[2], 0.05, 0.2, 0, 6.0, 1.1);
	show_hudmessage(0, "%s is a LEADER!!!!", g_iName[id]);
}

public client_disconnect(id)
{
	if(id == Leader)
	Leader = -1
}

public eRestart()
{
	CurRound = 0
	Leader = -1
}

public roundStart()
{
	CurRound++
	if(CurRound <= get_pcvar_num(pRound) || Leader == -1)
	SearchLeader()
}

public eSpawn(id)
{
	if(Leader == id)
	SetLeader(id) // вывод HUD сообщение с именем лидера
	else
	un_glow(id)
}

public eDeath()
{
	if(CurRound < get_pcvar_num(pRound))
	return PLUGIN_HANDLED

	new killer = read_data(1)
	new victim = read_data(2)

	if(victim != Leader)
	return PLUGIN_HANDLED

	if(!killer)
	return PLUGIN_HANDLED

	if(killer != victim && is_user_alive(killer) && get_user_team(killer) != get_user_team(victim))
	{
		Leader = killer
		SetLeader(killer) // вывод HUD сообщение с именем лидера
	}

	return PLUGIN_HANDLED
}

public do_glow(id)
{
	new RED, GREEN, BLUE
	RED = get_pcvar_num(pRED)
	GREEN = get_pcvar_num(pGREEN)
	BLUE = get_pcvar_num(pBLUE)

	set_user_rendering(id,kRenderFxGlowShell, RED, GREEN, BLUE, kRenderNormal,25)
	return PLUGIN_HANDLED;
}

public un_glow(id)
{
	set_user_rendering(id,kRenderFxGlowShell,0,0,0,kRenderNormal,25)
	return PLUGIN_HANDLED;
}
Пробвай сега

Преработка на плъгин "Leader"

Публикувано на: 13 Май 2019, 20:45
от Dvstoyanov89
Другите грешки ги няма, но сега е това:

Код за потвърждение: Избери целия код

Leader.sma(107) : error 017: undefined symbol "id"

1 Error.
Could not locate output file Leader.amx (compile failed).

Преработка на плъгин "Leader"

Публикувано на: 13 Май 2019, 20:49
от blazz3rzbg
стой така преработвам плъгина тествам го и го пращам че от бързане голям съкатлък стана :D

Преработка на плъгин "Leader"

Публикувано на: 14 Май 2019, 00:25
от OciXCrom
Моля, слагай по-качествени заглавия. "Преработка на Х" не е достатъчно. Сложи информация за каква преработка става дума.

Поправих грешката от горния код. Друго не съм гледал:

Код за потвърждение: Избери целия код

#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <fakemeta_util>
#include <fun>

new /*pHp, */pRound, pRED, pGREEN, pBLUE
new CurRound, Leader

new g_iName[33][32];
new rgb[3];

public plugin_init()
{
    register_plugin("Leader", "1.0", "Exta5y")

    register_event("ResetHUD", "eSpawn", "b")
    register_event("DeathMsg", "eDeath", "a")
    register_event("TextMsg", "eRestart", "a", "2=#Game_will_restart_in")

    register_logevent("roundStart", 2, "1=Round_Start")

    //pHp = register_cvar("leader_hp", "5") // количество ХП за человека
    pRound = register_cvar("leader_round", "2")

    pRED = register_cvar("leader_glow_red", "0")
    pGREEN = register_cvar("leader_glow_green", "128")
    pBLUE = register_cvar("leader_glow_blue", "0")

    Leader = -1
    CurRound = 0

    set_task(1.0, "leader_hud", _, .flags = "b");
}

// ищем лидера по фрагам и смертям
SearchLeader()
{
    new iPlayers[32], NumPlayers
    get_players(iPlayers, NumPlayers, "a")

    new LeaderFrags
    new LeaderDeaths
    new Frags
    new Deaths

    LeaderFrags = get_user_frags(iPlayers[0])
    LeaderDeaths = get_user_deaths(iPlayers[0])
    Leader = iPlayers[0]

    for(new i = 1; i < NumPlayers; i++)
    {
        Frags = get_user_frags(iPlayers[i])
        Deaths = get_user_deaths(iPlayers[i])
        if((Frags > LeaderFrags) || ((Frags == LeaderFrags) && (Deaths < LeaderDeaths)))
        {
            LeaderFrags = Frags
            LeaderDeaths = Deaths
            Leader = iPlayers[i] // id
        }
    }
    if(Leader != -1)
    SetLeader(Leader) // вывод HUD сообщение с именем лидера
    else
    un_glow(Leader)
}


// вывод HUD сообщение с именем лидера
SetLeader(id)
{
    new iPlayers[32], NumPlayers
    get_players(iPlayers, NumPlayers, "")
    give_item(id,"weapon_deagle")
    cs_set_user_bpammo(id,CSW_DEAGLE,35)
    give_item(id,"weapon_knife")
    give_item(id,"weapon_hegrenade")
    give_item(id,"weapon_flashbang")
    give_item(id,"weapon_smokegrenade")
    cs_set_user_bpammo(id,CSW_HEGRENADE,3)
    cs_set_user_bpammo(id,CSW_FLASHBANG,3)
    cs_set_user_bpammo(id,CSW_SMOKEGRENADE,3)
    //set_user_health(id,  100 + get_pcvar_num(pHp) * (NumPlayers-1))

    do_glow(id)

    get_user_name(id, g_iName[id], 31)

    if(get_user_team(id) == 1) {
        rgb[0] = 255;
        rgb[1] = 0;
        rgb[2] = 0;
    }
    else {
        rgb[0] = 0;
        rgb[1] = 0;
        rgb[2] = 255;
    }
}

public leader_hud()
{
    if(Leader == -1)
        return;

    set_hudmessage(rgb[0], rgb[1], rgb[2], 0.05, 0.2, 0, 6.0, 1.1);
    show_hudmessage(0, "%s is a LEADER!!!!", g_iName[Leader]);
}

public client_disconnect(id)
{
    if(id == Leader)
    Leader = -1
}

public eRestart()
{
    CurRound = 0
    Leader = -1
}

public roundStart()
{
    CurRound++
    if(CurRound <= get_pcvar_num(pRound) || Leader == -1)
    SearchLeader()
}

public eSpawn(id)
{
    if(Leader == id)
    SetLeader(id) // вывод HUD сообщение с именем лидера
    else
    un_glow(id)
}

public eDeath()
{
    if(CurRound < get_pcvar_num(pRound))
    return PLUGIN_HANDLED

    new killer = read_data(1)
    new victim = read_data(2)

    if(victim != Leader)
    return PLUGIN_HANDLED

    if(!killer)
    return PLUGIN_HANDLED

    if(killer != victim && is_user_alive(killer) && get_user_team(killer) != get_user_team(victim))
    {
        Leader = killer
        SetLeader(killer) // вывод HUD сообщение с именем лидера
    }

    return PLUGIN_HANDLED
}

public do_glow(id)
{
    new RED, GREEN, BLUE
    RED = get_pcvar_num(pRED)
    GREEN = get_pcvar_num(pGREEN)
    BLUE = get_pcvar_num(pBLUE)

    set_user_rendering(id,kRenderFxGlowShell, RED, GREEN, BLUE, kRenderNormal,25)
    return PLUGIN_HANDLED;
}

public un_glow(id)
{
    set_user_rendering(id,kRenderFxGlowShell,0,0,0,kRenderNormal,25)
    return PLUGIN_HANDLED;
}

Преработка на плъгин "Leader"

Публикувано на: 14 Май 2019, 17:03
от Dvstoyanov89
Плъгина сега работи всичко точно, но всички гранати ги дава х3 пъти. :(
Извън темата
Извинявам се за неточното заглавие!

Преработка на плъгин "Leader"

Публикувано на: 14 Май 2019, 18:40
от blazz3rzbg
Търсиш

Код за потвърждение: Избери целия код

    cs_set_user_bpammo(id,CSW_HEGRENADE,3)
    cs_set_user_bpammo(id,CSW_FLASHBANG,3)
    cs_set_user_bpammo(id,CSW_SMOKEGRENADE,3)
и променяш cs_set_user_bpammo(id,CSW_SMOKEGRENADE,3)
3 е количеството на гранатата

Преработка на плъгин "Leader"

Публикувано на: 14 Май 2019, 21:08
от Dvstoyanov89
Оправих го това с гранатите, благодаря много за което! Но ме притеснява друг проблем във конзолата. Този текст, който съм подчертал във червено излиза заради този плъгин.
Преди това изписваше да добавя debug, след което го направих изписва това! Проблем ли ще е занапред и ако да има ли вариянт да го оправя.
Изображение