Little fix please

A place for requesting new Source.Python plugins to be made for your server.

Please request only one plugin per thread.
User avatar
daren adler
Senior Member
Posts: 328
Joined: Sat May 18, 2019 7:42 pm

Little fix please

Postby daren adler » Thu Feb 24, 2022 7:07 pm

I am using a es script using EventScripts-Emulator and in the error i am getting this

Code: Select all

[SP] Caught an Exception:
Traceback (most recent call last):
  File "..\addons\source-python\plugins\es_emulator\eventscripts\es.py", line 284, in triggerEvent
    self.EventListeners[eventname][listener](event_var)
  File "..\addons\source-python\plugins\es_emulator\eventscripts\x___fragcloud_v2\x___fragcloud_v2.py", line 90, in player_spawn
    for index in weaponlib.getIndexList("env_ar2explosion"):

NameError: name 'weaponlib' is not defined


How or what do i have to add to this line

Code: Select all

def player_spawn(ev):
    for index in weaponlib.getIndexList("env_ar2explosion"):

Thank you and have a great week. :grin:

The whole script is here

Code: Select all

MATERIAL1 = 'materials/particle/fire.vmt'
MATERIAL2 = 'materials/particle/particle_noisesphere.vmt'
MATERIAL3 = 'materials/Effects/fleck_cement1.vmt'
MATERIAL4 = 'materials/Sprites/heatwavedx70.vmt'
#
import es
import usermsg
import gamethread
#
def load():
    es.msg('loaded')
    addDownloadables()
    #
def addDownloadables():
    es.stringtable('downloadables', MATERIAL1)
    es.stringtable('downloadables', MATERIAL1[:-3] + 'vtf')
    es.stringtable('downloadables', MATERIAL2)
    es.stringtable('downloadables', MATERIAL2[:-3] + 'vtf')
    es.stringtable('downloadables', MATERIAL3)
    es.stringtable('downloadables', MATERIAL3[:-3] + 'vtf')
    es.stringtable('downloadables', MATERIAL4)
    es.stringtable('downloadables', MATERIAL4[:-3] + 'vtf')
    #
def es_map_start(ev):
    addDownloadables()
    #
def player_death(ev):
    weapon = ev["weapon"]
    attacker = ev["attacker"]
    userid = ev["userid"]
    #
    if weapon == "combine_ball":
        usermsg.shake(attacker, 5.1, 7)
        usermsg.fade(attacker, 1, 0.15, 0, 255, 11, 11, 160)
        fragcloud1(userid)
        #
    if weapon == "smg1_grenade":
        usermsg.shake(attacker, 7.1, 7)
        usermsg.fade(attacker, 1, 0.15, 0, 255, 11, 11, 160)
        fragcloud2(userid)
        #
    if weapon == "grenade_frag":
        usermsg.shake(attacker, 9.3, 7)
        usermsg.fade(attacker, 1, 0.15, 0, 255, 11, 11, 160)
        fragcloud3(userid)
        #
    if weapon == "rpg_missile":
        usermsg.shake(attacker, 11.5, 7)
        usermsg.fade(attacker, 1, 0.15, 0, 255, 11, 11, 160)
        fragcloud4(userid)
        #
def fragcloud1(userid):
    clouds = es.createentitylist("env_ar2explosion")
    es.server.queuecmd("es_xgive %s env_ar2explosion"% userid)
    es.server.queuecmd("es_fire %s env_ar2explosion addoutput \"material %s\""% (userid, MATERIAL1.split('/', 1)[1]))
    es.server.queuecmd("es_fire %s env_ar2explosion explode"% userid)
    gamethread.delayed(0.1, es.server.queuecmd, ("es_fire %s env_ar2explosion Kill"% userid))
    for cloud in clouds:
        gamethread.delayed(0.1, es.server.queuecmd, ("es_fire %s %s Kill"% (userid, cloud)))
        #
def fragcloud2(userid):
    clouds = es.createentitylist("env_ar2explosion")
    es.server.queuecmd("es_xgive %s env_ar2explosion"% userid)
    es.server.queuecmd("es_fire %s env_ar2explosion addoutput \"material %s\""% (userid, MATERIAL2.split('/', 1)[1]))
    es.server.queuecmd("es_fire %s env_ar2explosion explode"% userid)
    gamethread.delayed(0.1, es.server.queuecmd, ("es_fire %s env_ar2explosion Kill"% userid))
    for cloud in clouds:
        gamethread.delayed(0.1, es.server.queuecmd, ("es_fire %s %s Kill"% (userid, cloud)))
        #
def fragcloud3(userid):
    clouds = es.createentitylist("env_ar2explosion")
    es.server.queuecmd("es_xgive %s env_ar2explosion"% userid)
    es.server.queuecmd("es_fire %s env_ar2explosion addoutput \"material %s\""% (userid, MATERIAL3.split('/', 1)[1]))
    es.server.queuecmd("es_fire %s env_ar2explosion explode"% userid)
    gamethread.delayed(0.1, es.server.queuecmd, ("es_fire %s env_ar2explosion Kill"% userid))
    for cloud in clouds:
        gamethread.delayed(0.1, es.server.queuecmd, ("es_fire %s %s Kill"% (userid, cloud)))
        #
        #
def fragcloud4(userid):
    clouds = es.createentitylist("env_ar2explosion")
    es.server.queuecmd("es_xgive %s env_ar2explosion"% userid)
    es.server.queuecmd("es_fire %s env_ar2explosion addoutput \"material %s\""% (userid, MATERIAL4.split('/', 1)[1]))
    es.server.queuecmd("es_fire %s env_ar2explosion explode"% userid)
    gamethread.delayed(0.1, es.server.queuecmd, ("es_fire %s env_ar2explosion Kill"% userid))
    for cloud in clouds:
        gamethread.delayed(0.1, es.server.queuecmd, ("es_fire %s %s Kill"% (userid, cloud)))
        #
def player_spawn(ev):
    for index in weaponlib.getIndexList("env_ar2explosion"):
        if es.getindexprop(index, 'CBaseEntity.m_hOwnerEntity') == -1:
            es.server.queuecmd('es_xremove %s' % index)
            #
def unload():
    es.msg('unloaded')
    #
cssbestrpg
Senior Member
Posts: 287
Joined: Sun May 17, 2020 7:56 am
Location: Finland
Contact:

Re: Little fix please

Postby cssbestrpg » Thu Feb 24, 2022 7:37 pm

daren adler wrote:I am using a es script using EventScripts-Emulator and in the error i am getting this

Code: Select all

[SP] Caught an Exception:
Traceback (most recent call last):
  File "..\addons\source-python\plugins\es_emulator\eventscripts\es.py", line 284, in triggerEvent
    self.EventListeners[eventname][listener](event_var)
  File "..\addons\source-python\plugins\es_emulator\eventscripts\x___fragcloud_v2\x___fragcloud_v2.py", line 90, in player_spawn
    for index in weaponlib.getIndexList("env_ar2explosion"):

NameError: name 'weaponlib' is not defined


How or what do i have to add to this line

Code: Select all

def player_spawn(ev):
    for index in weaponlib.getIndexList("env_ar2explosion"):

Thank you and have a great week. :grin:

The whole script is here

Code: Select all

MATERIAL1 = 'materials/particle/fire.vmt'
MATERIAL2 = 'materials/particle/particle_noisesphere.vmt'
MATERIAL3 = 'materials/Effects/fleck_cement1.vmt'
MATERIAL4 = 'materials/Sprites/heatwavedx70.vmt'
#
import es
import usermsg
import gamethread
#
def load():
    es.msg('loaded')
    addDownloadables()
    #
def addDownloadables():
    es.stringtable('downloadables', MATERIAL1)
    es.stringtable('downloadables', MATERIAL1[:-3] + 'vtf')
    es.stringtable('downloadables', MATERIAL2)
    es.stringtable('downloadables', MATERIAL2[:-3] + 'vtf')
    es.stringtable('downloadables', MATERIAL3)
    es.stringtable('downloadables', MATERIAL3[:-3] + 'vtf')
    es.stringtable('downloadables', MATERIAL4)
    es.stringtable('downloadables', MATERIAL4[:-3] + 'vtf')
    #
def es_map_start(ev):
    addDownloadables()
    #
def player_death(ev):
    weapon = ev["weapon"]
    attacker = ev["attacker"]
    userid = ev["userid"]
    #
    if weapon == "combine_ball":
        usermsg.shake(attacker, 5.1, 7)
        usermsg.fade(attacker, 1, 0.15, 0, 255, 11, 11, 160)
        fragcloud1(userid)
        #
    if weapon == "smg1_grenade":
        usermsg.shake(attacker, 7.1, 7)
        usermsg.fade(attacker, 1, 0.15, 0, 255, 11, 11, 160)
        fragcloud2(userid)
        #
    if weapon == "grenade_frag":
        usermsg.shake(attacker, 9.3, 7)
        usermsg.fade(attacker, 1, 0.15, 0, 255, 11, 11, 160)
        fragcloud3(userid)
        #
    if weapon == "rpg_missile":
        usermsg.shake(attacker, 11.5, 7)
        usermsg.fade(attacker, 1, 0.15, 0, 255, 11, 11, 160)
        fragcloud4(userid)
        #
def fragcloud1(userid):
    clouds = es.createentitylist("env_ar2explosion")
    es.server.queuecmd("es_xgive %s env_ar2explosion"% userid)
    es.server.queuecmd("es_fire %s env_ar2explosion addoutput \"material %s\""% (userid, MATERIAL1.split('/', 1)[1]))
    es.server.queuecmd("es_fire %s env_ar2explosion explode"% userid)
    gamethread.delayed(0.1, es.server.queuecmd, ("es_fire %s env_ar2explosion Kill"% userid))
    for cloud in clouds:
        gamethread.delayed(0.1, es.server.queuecmd, ("es_fire %s %s Kill"% (userid, cloud)))
        #
def fragcloud2(userid):
    clouds = es.createentitylist("env_ar2explosion")
    es.server.queuecmd("es_xgive %s env_ar2explosion"% userid)
    es.server.queuecmd("es_fire %s env_ar2explosion addoutput \"material %s\""% (userid, MATERIAL2.split('/', 1)[1]))
    es.server.queuecmd("es_fire %s env_ar2explosion explode"% userid)
    gamethread.delayed(0.1, es.server.queuecmd, ("es_fire %s env_ar2explosion Kill"% userid))
    for cloud in clouds:
        gamethread.delayed(0.1, es.server.queuecmd, ("es_fire %s %s Kill"% (userid, cloud)))
        #
def fragcloud3(userid):
    clouds = es.createentitylist("env_ar2explosion")
    es.server.queuecmd("es_xgive %s env_ar2explosion"% userid)
    es.server.queuecmd("es_fire %s env_ar2explosion addoutput \"material %s\""% (userid, MATERIAL3.split('/', 1)[1]))
    es.server.queuecmd("es_fire %s env_ar2explosion explode"% userid)
    gamethread.delayed(0.1, es.server.queuecmd, ("es_fire %s env_ar2explosion Kill"% userid))
    for cloud in clouds:
        gamethread.delayed(0.1, es.server.queuecmd, ("es_fire %s %s Kill"% (userid, cloud)))
        #
        #
def fragcloud4(userid):
    clouds = es.createentitylist("env_ar2explosion")
    es.server.queuecmd("es_xgive %s env_ar2explosion"% userid)
    es.server.queuecmd("es_fire %s env_ar2explosion addoutput \"material %s\""% (userid, MATERIAL4.split('/', 1)[1]))
    es.server.queuecmd("es_fire %s env_ar2explosion explode"% userid)
    gamethread.delayed(0.1, es.server.queuecmd, ("es_fire %s env_ar2explosion Kill"% userid))
    for cloud in clouds:
        gamethread.delayed(0.1, es.server.queuecmd, ("es_fire %s %s Kill"% (userid, cloud)))
        #
def player_spawn(ev):
    for index in weaponlib.getIndexList("env_ar2explosion"):
        if es.getindexprop(index, 'CBaseEntity.m_hOwnerEntity') == -1:
            es.server.queuecmd('es_xremove %s' % index)
            #
def unload():
    es.msg('unloaded')
    #


Hey this should fix the error:

Syntax: Select all

MATERIAL1 = 'materials/particle/fire.vmt'
MATERIAL2 = 'materials/particle/particle_noisesphere.vmt'
MATERIAL3 = 'materials/Effects/fleck_cement1.vmt'
MATERIAL4 = 'materials/Sprites/heatwavedx70.vmt'
#
import es
import usermsg
import gamethread
import weaponlib
#
def load():
es.msg('loaded')
addDownloadables()
#
def addDownloadables():
es.stringtable('downloadables', MATERIAL1)
es.stringtable('downloadables', MATERIAL1[:-3] + 'vtf')
es.stringtable('downloadables', MATERIAL2)
es.stringtable('downloadables', MATERIAL2[:-3] + 'vtf')
es.stringtable('downloadables', MATERIAL3)
es.stringtable('downloadables', MATERIAL3[:-3] + 'vtf')
es.stringtable('downloadables', MATERIAL4)
es.stringtable('downloadables', MATERIAL4[:-3] + 'vtf')
#
def es_map_start(ev):
addDownloadables()
#
def player_death(ev):
weapon = ev["weapon"]
attacker = ev["attacker"]
userid = ev["userid"]
#
if weapon == "combine_ball":
usermsg.shake(attacker, 5.1, 7)
usermsg.fade(attacker, 1, 0.15, 0, 255, 11, 11, 160)
fragcloud1(userid)
#
if weapon == "smg1_grenade":
usermsg.shake(attacker, 7.1, 7)
usermsg.fade(attacker, 1, 0.15, 0, 255, 11, 11, 160)
fragcloud2(userid)
#
if weapon == "grenade_frag":
usermsg.shake(attacker, 9.3, 7)
usermsg.fade(attacker, 1, 0.15, 0, 255, 11, 11, 160)
fragcloud3(userid)
#
if weapon == "rpg_missile":
usermsg.shake(attacker, 11.5, 7)
usermsg.fade(attacker, 1, 0.15, 0, 255, 11, 11, 160)
fragcloud4(userid)
#
def fragcloud1(userid):
clouds = es.createentitylist("env_ar2explosion")
es.server.queuecmd("es_xgive %s env_ar2explosion"% userid)
es.server.queuecmd("es_fire %s env_ar2explosion addoutput \"material %s\""% (userid, MATERIAL1.split('/', 1)[1]))
es.server.queuecmd("es_fire %s env_ar2explosion explode"% userid)
gamethread.delayed(0.1, es.server.queuecmd, ("es_fire %s env_ar2explosion Kill"% userid))
for cloud in clouds:
gamethread.delayed(0.1, es.server.queuecmd, ("es_fire %s %s Kill"% (userid, cloud)))
#
def fragcloud2(userid):
clouds = es.createentitylist("env_ar2explosion")
es.server.queuecmd("es_xgive %s env_ar2explosion"% userid)
es.server.queuecmd("es_fire %s env_ar2explosion addoutput \"material %s\""% (userid, MATERIAL2.split('/', 1)[1]))
es.server.queuecmd("es_fire %s env_ar2explosion explode"% userid)
gamethread.delayed(0.1, es.server.queuecmd, ("es_fire %s env_ar2explosion Kill"% userid))
for cloud in clouds:
gamethread.delayed(0.1, es.server.queuecmd, ("es_fire %s %s Kill"% (userid, cloud)))
#
def fragcloud3(userid):
clouds = es.createentitylist("env_ar2explosion")
es.server.queuecmd("es_xgive %s env_ar2explosion"% userid)
es.server.queuecmd("es_fire %s env_ar2explosion addoutput \"material %s\""% (userid, MATERIAL3.split('/', 1)[1]))
es.server.queuecmd("es_fire %s env_ar2explosion explode"% userid)
gamethread.delayed(0.1, es.server.queuecmd, ("es_fire %s env_ar2explosion Kill"% userid))
for cloud in clouds:
gamethread.delayed(0.1, es.server.queuecmd, ("es_fire %s %s Kill"% (userid, cloud)))
#
#
def fragcloud4(userid):
clouds = es.createentitylist("env_ar2explosion")
es.server.queuecmd("es_xgive %s env_ar2explosion"% userid)
es.server.queuecmd("es_fire %s env_ar2explosion addoutput \"material %s\""% (userid, MATERIAL4.split('/', 1)[1]))
es.server.queuecmd("es_fire %s env_ar2explosion explode"% userid)
gamethread.delayed(0.1, es.server.queuecmd, ("es_fire %s env_ar2explosion Kill"% userid))
for cloud in clouds:
gamethread.delayed(0.1, es.server.queuecmd, ("es_fire %s %s Kill"% (userid, cloud)))
#
def player_spawn(ev):
for index in weaponlib.getIndexList("env_ar2explosion"):
if es.getindexprop(index, 'CBaseEntity.m_hOwnerEntity') == -1:
es.server.queuecmd('es_xremove %s' % index)
#
def unload():
es.msg('unloaded')
#
User avatar
daren adler
Senior Member
Posts: 328
Joined: Sat May 18, 2019 7:42 pm

Re: Little fix please

Postby daren adler » Thu Feb 24, 2022 9:26 pm

Yes works without error now, THANK YOU :cool: :cool:
User avatar
Painkiller
Senior Member
Posts: 725
Joined: Sun Mar 01, 2015 8:09 am
Location: Germany
Contact:

Re: Little fix please

Postby Painkiller » Fri Feb 25, 2022 7:20 am

You could also use that to achieve the desired effect.
For explosive weapons, simply change the name of the weapon.

Syntax: Select all

MATERIAL = 'materials/particle/smokeball3.vmt'

import es
import usermsg
import gamethread
import weaponlib

def player_death(ev):
weapon = ev["weapon"]
attacker = ev["attacker"]
userid = ev["userid"]
if weapon == "grenade_frag":
usermsg.shake(attacker, 20.5, 7)
usermsg.fade(attacker, 1, 0.15, 0, 255, 11, 11, 160)
fragcloud(userid)

def fragcloud(userid):
clouds = es.createentitylist("env_ar2explosion")
es.server.queuecmd("es_xgive %s env_ar2explosion"% userid)
es.server.queuecmd("es_fire %s env_ar2explosion addoutput \"material %s\""% (userid, MATERIAL.split('/', 1)[1]))
es.server.queuecmd("es_fire %s env_ar2explosion explode"% userid)
gamethread.delayed(8, es.server.queuecmd, ("es_fire %s env_ar2explosion Kill"% userid))
for cloud in clouds:
gamethread.delayed(10, es.server.queuecmd, ("es_fire %s %s Kill"% (userid, cloud)))


def player_spawn(ev):
for index in weaponlib.getIndexList("env_ar2explosion"):
if es.getindexprop(index, 'CBaseEntity.m_hOwnerEntity') == -1:
es.server.queuecmd('es_xremove %s' % index)


def load():
addDownloadables()

def es_map_start(ev):
addDownloadables()

def addDownloadables():
es.stringtable('downloadables', MATERIAL)
es.stringtable('downloadables', MATERIAL[:-3] + 'vtf')


Edit: It works under Linux, until today.
178.63.54.240:28050
Last edited by Painkiller on Sat Feb 26, 2022 4:26 pm, edited 1 time in total.

Return to “Plugin Requests”

Who is online

Users browsing this forum: No registered users and 26 guests