AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Scripting Help (https://forums.alliedmods.net/forumdisplay.php?f=11)
-   -   Defining, otherwise random. (https://forums.alliedmods.net/showthread.php?t=16884)

DahVid 08-21-2005 21:58

Defining, otherwise random.
 
I'm making a tracer plugin. I want to make it so it's well...Random unless defined. Like a command using read_argv for all of my things defined as random_num, but if that command hasn't been used then keep doing it as random_num.. I do not understand how!

Code:
#include <amxmodx> #include <amxmisc> #include <engine> #define MAX_PLAYERS 32 new sprite new g_nCurWeapon[MAX_PLAYERS][2] public plugin_init() {     register_plugin("Tracer","0.1","DahVid")     register_event("CurWeapon","set_tracer","b","1=1")     register_cvar("tr_square","1",ADMIN_BAN)     register_cvar("tr_tracer","1",ADMIN_BAN)     register_cvar("tr_on","1",ADMIN_BAN) } public plugin_precache() {     sprite=precache_model("sprites/laserbeam.spr") } public set_tracer(id) {     if(get_cvar_num("tr_on")) {                 new weaponID = read_data(2)         new wAmmo = read_data(3)                 new red=random_num(0,255)         new green=random_num(0,255)         new blue=random_num(0,255)         new bright=random_num(100,255)         new life=random_num(3,20)         new width=random_num(4,30)         new noise=random_num(0,2)                 new startorigin[3]         new endorigin[3]                 get_user_origin(id,startorigin,1)         get_user_origin(id,endorigin,3)                         if( g_nCurWeapon[id-1][0] != weaponID ) // User Changed Weapons..         {             g_nCurWeapon[id-1][0] = weaponID             g_nCurWeapon[id-1][1] = wAmmo             return PLUGIN_CONTINUE         }         if( g_nCurWeapon[id-1][1] < wAmmo ) // User Reloaded..         {             g_nCurWeapon[id-1][1] = wAmmo             return PLUGIN_CONTINUE         }         if( g_nCurWeapon[id-1][1] == wAmmo ) // User did something else, but didn't shoot..         return PLUGIN_CONTINUE                 g_nCurWeapon[id-1][1] = wAmmo         g_nCurWeapon[id-1][0] = weaponID                         if(get_cvar_num("tr_tracer")) {             message_begin(MSG_BROADCAST,SVC_TEMPENTITY) //tracer             write_byte(0) //TE_BEAMPOINTS             write_coord(startorigin[0]) //startorigin             write_coord(startorigin[1])             write_coord(startorigin[2])             write_coord(endorigin[0]) //endorigin             write_coord(endorigin[1])             write_coord(endorigin[2])             write_short(sprite) //sprite             write_byte(0) //starting frame             write_byte(10) //frame rate             write_byte(life) //life             write_byte(width) //line width             write_byte(noise) //noise             write_byte(red) //red             write_byte(green) //green             write_byte(blue) //blue             write_byte(bright) //brightness             write_byte(1) //scroll speed             message_end()         }         if(get_cvar_num("tr_square")) {             message_begin(MSG_BROADCAST,SVC_TEMPENTITY) //white squares             write_byte(15)             write_coord(startorigin[0]) //startorigin             write_coord(startorigin[1])             write_coord(startorigin[2])             write_coord(endorigin[0]) //endorigin             write_coord(endorigin[1])             write_coord(endorigin[2])             write_short(sprite) //sprite             write_byte(70) //count             write_byte(life) //life             write_byte(1) //scale             write_byte(0) //velocity along vector 10's             write_byte(0) //randomness of velocity in 10's             message_end()                         return PLUGIN_CONTINUE         }     }     return PLUGIN_CONTINUE }

v3x 08-21-2005 22:58

Code:
#define RANDOM 1 #if defined RANDOM     // ... #else     // ... #endif
I think that's what you're talking about?

DahVid 08-21-2005 23:02

I'm trying to do something like this. It won't work because I don't think CurWeapon is going to fucking set these arguments every time..

Code:
#include <amxmodx> #include <amxmisc> #include <engine> #define MAX_PLAYERS 32 new sprite new g_nCurWeapon[MAX_PLAYERS][2] public plugin_init() {     register_plugin("Tracer","0.1","DahVid")     register_event("CurWeapon","set_tracer_shit","b","1=1")     register_event("CurWeapon","set_tracer","b","1=1")     register_clcmd("tr_setshit","set_tracer_shit",ADMIN_BAN)     register_cvar("tr_square","1",ADMIN_BAN)     register_cvar("tr_tracer","1",ADMIN_BAN)     register_cvar("tr_on","1",ADMIN_BAN) } public plugin_precache() {     sprite=precache_model("sprites/laserbeam.spr") } public set_tracer_shit(id) {     new red     new green     new blue     new bright     new life     new width     new noise     if(read_argc() == 1) {         red=random_num(0,255)         green=random_num(0,255)         blue=random_num(0,255)         bright=random_num(100,255)         life=random_num(3,20)         width=random_num(4,30)         noise=random_num(0,2)         }else{         new Sred[4]         new Sgreen[4]         new Sblue[4]         new Sbright[4]         new Slife[4]         new Swidth[4]         new Snoise[4]                 read_argv(1,Sred,4)         read_argv(2,Sgreen,4)         read_argv(3,Sblue,4)         read_argv(4,Sbright,4)         read_argv(5,Slife,4)         read_argv(6,Swidth,4)         read_argv(7,Snoise,4)                 red=str_to_num(Sred)         green=str_to_num(Sgreen)         blue=str_to_num(Sblue)         bright=str_to_num(Sbright)         life=str_to_num(Slife)         width=str_to_num(Swidth)         noise=str_to_num(Snoise)     } } public set_tracer(id,red,green,blue,bright,life,width,noise) {     if(get_cvar_num("tr_on")) {                 new weaponID = read_data(2)         new wAmmo = read_data(3)                 new startorigin[3]         new endorigin[3]                 get_user_origin(id,startorigin,1)         get_user_origin(id,endorigin,3)                         if( g_nCurWeapon[id-1][0] != weaponID ) // User Changed Weapons..         {             g_nCurWeapon[id-1][0] = weaponID             g_nCurWeapon[id-1][1] = wAmmo             return PLUGIN_CONTINUE         }         if( g_nCurWeapon[id-1][1] < wAmmo ) // User Reloaded..         {             g_nCurWeapon[id-1][1] = wAmmo             return PLUGIN_CONTINUE         }         if( g_nCurWeapon[id-1][1] == wAmmo ) // User did something else, but didn't shoot..         return PLUGIN_CONTINUE                 g_nCurWeapon[id-1][1] = wAmmo         g_nCurWeapon[id-1][0] = weaponID                         if(get_cvar_num("tr_tracer")) {             message_begin(MSG_BROADCAST,SVC_TEMPENTITY) //tracer             write_byte(0) //TE_BEAMPOINTS             write_coord(startorigin[0]) //startorigin             write_coord(startorigin[1])             write_coord(startorigin[2])             write_coord(endorigin[0]) //endorigin             write_coord(endorigin[1])             write_coord(endorigin[2])             write_short(sprite) //sprite             write_byte(0) //starting frame             write_byte(10) //frame rate             write_byte(life) //life             write_byte(width) //line width             write_byte(noise) //noise             write_byte(red) //red             write_byte(green) //green             write_byte(blue) //blue             write_byte(bright) //brightness             write_byte(1) //scroll speed             message_end()         }         if(get_cvar_num("tr_square")) {             message_begin(MSG_BROADCAST,SVC_TEMPENTITY) //white squares             write_byte(15)             write_coord(startorigin[0]) //startorigin             write_coord(startorigin[1])             write_coord(startorigin[2])             write_coord(endorigin[0]) //endorigin             write_coord(endorigin[1])             write_coord(endorigin[2])             write_short(sprite) //sprite             write_byte(70) //count             write_byte(life) //life             write_byte(1) //scale             write_byte(0) //velocity along vector 10's             write_byte(0) //randomness of velocity in 10's             message_end()                         return PLUGIN_CONTINUE         }     }     return PLUGIN_CONTINUE }

v3x 08-21-2005 23:09

Why not just get rid of that second CurWeapon event, then call set_tracer from the original CurWeapon event?

DahVid 08-21-2005 23:21

LAWL I AM DUMB!!
I'll give it a go, bunnyb00

DahVid 08-21-2005 23:24

No work

Code:
#include <amxmodx> #include <amxmisc> #include <engine> #define MAX_PLAYERS 32 new sprite new g_nCurWeapon[MAX_PLAYERS][2] public plugin_init() {     register_plugin("Tracer","0.1","DahVid")     register_event("CurWeapon","set_tracer_shit","b","1=1")     register_clcmd("tr_setshit","set_tracer_shit",ADMIN_BAN)     register_cvar("tr_square","1",ADMIN_BAN)     register_cvar("tr_tracer","1",ADMIN_BAN)     register_cvar("tr_on","1",ADMIN_BAN) } public plugin_precache() {     sprite=precache_model("sprites/laserbeam.spr") } public set_tracer_shit(id) {     new red     new green     new blue     new bright     new life     new width     new noise     if(read_argc() == 0) {         red=random_num(0,255)         green=random_num(0,255)         blue=random_num(0,255)         bright=random_num(100,255)         life=random_num(3,20)         width=random_num(4,30)         noise=random_num(0,2)         }else{         new Sred[4]         new Sgreen[4]         new Sblue[4]         new Sbright[4]         new Slife[4]         new Swidth[4]         new Snoise[4]                 read_argv(1,Sred,3)         read_argv(2,Sgreen,3)         read_argv(3,Sblue,3)         read_argv(4,Sbright,3)         read_argv(5,Slife,3)         read_argv(6,Swidth,3)         read_argv(7,Snoise,3)                 red=str_to_num(Sred)         green=str_to_num(Sgreen)         blue=str_to_num(Sblue)         bright=str_to_num(Sbright)         life=str_to_num(Slife)         width=str_to_num(Swidth)         noise=str_to_num(Snoise)                 set_tracer(id,red,green,blue,bright,life,width,noise)     } } public set_tracer(id,red,green,blue,bright,life,width,noise) {     if(get_cvar_num("tr_on")) {                 new weaponID = read_data(2)         new wAmmo = read_data(3)                 new startorigin[3]         new endorigin[3]                 get_user_origin(id,startorigin,1)         get_user_origin(id,endorigin,3)                         if( g_nCurWeapon[id-1][0] != weaponID ) // User Changed Weapons..         {             g_nCurWeapon[id-1][0] = weaponID             g_nCurWeapon[id-1][1] = wAmmo             return PLUGIN_CONTINUE         }         if( g_nCurWeapon[id-1][1] < wAmmo ) // User Reloaded..         {             g_nCurWeapon[id-1][1] = wAmmo             return PLUGIN_CONTINUE         }         if( g_nCurWeapon[id-1][1] == wAmmo ) // User did something else, but didn't shoot..         return PLUGIN_CONTINUE                 g_nCurWeapon[id-1][1] = wAmmo         g_nCurWeapon[id-1][0] = weaponID                         if(get_cvar_num("tr_tracer")) {             message_begin(MSG_BROADCAST,SVC_TEMPENTITY) //tracer             write_byte(0) //TE_BEAMPOINTS             write_coord(startorigin[0]) //startorigin             write_coord(startorigin[1])             write_coord(startorigin[2])             write_coord(endorigin[0]) //endorigin             write_coord(endorigin[1])             write_coord(endorigin[2])             write_short(sprite) //sprite             write_byte(0) //starting frame             write_byte(10) //frame rate             write_byte(life) //life             write_byte(width) //line width             write_byte(noise) //noise             write_byte(red) //red             write_byte(green) //green             write_byte(blue) //blue             write_byte(bright) //brightness             write_byte(1) //scroll speed             message_end()         }         if(get_cvar_num("tr_square")) {             message_begin(MSG_BROADCAST,SVC_TEMPENTITY) //white squares             write_byte(15)             write_coord(startorigin[0]) //startorigin             write_coord(startorigin[1])             write_coord(startorigin[2])             write_coord(endorigin[0]) //endorigin             write_coord(endorigin[1])             write_coord(endorigin[2])             write_short(sprite) //sprite             write_byte(70) //count             write_byte(life) //life             write_byte(1) //scale             write_byte(0) //velocity along vector 10's             write_byte(0) //randomness of velocity in 10's             message_end()                         return PLUGIN_CONTINUE         }         return PLUGIN_CONTINUE     }     return PLUGIN_CONTINUE }

DahVid 08-22-2005 22:02

Damn, someone's got to have an applicable solution here. I've got a fat stack of homework to do... Hopefully I can independently find something myself. Although I doubt that. I still don't understand why that code didn't work right.

Or atleast why I didn't get random tracers..

EDIT: This works for random, but if I use tr_setshit it's _still_ random.. Meaning read_argc isn't returning 8.. 7 arguments should return 8, right?

Code:
#include <amxmodx> #include <amxmisc> #include <engine> #define MAX_PLAYERS 32 new sprite new g_nCurWeapon[MAX_PLAYERS][2] public plugin_init() {     register_plugin("Tracer","0.1","DahVid")     register_event("CurWeapon","set_tracer_shit","b","1=1")     register_clcmd("tr_setshit","set_tracer_shit",ADMIN_BAN)     register_cvar("tr_square","1",ADMIN_BAN)     register_cvar("tr_tracer","1",ADMIN_BAN)     register_cvar("tr_on","1",ADMIN_BAN) } public plugin_precache() {     sprite=precache_model("sprites/laserbeam.spr") } public set_tracer_shit(id) {         new red     new green     new blue     new bright     new life     new width     new noise         if(read_argc() != 8) {                 red=random_num(0,255)         green=random_num(0,255)         blue=random_num(0,255)         bright=random_num(100,255)         life=random_num(3,20)         width=random_num(4,30)         noise=random_num(0,2)         set_tracer(id,red,green,blue,bright,life,width,noise)     }     if(read_argc() == 8) {         new Sred[4]         new Sgreen[4]         new Sblue[4]         new Sbright[4]         new Slife[4]         new Swidth[4]         new Snoise[4]                 read_argv(1,Sred,3)         read_argv(2,Sgreen,3)         read_argv(3,Sblue,3)         read_argv(4,Sbright,3)         read_argv(5,Slife,3)         read_argv(6,Swidth,3)         read_argv(7,Snoise,3)                 red=str_to_num(Sred)         green=str_to_num(Sgreen)         blue=str_to_num(Sblue)         bright=str_to_num(Sbright)         life=str_to_num(Slife)         width=str_to_num(Swidth)         noise=str_to_num(Snoise)                 set_tracer(id,red,green,blue,bright,life,width,noise)     } } public set_tracer(id,red,green,blue,bright,life,width,noise) {     if(get_cvar_num("tr_on")) {                 new weaponID = read_data(2)         new wAmmo = read_data(3)                 new startorigin[3]         new endorigin[3]                 get_user_origin(id,startorigin,1)         get_user_origin(id,endorigin,3)                         if( g_nCurWeapon[id-1][0] != weaponID ) // User Changed Weapons..         {             g_nCurWeapon[id-1][0] = weaponID             g_nCurWeapon[id-1][1] = wAmmo             return PLUGIN_CONTINUE         }         if( g_nCurWeapon[id-1][1] < wAmmo ) // User Reloaded..         {             g_nCurWeapon[id-1][1] = wAmmo             return PLUGIN_CONTINUE         }         if( g_nCurWeapon[id-1][1] == wAmmo ) // User did something else, but didn't shoot..         return PLUGIN_CONTINUE                 g_nCurWeapon[id-1][1] = wAmmo         g_nCurWeapon[id-1][0] = weaponID                         if(get_cvar_num("tr_tracer")) {             message_begin(MSG_BROADCAST,SVC_TEMPENTITY) //tracer             write_byte(0) //TE_BEAMPOINTS             write_coord(startorigin[0]) //startorigin             write_coord(startorigin[1])             write_coord(startorigin[2])             write_coord(endorigin[0]) //endorigin             write_coord(endorigin[1])             write_coord(endorigin[2])             write_short(sprite) //sprite             write_byte(0) //starting frame             write_byte(10) //frame rate             write_byte(life) //life             write_byte(width) //line width             write_byte(noise) //noise             write_byte(red) //red             write_byte(green) //green             write_byte(blue) //blue             write_byte(bright) //brightness             write_byte(1) //scroll speed             message_end()         }         if(get_cvar_num("tr_square")) {             message_begin(MSG_BROADCAST,SVC_TEMPENTITY) //white squares             write_byte(15)             write_coord(startorigin[0]) //startorigin             write_coord(startorigin[1])             write_coord(startorigin[2])             write_coord(endorigin[0]) //endorigin             write_coord(endorigin[1])             write_coord(endorigin[2])             write_short(sprite) //sprite             write_byte(70) //count             write_byte(life) //life             write_byte(1) //scale             write_byte(0) //velocity along vector 10's             write_byte(0) //randomness of velocity in 10's             message_end()                         return PLUGIN_CONTINUE         }         return PLUGIN_CONTINUE     }     return PLUGIN_CONTINUE }

v3x 08-22-2005 22:44

You don't have set_tracer hooked to the CurWeapon event so these are useless:
Code:
new weaponID = read_data(2) new wAmmo = read_data(3)
Instead, do this:
Code:
new iClip,iAmmo,iWeaponID = get_user_weapon(id,iClip,iAmmo)

DahVid 08-22-2005 23:24

Working on it -- With a simple debug (Thanks to v3x, reminding me i can do that) I've figured out it was reading the args of CurWeapon. Duh :(

DahVid 08-22-2005 23:34

I'm done with this, if anyone can still fix it go ahead.. I've finished the plugin without that.. Only with some different colors.


All times are GMT -4. The time now is 14:32.

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