Imunitate voteban pentru cei cu steam

Modificari necesare ale pluginurilor

Moderators: Moderatori ajutatori, Moderatori, Echipa eXtreamCS.com

Post Reply
User avatar
kiarfuzzy
Membru, skill +1
Membru, skill +1
Posts: 375
Joined: 06 Jan 2008, 15:20
Detinator Steam: Da
Detinator server CS: Fy.Play-Arena.Ro
SteamID: FuZzy1
Reputatie: Fost Membru Club eXtreamCS (trei luni)
Been thanked: 3 times

18 Sep 2017, 17:49

| Afiseaza codul
#include <amxmodx>
#include <amxmisc>

#define MAX_players 32
#define MAX_menudata 1024

new ga_PlayerName[MAX_players][32]
new ga_PlayerAuthID[MAX_players][35]
new ga_PlayerID[MAX_players]
new ga_PlayerIP[MAX_players][16]
new ga_MenuData[MAX_menudata]
new ga_Choice[2]
new gi_VoteStarter
new gi_MenuPosition
new gi_Sellection
new gi_TotalPlayers
new gi_SysTimeOffset = 0
new i
//pcvars
new gi_LastTime
new gi_DelayTime
new gf_Ratio
new gf_MinVoters
new gf_BF_Ratio
new gi_BanTime
new gi_Disable
new gi_BanType


public plugin_init()
{
  register_plugin("voteban menu","1.2","hjvl")
  register_clcmd("say /voteban","SayIt" )
  register_menucmd(register_menuid("ChoosePlayer"), 1023, "ChooseMenu")
  register_menucmd(register_menuid("VoteMenu"), 1023, "CountVotes")

  gi_LastTime=register_cvar("amx_voteban_lasttime","0")
  gi_DelayTime=register_cvar("amxx_voteban_delaytime","300")
  gf_Ratio=register_cvar("amxx_voteban_ratio","0.40")
  gf_MinVoters=register_cvar("amxx_voteban_minvoters","0.0")
  gf_BF_Ratio=register_cvar("amxx_voteban_bf_ratio","0.0")
  gi_BanTime=register_cvar("amxx_voteban_bantime","45")
  gi_Disable=register_cvar("amxx_voteban_disable","0")
  gi_BanType=register_cvar("amxx_voteban_type","1")
}

public SayIt(id)
{
  if(get_pcvar_num(gi_Disable))
  {
    client_print(id,print_chat,"[AMXX]amx_votaban disabled")
    return 0
  }

  new Elapsed=get_systime(gi_SysTimeOffset) - get_pcvar_num(gi_LastTime)
  new Delay=get_pcvar_num(gi_DelayTime)

  if((Delay > Elapsed) && get_user_flags(id) != ADMIN_BAN)
  {
    new seconds = Delay - Elapsed
    client_print(id,print_chat,"[AMXX] You have to wait %d seconds before a new voteban can be started", seconds)
    return 0
  }

  get_players(ga_PlayerID, gi_TotalPlayers)
  for(i=0; i<gi_TotalPlayers; i++)
  {
    new TempID = ga_PlayerID
    if(get_user_flags(TempID) & ADMIN_BAN)
    {
      if(get_user_flags(id) & ADMIN_BAN)
      {
        if(TempID == id)
        {
          gi_VoteStarter=i
          get_user_name( TempID, ga_PlayerName, 31 )
      get_user_authid( TempID, ga_PlayerAuthID, 34 )
      get_user_ip( TempID, ga_PlayerIP, 15, 1 )
      }
      }
      else
      {
      client_print(id,print_chat,"Voteban is disabled because here is an ADMIN online.")
      return 0
      }
    }
    else
    {
      if(TempID == id)
        gi_VoteStarter=i
      get_user_name( TempID, ga_PlayerName, 31 )
      get_user_authid( TempID, ga_PlayerAuthID, 34 )
      get_user_ip( TempID, ga_PlayerIP, 15, 1 )
    }
  }
  gi_MenuPosition = 0
  ShowPlayerMenu(id)
  return 0
}

public ShowPlayerMenu(id)
{
  new arrayloc = 0
  new keys = (1<<9)

  arrayloc = format(ga_MenuData,(MAX_menudata-1),"Voteban Menu ^n")
  for(i=0; i<8; i++)
   if( gi_TotalPlayers>(gi_MenuPosition+i) )
   {
     arrayloc += format(ga_MenuData[arrayloc],(MAX_menudata-1-arrayloc),"%d. %s^n", i+1, ga_PlayerName[gi_MenuPosition+i])
     keys |= (1<<i)
   }
  if( gi_TotalPlayers>(gi_MenuPosition+8) )
  {
    arrayloc += format(ga_MenuData[arrayloc],(MAX_menudata-1-arrayloc),"^n9. More")
    keys |= (1<<8)
  }
  arrayloc += format(ga_MenuData[arrayloc],(MAX_menudata-1-arrayloc),"^n0. Back/exit")

  show_menu(id, keys, ga_MenuData, 20, "ChoosePlayer")
  return PLUGIN_HANDLED 
}

public ChooseMenu(id, key)
{
  switch(key)
  {
    case 8:
    {
      gi_MenuPosition=gi_MenuPosition+8
      ShowPlayerMenu(id)
    }
    case 9:
    {
      if(gi_MenuPosition>=8)
      {
        gi_MenuPosition=gi_MenuPosition-8
        ShowPlayerMenu(id)
      }
      else
        return 0
    }
    default:
    {
        gi_Sellection=gi_MenuPosition+key
    new Now=get_systime(gi_SysTimeOffset)
           set_pcvar_num(gi_LastTime, Now)
      if((get_user_flags(ga_PlayerID[gi_Sellection]) & ADMIN_RESERVATION))
      {
        client_print(id,print_chat,"[VoteBan] You can't voteban STEAM or SLOT players...")
            return PLUGIN_HANDLED;
      }
           run_vote()
           return 0
    }
  }
  return PLUGIN_HANDLED
}

public run_vote()
{    
  log_amx("Vote ban started by %s for %s %s", ga_PlayerName[gi_VoteStarter], ga_PlayerName[gi_Sellection], ga_PlayerAuthID[gi_Sellection])
  format(ga_MenuData,(MAX_menudata-1),"Ban %s for %d minutes?^n1. Yes^n2. No",ga_PlayerName[gi_Sellection], get_pcvar_num(gi_BanTime))
  ga_Choice[0] = 0
  ga_Choice[1] = 0
  show_menu( 0, (1<<0)|(1<<1), ga_MenuData, 15, "VoteMenu" )
  set_task(15.0,"outcom")
  return 0
}

public CountVotes(id, key)
{
  ++ga_Choice[key]
  return PLUGIN_HANDLED
}

public outcom()
{
  new TotalVotes = ga_Choice[0] + ga_Choice[1]
  new Float:result = (float(ga_Choice[0]) / float(TotalVotes))

  if( get_pcvar_float(gf_MinVoters) >= ( float(TotalVotes) / float(gi_TotalPlayers) ) )
  {
    client_print(0,print_chat,"[AMXX] Not enough voters to ban %s!", ga_PlayerName[gi_Sellection])
    return 0
  }
  else
  {
    if( result < get_pcvar_float(gf_BF_Ratio) )
    {
      client_print(0,print_chat,"[AMXX] The vote back fired at %s, he is banned for %d minutes", ga_PlayerName[gi_VoteStarter], get_pcvar_num(gi_BanTime))
      ActualBan(gi_VoteStarter)
      log_amx("[AMXX] The vote back fired at %s, he is banned for %d minutes", ga_PlayerName[gi_VoteStarter], get_pcvar_num(gi_BanTime))
    }

    if( result >= get_pcvar_float(gf_Ratio) )
    {
      client_print(0,print_chat,"[AMXX] The vote succeeded, %s is banned for %d minutes", ga_PlayerName[gi_Sellection], get_pcvar_num(gi_BanTime))
      log_amx("[AMXX] The vote succeeded: %s is banned for %d minutes", ga_PlayerAuthID[gi_Sellection], get_pcvar_num(gi_BanTime))
      ActualBan(gi_Sellection)
    }
    else
    {
      client_print(0,print_chat,"[AMXX] The vote did not succeeded!")
      log_amx("[AMXX] The voteban dit not sucseed.")
    }
  }
  client_print(0,print_chat,"A total of %d players, %d voted yes.", gi_TotalPlayers, ga_Choice[0])

  return 0
}

public ActualBan(Selected)
{
  new Type = get_pcvar_num(gi_BanType) 
  switch(Type)
  {
    case 1:
      server_cmd("addip %d %s", get_pcvar_num(gi_BanTime), ga_PlayerIP[Selected])
    case 2:
      server_cmd("amx_ban %d %s Voteban", get_pcvar_num(gi_BanTime), ga_PlayerAuthID[Selected])
    default:
      server_cmd("banid %d %s kick", get_pcvar_num(gi_BanTime), ga_PlayerAuthID[Selected])
  }
  return 0 
}


Folosesc pluginul de mai sus pentru a se da /voteban atunci cand nu sunt admin pe server. Jucatorii cu slot au deja imunitate la voteban, dar nu stiu cum sa fac sa aiba si cei cu steam imunitate.
Ma poate ajuta cineva?

P.S.
Am setat deja din dproto sa diferentieze steamid-urile: steam_ la cei cu steam si valve_ la cei non-steam. Pana acum foloseam un alt plugin care dadea automat slot celor cu steam, dar am descoperit ca acel plugin cauza lag, 1-2 sec, cand se conecta cineva pe server.
RoyalServer 2
Lux0R^
Scripter eXtreamCS
Scripter eXtreamCS
Posts: 1222
Joined: 13 Jul 2013, 16:31
Detinator Steam: Da
Reputatie: Scripter eXtreamCS
Moderator ajutator
Has thanked: 15 times
Been thanked: 12 times

25 Sep 2017, 13:56

e cam dificil... nu vei avea ceva ce va merge bine niciodata
toata lumea are acum fake steam si e detectat ca si steam...
Pauza pana in iulie... licenta ^^

Fara pm-uri pentru pluginuri de zm/furien + tot ce tine de vip.

Codul Scripterului: scripting/codul-scripterului-t362300.html#p2754224
User avatar
kiarfuzzy
Membru, skill +1
Membru, skill +1
Posts: 375
Joined: 06 Jan 2008, 15:20
Detinator Steam: Da
Detinator server CS: Fy.Play-Arena.Ro
SteamID: FuZzy1
Reputatie: Fost Membru Club eXtreamCS (trei luni)
Been thanked: 3 times

26 Sep 2017, 21:58

Nu cred că e asta o problema... Nu am văzut pe nimeni cu fake steam pe server, adică la "status" cei cu steam apar steam_, ceilalți valve_. Ca o mai intra din an în paște unu cu fake steam este egal cu 0 pentru mine.
User avatar
YONTU
Scripter eXtreamCS
Scripter eXtreamCS
Posts: 2466
Joined: 10 May 2013, 14:25
Detinator Steam: Nu
CS Status: Everyone is looking at ur shoes
Reputatie: Moderator ajutator
Fost scripter eXtreamCS
Location: Gura Humorului
Has thanked: 256 times
Been thanked: 288 times
Contact:

01 Feb 2019, 23:25

Mutat din

Board index » eXtream - Counter-Strike 1.6 » Programarea CS-ului » Scripting

In categoria Scripting se posteaza doar nelamuriri legate de bucăți de cod, cereri sfaturi despre functii, etc, orice legat de mentenata pluginului.
„Peste douăzeci de ani vei fi dezamăgit din cauza lucrurilor pe care nu le-ai făcut, nu din cauza celor pe care le-ai făcut.” - Mark Twain
„Asa e si in viata, hotii castiga, prostii care invata pierd.” - Mihai Nemeș


Bio.LeagueCs.Ro - Biohazard v4.4 Xmas Edition
discord: IonutC#5114

Experinta in: Java/Spring boot/Angular/C/C++/C#/Javascript/Python/HTML/CSS/Pawn/SQL
Ai nevoie de ajutorul meu? Ma poti gasi doar la adresa de discord de mai sus.
Post Reply

Return to “Modificari pluginuri”

  • Information
  • Who is online

    Users browsing this forum: Mail.RU [Bot], Semrush [Bot] and 4 guests