Hey,
i got an old plugin that i would like to use on my csgo server. Is there an easy way to port the Eventscripts addon?
Thanks in advance
Simon
Easy Way to port an existing Eventscripts Addon
Kami wrote:Best you can do is post the script here or post its ES link so people here can give it a try (if its possible yet)
I would love if you could port it... I really do love this addon...
Code: Select all
/////////////////////////////////////////////////////
//Ichthys Elimination Mod for Mattie's Eventscripts//
//------------http://eventscripts.com--------------//
/////////////////////////////////////////////////////
// \\
//About\\
// \\
//Elimination works like this. A player is killed, the victims of that player will be respawned.
//Simple as that. This means that anytime you kill an opponent you will be reviving all the players that he killed.
//If a player suicides he will be respawned after a delay. All players he killed will respawn
//If a player is team killed, he will be respawned after a delay. All players he killed will respawn
//There are still other gameplay modes that I would like to add.
//Right now it works well along side normal CSS game play.
//A FFA version would be great aswell as a Team DM version without objectives.
block config
{
//Elimination Mod Settings
//Selfkill settings
elim_suicide_respawn 1 //If set to 1, players that suicide will be automatically respawned
elim_suicide_respawn_delay 5 //Delay to automatically respawn player
//Teamkill settings
elim_teamkill_respawn 1 //If a player is TK'd respawn victim
elim_teamkill_respawn_delay 5 //Delay to automatically respawn TK victim
}
block respawn
{
es est_spawn server_var(elim_userid) // Other spawn command
}
event player_spawn
{
es_keysetvalue elimination event_var(userid) killedby 0
es_keysetvalue elimination event_var(userid) killidstring _
es_format elim_replace _%1_ event_var(userid)
if (event_var(es_userteam) equalto 2) do
{
es_string elim_alive_ct replace server_var(elim_replace) _
es_string elim_alive_t replace server_var(elim_replace) _
es_format elim_alive_t %1%2_ server_var(elim_alive_t) event_var(userid)
}
if (event_var(es_userteam) equalto 3) do
{
es_string elim_alive_t replace server_var(elim_replace) _
es_string elim_alive_ct replace server_var(elim_replace) _
es_format elim_alive_ct %1%2_ server_var(elim_alive_ct) event_var(userid)
}
}
event player_connect
{
es_keycreate elimination event_var(userid)
es_keysetvalue elimination event_var(userid) killedby 0
es_keysetvalue elimination event_var(userid) killidstring _
}
event player_disconnect
{
//Remove from killers string
es_keygetvalue elim_userid elimination event_var(userid) killedby
es_keygetvalue elim_killidstring elimination server_var(elim_userid) killidstring
es_format elim_replace _%1_ server_var(elim_userid)
es_string elim_killidstring replace server_var(elim_replace) _
es_keysetvalue elimination server_var(elim_userid) killidstring server_var(elim_killidstring)
//Spawn players killed by victim
es_setinfo elim_userid event_var(userid)
es_xdoblock ich_elimination/respawnplayers
es_keydelete elimination event_var(userid)
}
event player_death
{
//Alive strings and roundend check
es_format elim_replace _%1_ event_var(userid)
//Remove from both just incase
es_string elim_alive_t replace server_var(elim_replace) _
es_string elim_alive_ct replace server_var(elim_replace) _
es_token elim_token server_var(elim_alive_ct) 0 _
if (server_var(elim_token) equalto 0) then es_xsetinfo elim_roundended 1
es_token elim_token server_var(elim_alive_t) 0 _
if (server_var(elim_token) equalto 0) then es_xsetinfo elim_roundended 1
if (server_var(elim_roundended) = 0) do
{
//tk
//suicide
//worldspawn
//normal
//Worldspawn - fall to death
if (event_var(attacker) = 0) do
{
if (server_var(elim_suicide_respawn) = 1) do
{
//elim_respawn delayed <userid> <round>
es_delayed server_var(elim_suicide_respawn_delay) elim_respawn delayed event_var(userid) server_var(elim_roundcount)
es_tell event_var(userid) #multi #green[Ich Elimination] #lightgreenSuicide auto-respawn enabled: server_var(elim_suicide_respawn_delay) seconds
}
}
else do
{
//Suicide
if (event_var(userid) = event_var(attacker)) do
{
if (server_var(elim_suicide_respawn) = 1) do
{
//elim_respawn delayed <userid> <round>
es_delayed server_var(elim_suicide_respawn_delay) elim_respawn delayed event_var(userid) server_var(elim_roundcount)
es_tell event_var(userid) #multi #green[Ich Elimination] #lightgreenSuicide auto-respawn enabled: server_var(elim_suicide_respawn_delay) seconds
}
}
else do
{
if (event_var(es_userteam) = event_var(es_attackerteam)) do
{
if (server_var(elim_teamkill_respawn) = 1) do
{
//elim_respawn delayed <userid> <round>
es_delayed server_var(elim_teamkill_respawn_delay) elim_respawn delayed event_var(userid) server_var(elim_roundcount)
es_tell event_var(userid) #multi #green[Ich Elimination] #lightgreenTeam kill auto-respawn enabled: server_var(elim_suicide_respawn_delay) seconds
}
}
else do
{
//Set killer's ID
es_keysetvalue elimination event_var(userid) killedby event_var(attacker)
//Add to attackers list
es_keygetvalue elim_killidstring elimination event_var(attacker) killidstring
es_format elim_replace _%1_ event_var(userid)
es_string elim_killidstring replace server_var(elim_replace) _
es_format elim_killidstring %1%2_ server_var(elim_killidstring) event_var(userid)
es_keysetvalue elimination event_var(attacker) killidstring server_var(elim_killidstring)
es_tell event_var(userid) #multi #greenYou will spawn when #default event_var(es_attackername) #green dies
}
}
}
//Spawn players killed by victim
es_setinfo elim_userid event_var(userid)
es_xdoblock ich_elimination/respawnplayers
}
}
block respawnplayers
{
es_keygetvalue elim_killidstring elimination server_var(elim_userid) killidstring
if (server_var(elim_killidstring) notequalto _) do
{
es_xsetinfo elim_message spawned
es_xdoblock ich_elimination/respawnplayers_loop
es_format elim_message "%1" server_var(elim_message)
es_msg server_var(elim_message)
}
es_keysetvalue elimination server_var(elim_userid) killidstring _
}
block respawnplayers_loop
{
es_xsetinfo elim_token 0
es_token elim_token server_var(elim_killidstring) 1 _
if (server_var(elim_roundended) = 0) do
{
es est_spawn server_var(elim_token)
es_getplayername elim_name server_var(elim_token)
es_format elim_message "%1, %2" server_var(elim_name) server_var(elim_message)
}
es_format elim_replace _%1_ server_var(elim_token)
es_string elim_killidstring replace server_var(elim_replace) _
if (server_var(elim_killidstring) notequalto _) then es_xdoblock ich_elimination/respawnplayers_loop
}
block elim_respawn
{
//elim_respawn delayed <userid> <round>
es_xsetinfo elim_arg1 0
es_xgetargv elim_arg1 1
if (server_var(elim_arg1) = delayed) do
{
es_xsetinfo elim_userid 0
es_xgetargv elim_userid 2
es_xsetinfo elim_arg3 0
es_xgetargv elim_arg3 3
es_getuserid elim_userid server_var(elim_userid)
if (server_var(elim_userid) != 0) do
{
if (server_var(elim_arg3) = server_var(elim_roundcount)) then es_xdoblock ich_elimination/respawn
}
}
}
block init
{
es_xkeygroupcreate elimination
es_xsetinfo elim_version 0.4
es_makepublic elim_version
es_xsetinfo elim_userid 0
es_xsetinfo elim_killidstring 0
es_xsetinfo elim_token 0
es_xsetinfo elim_replace 0
es_xsetinfo elim_userid 0
es_xsetinfo elim_index 0
es_xsetinfo elim_name 0
es_xsetinfo elim_exists 0
es_xsetinfo elim_disable_c4 0
es_xsetinfo elim_disable_hostages 0
es_exists elim_exists variable elim_alive_ct
if (server_var(elim_exists) = 0) do
{
es_xsetinfo elim_alive_ct _
es_xsetinfo elim_alive_t _
}
es_xexists elim_exists command elim_respawn
if (server_var(elim_exists) = 0) then es_xregcmd elim_respawn "ich_elimination/elim_respawn" "Elimination Mod Delay Respawn Command"
es_xsetinfo elim_suicide_respawn 0
es_xsetinfo elim_suicide_respawn_delay 0
es_xsetinfo elim_teamkill_respawn 0
es_xsetinfo elim_teamkill_respawn_delay 0
es_xdoblock ich_elimination/config
es_xcreateplayerlist elim
es_xforeachkey key in elim "es_keycreate elimination server_var(key); es_keysetvalue elimination server_var(key) killedby 0; es_keysetvalue elimination server_var(key) killidstring _"
es_xkeygroupdelete elim
es_xlog Ichthys Elimination Mod Init Executed
}
block load
{
es_xdoblock ich_elimination/init
}
block unload
{
es_keygroupdelete elimination
}
event round_end
{
es_xsetinfo elim_roundended 1
}
event round_start
{
es_xmath elim_roundcount + 1
es_xsetinfo elim_roundended 0
}
event es_map_start
{
es_xsetinfo elim_roundcount 0
es_xsetinfo elim_roundended 1
}
event bomb_exploded
{
es_xsetinfo elim_roundended 1
}
event bomb_defused
{
es_xsetinfo elim_roundended 1
}
event hostage_rescued_all
{
es_xsetinfo elim_roundended 1
}
simonus wrote:I would love if you could port it... I really do love this addon...Code: Select all
/////////////////////////////////////////////////////
//Ichthys Elimination Mod for Mattie's Eventscripts//
//------------http://eventscripts.com--------------//
/////////////////////////////////////////////////////
// \\
//About\\
// \\
//Elimination works like this. A player is killed, the victims of that player will be respawned.
//Simple as that. This means that anytime you kill an opponent you will be reviving all the players that he killed.
//If a player suicides he will be respawned after a delay. All players he killed will respawn
//If a player is team killed, he will be respawned after a delay. All players he killed will respawn
//There are still other gameplay modes that I would like to add.
//Right now it works well along side normal CSS game play.
//A FFA version would be great aswell as a Team DM version without objectives.
block config
{
//Elimination Mod Settings
//Selfkill settings
elim_suicide_respawn 1 //If set to 1, players that suicide will be automatically respawned
elim_suicide_respawn_delay 5 //Delay to automatically respawn player
//Teamkill settings
elim_teamkill_respawn 1 //If a player is TK'd respawn victim
elim_teamkill_respawn_delay 5 //Delay to automatically respawn TK victim
}
block respawn
{
es est_spawn server_var(elim_userid) // Other spawn command
}
event player_spawn
{
es_keysetvalue elimination event_var(userid) killedby 0
es_keysetvalue elimination event_var(userid) killidstring _
es_format elim_replace _%1_ event_var(userid)
if (event_var(es_userteam) equalto 2) do
{
es_string elim_alive_ct replace server_var(elim_replace) _
es_string elim_alive_t replace server_var(elim_replace) _
es_format elim_alive_t %1%2_ server_var(elim_alive_t) event_var(userid)
}
if (event_var(es_userteam) equalto 3) do
{
es_string elim_alive_t replace server_var(elim_replace) _
es_string elim_alive_ct replace server_var(elim_replace) _
es_format elim_alive_ct %1%2_ server_var(elim_alive_ct) event_var(userid)
}
}
event player_connect
{
es_keycreate elimination event_var(userid)
es_keysetvalue elimination event_var(userid) killedby 0
es_keysetvalue elimination event_var(userid) killidstring _
}
event player_disconnect
{
//Remove from killers string
es_keygetvalue elim_userid elimination event_var(userid) killedby
es_keygetvalue elim_killidstring elimination server_var(elim_userid) killidstring
es_format elim_replace _%1_ server_var(elim_userid)
es_string elim_killidstring replace server_var(elim_replace) _
es_keysetvalue elimination server_var(elim_userid) killidstring server_var(elim_killidstring)
//Spawn players killed by victim
es_setinfo elim_userid event_var(userid)
es_xdoblock ich_elimination/respawnplayers
es_keydelete elimination event_var(userid)
}
event player_death
{
//Alive strings and roundend check
es_format elim_replace _%1_ event_var(userid)
//Remove from both just incase
es_string elim_alive_t replace server_var(elim_replace) _
es_string elim_alive_ct replace server_var(elim_replace) _
es_token elim_token server_var(elim_alive_ct) 0 _
if (server_var(elim_token) equalto 0) then es_xsetinfo elim_roundended 1
es_token elim_token server_var(elim_alive_t) 0 _
if (server_var(elim_token) equalto 0) then es_xsetinfo elim_roundended 1
if (server_var(elim_roundended) = 0) do
{
//tk
//suicide
//worldspawn
//normal
//Worldspawn - fall to death
if (event_var(attacker) = 0) do
{
if (server_var(elim_suicide_respawn) = 1) do
{
//elim_respawn delayed <userid> <round>
es_delayed server_var(elim_suicide_respawn_delay) elim_respawn delayed event_var(userid) server_var(elim_roundcount)
es_tell event_var(userid) #multi #green[Ich Elimination] #lightgreenSuicide auto-respawn enabled: server_var(elim_suicide_respawn_delay) seconds
}
}
else do
{
//Suicide
if (event_var(userid) = event_var(attacker)) do
{
if (server_var(elim_suicide_respawn) = 1) do
{
//elim_respawn delayed <userid> <round>
es_delayed server_var(elim_suicide_respawn_delay) elim_respawn delayed event_var(userid) server_var(elim_roundcount)
es_tell event_var(userid) #multi #green[Ich Elimination] #lightgreenSuicide auto-respawn enabled: server_var(elim_suicide_respawn_delay) seconds
}
}
else do
{
if (event_var(es_userteam) = event_var(es_attackerteam)) do
{
if (server_var(elim_teamkill_respawn) = 1) do
{
//elim_respawn delayed <userid> <round>
es_delayed server_var(elim_teamkill_respawn_delay) elim_respawn delayed event_var(userid) server_var(elim_roundcount)
es_tell event_var(userid) #multi #green[Ich Elimination] #lightgreenTeam kill auto-respawn enabled: server_var(elim_suicide_respawn_delay) seconds
}
}
else do
{
//Set killer's ID
es_keysetvalue elimination event_var(userid) killedby event_var(attacker)
//Add to attackers list
es_keygetvalue elim_killidstring elimination event_var(attacker) killidstring
es_format elim_replace _%1_ event_var(userid)
es_string elim_killidstring replace server_var(elim_replace) _
es_format elim_killidstring %1%2_ server_var(elim_killidstring) event_var(userid)
es_keysetvalue elimination event_var(attacker) killidstring server_var(elim_killidstring)
es_tell event_var(userid) #multi #greenYou will spawn when #default event_var(es_attackername) #green dies
}
}
}
//Spawn players killed by victim
es_setinfo elim_userid event_var(userid)
es_xdoblock ich_elimination/respawnplayers
}
}
block respawnplayers
{
es_keygetvalue elim_killidstring elimination server_var(elim_userid) killidstring
if (server_var(elim_killidstring) notequalto _) do
{
es_xsetinfo elim_message spawned
es_xdoblock ich_elimination/respawnplayers_loop
es_format elim_message "%1" server_var(elim_message)
es_msg server_var(elim_message)
}
es_keysetvalue elimination server_var(elim_userid) killidstring _
}
block respawnplayers_loop
{
es_xsetinfo elim_token 0
es_token elim_token server_var(elim_killidstring) 1 _
if (server_var(elim_roundended) = 0) do
{
es est_spawn server_var(elim_token)
es_getplayername elim_name server_var(elim_token)
es_format elim_message "%1, %2" server_var(elim_name) server_var(elim_message)
}
es_format elim_replace _%1_ server_var(elim_token)
es_string elim_killidstring replace server_var(elim_replace) _
if (server_var(elim_killidstring) notequalto _) then es_xdoblock ich_elimination/respawnplayers_loop
}
block elim_respawn
{
//elim_respawn delayed <userid> <round>
es_xsetinfo elim_arg1 0
es_xgetargv elim_arg1 1
if (server_var(elim_arg1) = delayed) do
{
es_xsetinfo elim_userid 0
es_xgetargv elim_userid 2
es_xsetinfo elim_arg3 0
es_xgetargv elim_arg3 3
es_getuserid elim_userid server_var(elim_userid)
if (server_var(elim_userid) != 0) do
{
if (server_var(elim_arg3) = server_var(elim_roundcount)) then es_xdoblock ich_elimination/respawn
}
}
}
block init
{
es_xkeygroupcreate elimination
es_xsetinfo elim_version 0.4
es_makepublic elim_version
es_xsetinfo elim_userid 0
es_xsetinfo elim_killidstring 0
es_xsetinfo elim_token 0
es_xsetinfo elim_replace 0
es_xsetinfo elim_userid 0
es_xsetinfo elim_index 0
es_xsetinfo elim_name 0
es_xsetinfo elim_exists 0
es_xsetinfo elim_disable_c4 0
es_xsetinfo elim_disable_hostages 0
es_exists elim_exists variable elim_alive_ct
if (server_var(elim_exists) = 0) do
{
es_xsetinfo elim_alive_ct _
es_xsetinfo elim_alive_t _
}
es_xexists elim_exists command elim_respawn
if (server_var(elim_exists) = 0) then es_xregcmd elim_respawn "ich_elimination/elim_respawn" "Elimination Mod Delay Respawn Command"
es_xsetinfo elim_suicide_respawn 0
es_xsetinfo elim_suicide_respawn_delay 0
es_xsetinfo elim_teamkill_respawn 0
es_xsetinfo elim_teamkill_respawn_delay 0
es_xdoblock ich_elimination/config
es_xcreateplayerlist elim
es_xforeachkey key in elim "es_keycreate elimination server_var(key); es_keysetvalue elimination server_var(key) killedby 0; es_keysetvalue elimination server_var(key) killidstring _"
es_xkeygroupdelete elim
es_xlog Ichthys Elimination Mod Init Executed
}
block load
{
es_xdoblock ich_elimination/init
}
block unload
{
es_keygroupdelete elimination
}
event round_end
{
es_xsetinfo elim_roundended 1
}
event round_start
{
es_xmath elim_roundcount + 1
es_xsetinfo elim_roundended 0
}
event es_map_start
{
es_xsetinfo elim_roundcount 0
es_xsetinfo elim_roundended 1
}
event bomb_exploded
{
es_xsetinfo elim_roundended 1
}
event bomb_defused
{
es_xsetinfo elim_roundended 1
}
event hostage_rescued_all
{
es_xsetinfo elim_roundended 1
}
I'll give it a try sometime, I need to practise the new API anyway
I'll try this out, hope it works :)
Syntax: Select all
# addons/source-python/elimination/elimination.py
# anytime you kill an opponent you will be reviving all the players that he killed.
# If a player suicides he will be respawned after a delay. All players he killed will respawn
# If a player is team killed, he will be respawned after a delay. All players he killed will respawn
# =============================================================================
# >> IMPORTS
# =============================================================================
# Python Imports
from threading import Timer
# Source.Python Imports
from events import Event
from players import EasyPlayer
# =============================================================================
# >> CONSTANTS
# =============================================================================
RESPAWN_DELAY_SUICIDE 5.0
RESPAWN_DELAY_TEAMKILL 5.0
# =============================================================================
# >> GLOBAL VARIABLES
# =============================================================================
myplayers = {} # declare our player dictionary
# =============================================================================
# >> HELPER FUNCTIONS
# =============================================================================
def RespawnPlayer(victim):
# respawn the victim
pass
# =============================================================================
# >> EVENTS
# =============================================================================
@Event
def player_death(GameEvent):
victim = GameEvent.GetInt("userid")
attacker = GameEvent.GetInt("attacker")
victimteam = EasyPlayer(victim).team
if not victim in myplayers.keys():
myplayers[victim] = []
# temporary, because nothing like ES gamethread has been added to SP yet
# respawn the suicided or team-killed victim after the specified time
if not attacker:
timer = Timer(RESPAWN_DELAY_SUICIDE, RespawnPlayer, victim)
else:
if not attacker in myplayers.keys():
myplayers[attacker] = []
if EasyPlayer(attacker).team == myvictimteam:
timer = Timer(RESPAWN_DELAY_TEAMKILL, RespawnPlayer, victim)
else:
myplayers[attacker].append(victim)
if myplayers[victim]:
for killed in myplayers[victim]:
RespawnPlayer(killed)
myplayers[victim].remove(killed)
timer.start()
@Event # do I need this here ?
def unload():
myplayers.clear() # clear out our player dictionary
BackRaw wrote:Syntax: Select all
@Event # do I need this here ?
def unload():
myplayers.clear() # clear out our player dictionary
No, this is handled here: http://code.google.com/p/source-python/source/browse/addons/source-python/_libs/addons/manager.py#92 ;)
Ayuto wrote:No, this is handled here: http://code.google.com/p/source-python/source/browse/addons/source-python/_libs/addons/manager.py#92
Yeah, figured that out myself thanks.
Return to “General Discussion”
Who is online
Users browsing this forum: No registered users and 69 guests