############################# #####- EDIT BELOW HERE -##### ## How long the tracers will stay (in seconds) | DEFAULT = 0.7 ## at_duration = 1 ## Set to one to make team coloured tracers, set to 0 for user-defined | DEFAULT = 0 [not team colours] ## at_team_colours = 0 ###- BUT NOT BELOW HERE! -### ############################# import es,effectlib,popuplib,os.path,cPickle,gamethread info = es.AddonInfo() info.name = "awesomeTracer" info.version = "2.00" info.author = "Fugi91 (Based on DeathX9)" info.basename = "atracer" info.url = "http://" info.description = "Bullet tracer addon in team colours or user selected colours" es.ServerVar('atracer_ver','2.00','awesomeTracer Version').makepublic() tdata = {} def lcselect(userid,choice,popupname): global tdata steamid = es.createplayerlist(userid)[int(userid)]["address"] if choice == 'Gruen': tdata[steamid]['laser_blue'] = 0 tdata[steamid]['laser_red'] = 0 tdata[steamid]['laser_green'] = 255 es.tell(userid,'#multi','#green[#lightgreenaTracer#green] Deine Schussspur ist jetzt#lightgreen',choice) elif choice == 'Blau': tdata[steamid]['laser_blue'] = 255 tdata[steamid]['laser_red'] = 0 tdata[steamid]['laser_green'] = 0 es.tell(userid,'#multi','#green[#lightgreenaTracer#green] Deine Schussspur ist jetzt#lightgreen',choice) elif choice == 'Rot': tdata[steamid]['laser_blue'] = 0 tdata[steamid]['laser_red'] = 255 tdata[steamid]['laser_green'] = 0 es.tell(userid,'#multi','#green[#lightgreenaTracer#green] Deine Schussspur ist jetzt#lightgreen',choice) elif choice == 'Lila': tdata[steamid]['laser_blue'] = 128 tdata[steamid]['laser_red'] = 128 tdata[steamid]['laser_green'] = 0 es.tell(userid,'#multi','#green[#lightgreenaTracer#green] Deine Schussspur ist jetzt#lightgreen',choice) elif choice == 'Gelb': tdata[steamid]['laser_blue'] = 0 tdata[steamid]['laser_red'] = 255 tdata[steamid]['laser_green'] = 255 es.tell(userid,'#multi','#green[#lightgreenaTracer#green] Deine Schussspur ist jetzt#lightgreen',choice) elif choice == 'Orange': tdata[steamid]['laser_blue'] = 0 tdata[steamid]['laser_red'] = 255 tdata[steamid]['laser_green'] = 165 es.tell(userid,'#multi','#green[#lightgreenaTracer#green] Deine Schussspur ist jetzt#lightgreen',choice) elif choice == 'Weiss': tdata[steamid]['laser_blue'] = 255 tdata[steamid]['laser_red'] = 255 tdata[steamid]['laser_green'] = 255 es.tell(userid,'#multi','#green[#lightgreenaTracer#green] Deine Schussspur ist jetzt#lightgreen',choice) elif choice == 'Pink': tdata[steamid]['laser_blue'] = 128 tdata[steamid]['laser_red'] = 200 tdata[steamid]['laser_green'] = 55 es.tell(userid,'#multi','#green[#lightgreenaTracer#green] Deine Schussspur ist jetzt#lightgreen',choice) elif choice == 'Hellblau': tdata[steamid]['laser_blue'] = 255 tdata[steamid]['laser_red'] = 0 tdata[steamid]['laser_green'] = 200 es.tell(userid,'#multi','#green[#lightgreenaTracer#green] Deine Schussspur ist jetzt#lightgreen',choice) def load(): global tdata es.regsaycmd('!tracer','atracer/showmenu') es.regsaycmd('!laser','atracer/showmenu') global lcmenu lcmenu = popuplib.easymenu('lasercolour_menu',None,lcselect) lcmenu.settitle('Waehle Schussspur Farbe aus:') lcmenu.setdescription('-aTracer v2.00-') lcmenu.addoption('Rot','Rot [Standard]') lcmenu.addoption('Gruen','Gruen') lcmenu.addoption('Blau','Blau') lcmenu.addoption('Lila','Lila') lcmenu.addoption('Gelb','Gelb') lcmenu.addoption('Orange','Orange') lcmenu.addoption('Weiss','Weiss') lcmenu.addoption('Pink','Pink') lcmenu.addoption('Hellblau','Hellblau') global stmenu stmenu = popuplib.create('playerjoin_menu') stmenu.addline('--awesomeTracer--') stmenu.addline('---------------------') stmenu.addline(' ') stmenu.addline('awesomeTracer creates bullet tracers') stmenu.addline('(or lasers) where you shoot. To') stmenu.addline('pick what colour you want your tracer') stmenu.addline('to be, type !tracer or !laser in chat.') stmenu.addline(' ') stmenu.addline(' ') stmenu.addline(' ') stmenu.addline('0. Schliessen') str_path = es.getAddonPath('atracer') + '/tracerdata.db' if os.path.isfile(str_path): file_users = open(str_path) tdata = cPickle.load(file_users) file_users.close() for user in es.getUseridList(): xsteam = es.createplayerlist(user)[int(user)]["address"] if not tdata.has_key(xsteam): tdata[xsteam] = {} tdata[xsteam]['laser_blue'] = 0 tdata[xsteam]['laser_red'] = 255 tdata[xsteam]['laser_green'] = 0 es.doblock('corelib/noisy_on') es.dbgmsg(0,'[awesomeTracer] Loaded!') def showmenu(): userid = es.getcmduserid() if at_team_colours != 1: lcmenu.send(userid) else: es.tell(userid,'#multi','#greenDu kannst nicht deine Schussspur aendern wenn #lightgreen team-coloured tracers#green aktiviert ist.') def dump_data(): global tdata str_path = open(es.getAddonPath('atracer') + '/tracerdata.db', 'w') cPickle.dump(tdata, str_path) str_path.close() def unload(): es.doblock('corelib/noisy_off') dump_data() lcmenu.delete() stmenu.delete() es.unregsaycmd('!tracer') es.unregsaycmd('!laser') es.dbgmsg(0,'[awesomeTracer] Unloaded!') def round_end(ev): dump_data() def player_activate(ev): global tdata userid = ev["userid"] ip = es.createplayerlist(userid)[int(userid)]["address"] if not tdata.has_key(ip): tdata[ip] = {} tdata[ip]['laser_blue'] = 0 tdata[ip]['laser_red'] = 255 tdata[ip]['laser_green'] = 0 if at_team_colours != 1: stmenu.send(userid) if at_team_colours != 1: gamethread.delayed(5,es.tell,(userid,'#multi','#default----#greenUm deine #lightgreenSchussspurfarbe #greenzu aendern, tippe#lightgreen !tracer#green oder#lightgreen !laser#green im Chat ein#default----')) def bullet_impact(ev): at_px,at_py,at_pz = es.getplayerlocation(ev['userid']) if at_team_colours == 1: if ev['es_userteam'] == '2': at_red = 255 at_green = 0 at_blue = 0 elif ev['es_userteam'] == '3': at_red = 0 at_green = 0 at_blue = 255 else: userid = ev["userid"] ip = es.createplayerlist(userid)[int(userid)]["address"] at_red = tdata[ip]['laser_red'] at_green = tdata[ip]['laser_green'] at_blue = tdata[ip]['laser_blue'] at_crouched = es.getplayerprop(ev['userid'],'CBasePlayer.localdata.m_Local.m_bDucked') if at_crouched == 1: at_pz += 44 else: at_pz += 62 at_vector = '%s,%s,%s'%(at_px,at_py,at_pz) at_vector2 = "%s,%s,%s"%(ev['x'],ev['y'],ev['z']) effectlib.drawLine(at_vector,at_vector2,'materials/sprites/laser.vmt','materials/sprites/laser.vmt',at_duration,'3','3',at_red,at_green,at_blue,'255','10','0','0','0','0')