hlmod.hu

Magyar Half-Life Mód közösség!
Pontos idő: 2025.06.17. 01:33



Jelenlévő felhasználók

Jelenleg 360 felhasználó van jelen :: 1 regisztrált, 0 rejtett és 359 vendég

A legtöbb felhasználó (2761 fő) 2025.01.09. 20:06-kor tartózkodott itt.

Regisztrált felhasználók: Google [Bot]az elmúlt 5 percben aktív felhasználók alapján

Utoljára aktív
Ahhoz hogy lásd ki volt utoljára aktív, be kell jelentkezned.



Az oldal teljeskörű
használatához regisztrálj.

Regisztráció

Kereső


Új téma nyitása Hozzászólás a témához  [12 hozzászólás ]  Oldal12Következő
Szerző Üzenet
 Hozzászólás témája: AFK Specbe teszi
HozzászólásElküldve:2010.12.17. 17:45 
Offline
Jómunkásember

Csatlakozott:2010.02.07. 11:24
Hozzászólások:325
Sziasztok!

Kéne egy nagyon egyszerű kis plugin. Nem kell mindenféle plusz dolog a pluginba csak simán AFK-t tegye a specbe.
Légyszíves akinek megvan az tegye fel:)
Köszii


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: AFK Specbe teszi
HozzászólásElküldve:2010.12.17. 21:51 
Offline
Beavatott

Csatlakozott:2010.08.29. 08:54
Hozzászólások:64
http://amxmodx.crys.hu/site/?p=pluginz&c=l&f=afkkicker


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: AFK Specbe teszi
HozzászólásElküldve:2010.12.17. 22:16 
Offline
Jómunkásember

Csatlakozott:2010.02.07. 11:24
Hozzászólások:325
Hello!

Na pont az ilyen hopzzászólástól féltem!
Kérlek olvasd el figyelmesen mit írtam!


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: AFK Specbe teszi
HozzászólásElküldve:2010.12.18. 11:07 
Offline
Jómunkásember

Csatlakozott:2010.02.07. 11:24
Hozzászólások:325
Na talltam egyet, de vaalami gond van:S Nem rakja specbe az AFK-át.

Nézzétek át pls!
Kód:
/*
This is based on Cheesy Peteza's afk kick plugin.

It will *not* kick, but instead simply put a player who is afk into spectator mode.
This is to keep teams even, rather than making room on a full server.
Especially it works if a player was automatically put into a team (on map change or join).

mp_afktime 300      Time a player is allowed to be AFK in seconds before they are kicked. (minimum 30 sec)
         They time is only accumulated while they are alive.
mp_afkminplayers 2   Minimum number of players required to be on the server before the plugin starts kicking.

version history
1.0c  Check for AFK will be done when player joins a team, spawned or not.
1.0d  No longer kick for being AFK. Instead, player is put into spectator mode.
1.0e  Bug fix: removed is_user_alive query, doesn't work well if the player isn't spawned yet.
1.1   If player hasn't spawned, but is in a team other than spectator, he will be put into spec mode *early* (30s).
1.1.1 Bug fix: Resetting afk data when a player is moved to spectator mode.
1.1.2 Fixed detection if a player has spawned.
1.2   Reset AFK on map change.
*/

#include <amxmodx>

#define MIN_AFK_TIME 30      // I use this incase stupid admins accidentally set mp_afktime to something silly.
#define WARNING_TIME 15      // Start warning the user this many seconds before they are about to be kicked.
#define CHECK_FREQ 5      // This is also the warning message frequency.

new g_oldangles[33][3]
new g_afktime[33]
new bool:g_spawned[33] = {false, ...}

public plugin_init() {
   register_plugin("AFK spectate","1.2","pizzahut")
   register_cvar("afk_version", "1.2", FCVAR_SERVER)
   register_cvar("mp_afktime", "300")   // Kick people AFK longer than this time.
   register_cvar("mp_afkminplayers", "1")   // Only kick AFKs when there is at least this many players on the server.
   set_task(float(CHECK_FREQ),"checkPlayers",0,"",0,"b",0)
   register_logevent("playerSpawned",3,"1=changed role to")
   register_logevent("playerSpecs",3,"1=joined team","2=SPECTATOR")
}

public checkPlayers()
{
   new name[64]
   for (new i = 1; i <= get_maxplayers(); i++)
   {
      if (is_user_connected(i) && !is_user_bot(i) && !is_user_hltv(i) && (get_user_team(i)>0))
      {
         new newangle[3]
         get_user_origin(i, newangle)
         get_user_name(i,name,64)
         if((newangle[0] == g_oldangles[i][0]) && (newangle[1] == g_oldangles[i][1]) && (newangle[2] == g_oldangles[i][2]))
         {
            g_afktime[i] += CHECK_FREQ
            check_afktime(i)
         }
         else
         {
            g_oldangles[i][0] = newangle[0]
            g_oldangles[i][1] = newangle[1]
            g_oldangles[i][2] = newangle[2]
            g_afktime[i] = 0
         }
      }
      else   afk_reset(i)
   }
   return PLUGIN_CONTINUE
}

check_afktime(id) {
   new numplayers = get_playersnum()
   new minplayers = get_cvar_num("mp_afkminplayers")
   if (numplayers >= minplayers)
   {
      if(g_spawned[id])
      {
         new maxafktime = get_cvar_num("mp_afktime")
         if(maxafktime < MIN_AFK_TIME)
         {
            log_amx("cvar mp_afktime %i is too low. Minimum value is %i.", maxafktime, MIN_AFK_TIME)
            maxafktime = MIN_AFK_TIME
            set_cvar_num("mp_afktime", MIN_AFK_TIME)
         }

         if(maxafktime-WARNING_TIME <= g_afktime[id] < maxafktime)
         {
            new timeleft = maxafktime - g_afktime[id]
            client_print(id, print_chat, "You have %i seconds to move or you will be put into spectator mode for being AFK.", timeleft)
         }
         else if(g_afktime[id] > maxafktime)
         {
            client_print(id, print_chat, "You are put into spectator mode for being AFK longer than %i seconds.", maxafktime)
                           client_cmd(id,"spectate")
         }
      }
      else if(g_afktime[id] > 30) client_cmd(id,"spectate")
   }
}

public playerSpawned()
{
   new id = get_id()
   g_spawned[id] = true
   return PLUGIN_CONTINUE
}

public playerSpecs()
{
   new id = get_id()
   afk_reset(id)
   return PLUGIN_CONTINUE
}

afk_reset(id)
{
   g_afktime[id] = 0
   new newangle[3]
   get_user_origin(id,newangle)
   g_oldangles[id][0] = newangle[0]
   g_oldangles[id][1] = newangle[1]
   g_oldangles[id][2] = newangle[2]
   g_spawned[id] = false
}

get_id()
{
   new Arg1[64]
   read_logargv(0,Arg1,64)
   new p_name[64]
   parse_loguser(Arg1,p_name,64)
   new name[64],id=0
   for (new i=1;i<=get_maxplayers();i++)
   {
      if(is_user_connected(i))
      {
         get_user_name(i,name,64)
         if(equal(p_name,name)) id = i
      }
   }
   return id
}

public server_changelevel(map[])
{
   for (new i = 1; i <= get_maxplayers(); i++) afk_reset(i)
   return PLUGIN_CONTINUE
}


Én erre a részre gyanakszom:

Kód:
            client_print(id, print_chat, "You are put into spectator mode for being AFK longer than %i seconds.", maxafktime)
                           client_cmd(id,"spectate")
         }
      }
      else if(g_afktime[id] > 30) client_cmd(id,"spectate")


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: AFK Specbe teszi
HozzászólásElküldve:2010.12.19. 08:51 
Offline
Jómunkásember

Csatlakozott:2010.02.07. 11:24
Hozzászólások:325
Ezaz!!! Ne segítsetek!


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: AFK Specbe teszi
HozzászólásElküldve:2010.12.19. 10:11 
Offline
Imperátor
Avatar

Csatlakozott:2009.04.21. 09:33
Hozzászólások:3991
Megköszönt másnak: 5 alkalommal
Megköszönték neki: 135 alkalommal
Letelik az idő, és nem teszi ki? Afk time mennyire van állítva? Kivártad azt az időt?


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: AFK Specbe teszi
HozzászólásElküldve:2010.12.19. 10:48 
Offline
Jómunkásember

Csatlakozott:2010.02.07. 11:24
Hozzászólások:325
Hello!

Letelt az idő és csak a konzolba ír valamit hogy nem ismeri a spectate cspatot.


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: AFK Specbe teszi
HozzászólásElküldve:2010.12.19. 12:23 
Offline
Jómunkásember

Csatlakozott:2010.01.01. 21:15
Hozzászólások:440
Megköszönték neki: 5 alkalommal
Azért mert: spectate van írva a specate helyett vagy a specator helyett


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: AFK Specbe teszi
HozzászólásElküldve:2010.12.19. 13:32 
Offline
Félisten
Avatar

Csatlakozott:2008.04.28. 16:04
Hozzászólások:872
Megköszönt másnak: 7 alkalommal
Megköszönték neki: 59 alkalommal
Nemhiszem hogy van parancs amivel ilyen egyszerűen be lehet állítani valakit spectatornak.

http://www.amxmodx.org/funcwiki.php?go=func&id=200
Kód:
 cs_set_user_team(id,CS_TEAM_SPECTATOR)


Vigyázz, mert életben marad a játékos ilyenkor. Javasolt utána
http://www.amxmodx.org/funcwiki.php?go=func&id=169
Kód:
user_kill(id,1)


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: AFK Specbe teszi
HozzászólásElküldve:2010.12.19. 15:18 
Offline
Imperátor
Avatar

Csatlakozott:2009.04.21. 09:33
Hozzászólások:3991
Megköszönt másnak: 5 alkalommal
Megköszönték neki: 135 alkalommal
Hy CheeseDave :D

Igaz, ez egyszerű :) Viszont kiegészíteném 1 dologgal:
Be kell tenni a cstrike könyvtárat is azaz:
Kód:
#include <cstrike>


GLHF :)


Hozzászólás jelentése
Vissza a tetejére
   
Hozzászólások megjelenítése: Rendezés 
Új téma nyitása Hozzászólás a témához  [12 hozzászólás ]  Oldal12Következő


Ki van itt

Jelenlévő fórumozók: nincs regisztrált felhasználó valamint 24 vendég


Nyithatsz új témákat ebben a fórumban.
Válaszolhatsz egy témára ebben a fórumban.
Nem szerkesztheted a hozzászólásaidat ebben a fórumban.
Nem törölheted a hozzászólásaidat ebben a fórumban.
Nem küldhetsz csatolmányokat ebben a fórumban.

Keresés:
Ugrás:  
Powered by phpBB® Forum Software © phpBB Limited
Magyar fordítás © Magyar phpBB Közösség
Portal: Kiss Portal Extension © Michael O'Toole