AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Approved Plugins (https://forums.alliedmods.net/forumdisplay.php?f=8)
-   -   Infinite Round (v2.1.2) (https://forums.alliedmods.net/showthread.php?t=117782)

Arkshine 02-04-2010 16:28

Infinite Round (v2.1.2)
 
1 Attachment(s)


Infinite Round
∞ v2.1.2, released May 6th, 2013


Simple and efficient way to have no round end whatever the situation like :
  • when all players on one team are dead ;
  • when the round timer has ended ;
  • when the objectives has been completed.
It doesn't use bots (no extra slots used) like others plugins, it simply blocks some CS functions.



Contents :


REQUIREMENTS
∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙ ∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙ ∙

  • Counter-Strike 1.6 / Condition Zero.
  • AMX Mod X 1.8.2 and higher.
  • Orpheu 2.4 and higher.
  • Cvar Utilities v1.6 and higher.
  • Steam server.


USAGE (CVARS)
∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙ ∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙ ∙

  • ir_block_roundend <Flags|*>
    ├ What round type you wish to block.
    Default value : "*".

    Tip : If you want to block all, it's recommended to use "*" as value.

    Flags :
    a - Round Time Expired
    b - Bomb Exploded
    c - Bomb Defused
    d - Hostages Rescued
    e - Vip Escaped
    f - Vip Assassinated
    g - Terrorist Win
    h - CT Win
    i - Round Draw
    j - Terrorists Escaped
    k - CTs Prevent Escape
    Flags are additive. Example : ir_block_roundend "ah"
  • ir_block_gamecommencing <0|1>
    ├ Whether you want to block GameCommencing message be triggered.
    Default value : "0".

    This message happens when the game has not yet started and there are 2 players at least.
    If you want to test something, you may want to enable this cvar.
    It's by default disabled because some plugins/mods rely on this message to do stuffs, like Gungame.
  • ir_active_api <0|1>
    ├ Whether you want to activate the API or not. It concerns only the forward.
    Default value : "0".

    For more informations, you can see the developper details below.


DEVELOPPERS NOTES
∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙ ∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙ ∙

  • Technical details - How works the plugin ?

    All rounds ends are handled by three functions, more specifically :

    CHalfLifeMultiplay::HasRoundTimeExpired()

    • Round time [Linux only]

    CHalfLifeMultiplay::Think()

    • Round time [Windows only];
    • Default round end (game not started or no more player ; we don't touch them in this plugin).

    CHalfLifeMultiplay::CheckWinConditions()

    • Game commencing
    • Vip round ;
    • Prison round ;
    • Bomb round ;
    • Hostage round ;
    • Team extermination.

    Note about HasRoundTimeExpired() : this function is called from Think() and checks for round time. Unfortunately, because of optimization at compilation time, the content of this function under windows is integrated directly in Think(), which disallow us to hook it, even though the function still exists, but not called.

  • API

    - forward OnRoundEnd( const RoundEndType:type );
    This forward is called when a round end is triggered before it happens.
    You can return PLUGIN_HANDLED to block the round end happening.

    Note #1 : it supercedes the value of the ir_block_roundend cvar.
    Note #2 : since CheckWinConditions function can be called few times at once, it will happen for the forward too. Nothing is filtered, so keep that in mind.
    - native SetBlockingRoundEnd( const RoundEndType:type );
    Same behavior as the ir_block_roundend cvar.
    Any suggestions to improve the API are welcomed.
    Don't forget to take a look in the include file to see the available constants.


GENERAL NOTES
∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙ ∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙ ∙



CHANGE LOG
∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙ ∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙ ∙


list


INSTALLATION
∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙ ∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙ ∙
  1. If you don't have Orpheu module - Go there and follow instructions at the end of the post.
  2. If you don't have Cvar Utilises module - Follow the install instructions from the module thread ;
  3. Download infinite_round-files-xx.zip and unzip the content in your $mod/ directory ;
  4. In your plugins.ini file, add infinite_round.amxx where you want ;
  5. Restart your server.

INSTALLATION FILES
∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙ ∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙ ∙


Arkshine 02-04-2010 16:29

Re: Infinite Round
 
reserved.

DarkGod 02-04-2010 16:32

Re: Infinite Round
 
Where is the plugin again? :crab:

Sounds hecka awesome! DAMN STRAIGHT! Way to fucking go, Arkshine.

EDIT: There it is. :)

Arkshine 02-04-2010 16:33

Re: Infinite Round
 
I was uploading. I wanted to know the thread link to put in the plugin. It's done now.

DarkGod 02-04-2010 16:35

Re: Infinite Round
 
Also, it's the 4th of February, not January.

Arkshine 02-04-2010 16:37

Re: Infinite Round
 
Ah damn. I was wondering if I was fucked up something... :mrgreen:

hleV 02-04-2010 16:40

Re: Infinite Round
 
Define for strings which are used more than once? Bad idea.

Is this anyhow better than the No Round End module?

Arkshine 02-04-2010 16:42

Re: Infinite Round
 
It's fine like that but thanks for your consideration.

EXteRmiNaToR 02-04-2010 16:46

Re: Infinite Round
 
Nice!:up:

01101101 02-04-2010 16:50

Re: Infinite Round
 
By the way, what is

PHP Code:

public EnableForwards () <> {}
public 
EnableForwards () <disabled

(I know this is not the place to ask but starting a new thread for just this seemed useless)

Arkshine 02-04-2010 16:52

Re: Infinite Round
 
Quote:

Is this anyhow better than the No Round End module?
You mean this one ?

- Doesn't block timer.
- Doesn't block end of objectives.
- Doesn't work under linux.
- Doesn't have a command to enable/disable plugin properly.
- Offset is harcoded and can change if there is a CS update. Mine uses a signature.

Arkshine 02-04-2010 16:55

Re: Infinite Round
 
@01101101 :

No the indentation is not fucked up, see that here for example, it well indented in few editors I have. I'm using four space as one tab. ( config in notepad++ ). "Idented with Notepad++ autoidenter" ; you better to not use that.
Concerning the automaton, I suggest you to see the Pawn guide or here.

01101101 02-04-2010 16:57

Re: Infinite Round
 
Ok thanks :D

Zombiezzz 02-04-2010 17:09

Re: Infinite Round
 
nice! i hope you don't trash this plugin like you did to your others/ :(

KadiR 02-04-2010 17:18

Re: Infinite Round
 
Nice job! :)

Exolent[jNr] 02-04-2010 17:54

Re: Infinite Round
 
Code:
            new message[ 128 ];             ( currentPluginState == statePluginWanted ) ?                 formatex( message, charsmax( message ), "%s", statePluginWanted ? "Plugin already enabled!" : "Plugin already disabled!" ) :                 formatex( message, charsmax( message ), "%s", statePluginWanted ? "Plugin is now enabled!"  : "Plugin is now disabled!"  );             ( player ) ?                 console_print( player, message ) :                 server_print( message );
:arrow:
Code:
            ( currentPluginState == statePluginWanted ) ?                 console_print( player, "%s", statePluginWanted ? "Plugin already enabled!" : "Plugin already disabled!" ) :                 console_print( player, "%s", statePluginWanted ? "Plugin is now enabled!"  : "Plugin is now disabled!"  );

If 0 is passed to console_print( ), it is sent to server.

Arkshine 02-04-2010 17:57

Re: Infinite Round
 
Just checked, you're right. I don't use often such function. I will change for the next version. Thanks.

AirShot 02-04-2010 18:40

Re: Infinite Round
 
Is it to prevent the ends of rounds in the mod as GunGame or DM when there is not many players and all team members are dead? for example?
if so, is it not make the server lagging?

Sorry for bad English :mrgreen:

Arkshine 02-04-2010 18:50

Re: Infinite Round
 
- It blocks the end of rounds whatever the situation/condition, yes like for example all player from a team are dead. All the things which trigger a round end. It's meant to be used on DM environment where players spawn continually. (like say the description/notes)
- The way it's coded, of course not. Also I won't release a plugin which lags.

Kreation 02-04-2010 20:01

Re: Infinite Round
 
Goodjob, nice plugin.

epic . 02-05-2010 01:32

Re: Infinite Round
 
I have a idea, is that possible to make a plugin to let the map(such as fy_iceworld) has a finite round time, because sometimes the dead players have to wait so long time to the living player kill each other.
just idea, you plugin is so nice!








.

ConnorMcLeod 02-05-2010 01:50

Re: Infinite Round
 
No way to filter which kind of round end you want to prevent ?

Example, don't block round end triggered by an objective completed or a full team killed, but block round end trigger by round time expired.


@epic .
Just enable a respawn for player who just joined (and to other players to, considering there is no roundtime...)

joaquimandrade 02-05-2010 01:56

Re: Infinite Round
 
Quote:

Originally Posted by ConnorMcLeod (Post 1079058)
No way to filter which kind of round end you want to prevent ?

Example, don't block round end triggered by an objective completed or a full team killed, but block round end trigger by round time expired.

You mean that you want to do that for you or you would like that feature in the plugin?

If you want that for you check the function
PHP Code:

public EnableForwards () <disabled


ConnorMcLeod 02-05-2010 02:03

Re: Infinite Round
 
I mean that i ask first if it's possible, and then i suggest to add the feature in the plugin.

jim_yang 02-05-2010 02:20

Re: Infinite Round
 
nice shit
hello my old friends
connor, joaq, arkshine

ConnorMcLeod 02-05-2010 02:26

Re: Infinite Round
 
We miss you.

mAr7obg 02-05-2010 02:51

Re: Infinite Round
 
Great job dude this is awesome!

Pamaliska 02-05-2010 04:39

Re: Infinite Round
 
I'm afraid it's not compatible with GunGame, sorry.

joaquimandrade 02-05-2010 04:44

Re: Infinite Round
 
Quote:

Originally Posted by Pamaliska (Post 1079139)
I'm afraid it's not compatible with GunGame, sorry.

What this plugin do is very direct so, if some code has to be changed to make one compatible with the other, that code is in GunGame.

Anyway, what happens or doesn't happen with both running?

crazyeffect 02-05-2010 04:56

Re: Infinite Round
 
Nice, lol

3 pages in one day :P

Arkshine 02-05-2010 05:39

Re: Infinite Round
 
Quote:

Originally Posted by ConnorMcLeod (Post 1079058)
No way to filter which kind of round end you want to prevent ?

Example, don't block round end triggered by an objective completed or a full team killed, but block round end trigger by round time expired.
)

I can try but it sounds like a lot more complicated, it would deal more with memory path. For sure, it would be nice features.

Quote:

Originally Posted by jim_yang (Post 1079084)
nice shit
hello my old friends
connor, joaq, arkshine

Hello jim_yang. :mrgreen:

Quote:

Originally Posted by Pamaliska (Post 1079139)
I'm afraid it's not compatible with GunGame, sorry.

It was not tested with such mod, but like Joaquim has said, since the plugin block with the most direct way, that's not my plugin which should change. I will test myself to see what happens, because I guess gungame is based on new round.

Pamaliska 02-05-2010 05:55

Re: Infinite Round
 
No info about what happens when both are running. I just noticed through the hlsw server chat: "wtf... why does it not work...". I can clearly confirm that GunGame warm-up did not start as I issue some server commands via that event. Had to disable it at once before event going into my servers. With the other round end blocking module by the other user, Gungame went crazy, some of the functions became bugged and servers started to crash.

Arkshine 02-05-2010 06:06

Re: Infinite Round
 
If you don't see message error, it means all is well blocked/patched. :mrgreen:.
Anyway I will see If I can modify Gungame to works with this plugin.

Edit : just tried GunGame 2.13b ; it works fine, but it's true that the warm-up does not start.

hjkwe654 02-05-2010 06:50

Re: Infinite Round
 
when i type infiniteround_toggle 1 in console:
Code:

Unknown command: infiniteround_toggle

L 02/05/2010 - 19:47:37: [ORPHEU] Function "CHalfLifeMultiplay::CheckMapConditions" not found
L 02/05/2010 - 19:47:37: [AMXX] Displaying debug trace (plugin "infinite_round.amxx")
L 02/05/2010 - 19:47:37: [AMXX] Run time error 10: native error (native "OrpheuGetFunction")
L 02/05/2010 - 19:47:37: [AMXX]    [0] infinite_round.sma::CheckConditions (line 156)
L 02/05/2010 - 19:47:37: [AMXX]    [1] infinite_round.sma::CheckConditions (line 127)

EDIT:
i updated hlds to latest version and working :lol:

Arkshine 02-05-2010 06:59

Re: Infinite Round
 
@Pamaliska : I've tried with Gungame 2.1.3b, a simple fix would be to assume you should warmup by default, so in the .sma, change shouldWarmup by shouldWarmup = 1 ( at the start, where it's written // misc ) . Gungame, right now hook #Game_Commencing only but such message is blocked with my plugin.

@hjkwe654 : CS ? CZ ? no-steam ? It won't probably work on no-steam server. Wait. Make sure before that the signatures are well copied. (archive provided) You should see files in configs/orpheu/functions and /memory/CHalfLifeMultiplay.

hjkwe654 02-05-2010 07:01

Re: Infinite Round
 
yea, cs server with steam

wrecked_ 02-05-2010 07:03

Re: Infinite Round
 
Very nice work Arkshine. Looks like Orpheu really gets the job done, I'll have to look into using it in the near future.

Arkshine 02-05-2010 07:04

Re: Infinite Round
 
Quote:

Originally Posted by hjkwe654 (Post 1079222)
yea, cs server with steam

Are you sure that you have well copied the signatures on your server ? ( archives provided ). You should see files in configs/orpheu/functions and /memory/CHalfLifeMultiplay.

hjkwe654 02-05-2010 07:22

Re: Infinite Round
 
ok, its working:)

Piola 02-05-2010 10:33

Re: Infinite Round
 
Good job.


All times are GMT -4. The time now is 18:21.

Powered by vBulletin®
Copyright ©2000 - 2020, vBulletin Solutions, Inc.