pataisyti

Šiame forume rašomi vartotojų klausimai/problemos su kuriomis jie susidūrė kuriant pluginus.
Post Reply
User avatar
laimiukas3
Moderatorius
Posts: 4569
Joined: 2012 Aug 03 01:12
Skype: laimiukas3
Location: Vilnius
Contact:

pataisyti

Post by laimiukas3 »

gal kas galetu pataisyti plugina kai admin online vistiek veikia voteban komanda o neturetu taip buti
Last edited by laimiukas3 on 2015 Jun 26 14:25, edited 2 times in total.
Image
Image
Image

InvIs2
Jau po truputį tampa savu
Posts: 149
Joined: 2013 Sep 29 12:47
Skype: pksoldierlt

Re: pataisyti

Post by InvIs2 »

Code: Select all

SayIt(id) {// Pradžioj dadėk tikrinimą, ar nėra adminųif(YraAdmin())    return 0; /* .... likęs kodas ..... */ }  stock YraAdmin() {    new players[32], num    get_players(players, num)    if(num > 0)    {        for(new i; i < num; i++) {            if(get_user_flags(players[i]) & ADMIN_BAN) // Flagą gali pasikeisti, nežinau kokio reikia                return true;        }    }    else        return false;}
Turėtų veikt

User avatar
laimiukas3
Moderatorius
Posts: 4569
Joined: 2012 Aug 03 01:12
Skype: laimiukas3
Location: Vilnius
Contact:

Re: pataisyti

Post by laimiukas3 »

InvIs2 dekingas bet kai padarau tavo pasiulitus pataisymus man ne compiliuoja plugino gal galetum tu prisegti visa pataisyta jaigu nesunku :)
Image
Image
Image

InvIs2
Jau po truputį tampa savu
Posts: 149
Joined: 2013 Sep 29 12:47
Skype: pksoldierlt

Re: pataisyti

Post by InvIs2 »

Žiūrint kuri vieta meta klaidą. Ir šiaip nežinau kurias vietas pats darašei, kurios jau buvo. Tai mėginu laimę.

Code: Select all

public SayIt(id){  if(get_pcvar_num(gi_Disable))  {    ColorChat(id, RED, "^x01[^x04AMXX^x01] ^x03 amx_votaban disabled!")    return 0  }  /* Čia mano įdėtas kodas */  if(YraAdmin())  {    ColorChat(id, RED, "^x01[^x04AMXX^x01] ^x03 There is an admin online!")    return 0  }   new Elapsed=get_systime(gi_SysTimeOffset) - get_pcvar_num(gi_LastTime)  new Delay=get_pcvar_num(gi_DelayTime)   if( (Delay > Elapsed) && !is_user_admin(id) )  {    new seconds = Delay - Elapsed    ColorChat(id, RED, "^x01[^x04AMXX^x01] ^x01 You have to wait ^x03 %d seconds ^x01 before a new voteban can be started!", seconds)    return 0  }   get_players( ga_PlayerID, gi_TotalPlayers )  /* Šitas for ciklas man neaiškus, ištryniau tą nereikalingą tikrinimą, o toliau biški patingėsiu gilintis, ar reikia trinti */  for(i=0; i<gi_TotalPlayers; i++)  {    new TempID = ga_PlayerID[i]     if(TempID == id)      gi_VoteStarter=TempID     get_user_name( TempID, ga_PlayerName[i], 31 )    get_user_authid( TempID, ga_PlayerAuthID[i], 34 )    get_user_ip( TempID, ga_PlayerIP[i], 15, 1 )  }   gi_MenuPosition = 0  ShowPlayerMenu(id)  return 0}
Pilnas, be errorų ir warningų. Tik ta pati vieta lieka neaišku, na bet pasibandyk:

Code: Select all

#include <amxmodx>#include <amxmisc>#include <colorchat> #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_VoteStarternew gi_MenuPositionnew gi_Sellectionnew gi_TotalPlayersnew gi_SysTimeOffset = 0new i//pcvarsnew gi_LastTimenew gi_DelayTimenew gf_Rationew gf_MinVotersnew gf_BF_Rationew gi_BanTimenew gi_Disablenew gi_BanTypenew gi_BanReasonnew banReasonCvar[32]  public plugin_init(){  register_plugin("voteban menu","1.2","hjvl")  register_clcmd("say /vtb","SayIt" )  register_clcmd("say /voteban","SayIt" )  register_clcmd("say voteban","SayIt" )  register_clcmd("say_team /voteban","SayIt" )  register_clcmd("say_tam 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","600")  gf_Ratio=register_cvar("amxx_voteban_ratio","0.50")  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","30")  gi_Disable=register_cvar("amxx_voteban_disable","0")  gi_BanType=register_cvar("amxx_voteban_type","2")  gi_BanReason=register_cvar("amxx_voteban_reason","VoteBan")} public SayIt(id){  if(get_pcvar_num(gi_Disable))  {    ColorChat(id, RED, "^x01[^x04AMXX^x01] ^x03 amx_votaban disabled!")    return 0  }  /* Čia mano įdėtas kodas */  if(YraAdmin())  {    ColorChat(id, RED, "^x01[^x04AMXX^x01] ^x03 There is an admin online!")    return 0  }   new Elapsed=get_systime(gi_SysTimeOffset) - get_pcvar_num(gi_LastTime)  new Delay=get_pcvar_num(gi_DelayTime)   if( (Delay > Elapsed) && !is_user_admin(id) )  {    new seconds = Delay - Elapsed    ColorChat(id, RED, "^x01[^x04AMXX^x01] ^x01 You have to wait ^x03 %d seconds ^x01 before a new voteban can be started!", seconds)    return 0  }   get_players( ga_PlayerID, gi_TotalPlayers )  /* Šitas for ciklas man neaiškus, ištryniau tą nereikalingą tikrinimą, o toliau biški patingėsiu gilintis, ar reikia trinti */  for(i=0; i<gi_TotalPlayers; i++)  {    new TempID = ga_PlayerID[i]     if(TempID == id)      gi_VoteStarter=TempID     get_user_name( TempID, ga_PlayerName[i], 31 )    get_user_authid( TempID, ga_PlayerAuthID[i], 34 )    get_user_ip( TempID, ga_PlayerIP[i], 15, 1 )  }   gi_MenuPosition = 0  ShowPlayerMenu(id)  return 0}stock YraAdmin() {    new players[32], num    get_players(players, num)    if(num > 0)    {        for(new i; i < num; i++) {            if(get_user_flags(players[i]) & ADMIN_BAN) // Flagą gali pasikeisti, nežinau kokio reikia                return true;        }    }    return false;} 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)       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) ) )  {    ColorChat(0, RED, "^x01[^x04AMXX^x01] ^x01 Not enough voters to ban ^x04 %s!", ga_PlayerName[gi_Sellection])    return 0  }  else  {    if( result < get_pcvar_float(gf_BF_Ratio) )    {      ColorChat(0, RED, "^x01[^x04AMXX^x01] ^x01 The vote back fired ^x04 at! %s ^x01 he is banned for ^x04 %d minutes!^x01", 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) )    {      ColorChat(0, RED, "^x01[^x04AMXX^x01] ^x01 The vote succeeded, ^x04 at! %s ^x01 is banned for ^x04 %d minutes!^x01", 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    {      ColorChat(0, RED, "^x01[^x04AMXX^x01] ^x03 The vote did not succeeded!")      log_amx("[AMXX] The voteban dit not sucseed.")    }  }  ColorChat(0, RED, "^x01[^x04AMXX^x01] ^x01 A total of: ^x04 %d players, ^x04 %d ^x01 voted yes. ^x03 ЗА!", 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", get_pcvar_num(gi_BanTime), ga_PlayerAuthID[Selected])    case 3: {      get_pcvar_string(gi_BanReason, banReasonCvar, charsmax(banReasonCvar))      server_cmd("amx_bancs ^"%s^" %d ^"%s^"", ga_PlayerName[Selected], get_pcvar_num(gi_BanTime), banReasonCvar)    }    default:      server_cmd("banid %d %s kick", get_pcvar_num(gi_BanTime), ga_PlayerAuthID[Selected])  }  return 0}
Last edited by InvIs2 on 2015 Jun 17 23:01, edited 1 time in total.

User avatar
laimiukas3
Moderatorius
Posts: 4569
Joined: 2012 Aug 03 01:12
Skype: laimiukas3
Location: Vilnius
Contact:

Re: pataisyti

Post by laimiukas3 »

veikia :)
Image
Image
Image

Post Reply

Who is online

Users browsing this forum: No registered users and 3 guests