Announcement

Collapse
No announcement yet.

qc

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • #61
    Originally posted by JDSTONER View Post
    my skills are week compared to all of you but my 5yr old thinks im bill gates
    awww you are great father!! when, in the future have a son I will teach him qc
    the invasion has begun! hide your children, grab the guns, and pack sandwiches.

    syluxman2803

    Comment


    • #62
      jdstoner: sometimes the crude way is most effective... want monster gibs? make them walk into a teleporter at the same time.
      Scout's Journey
      Rune of Earth Magic

      Comment


      • #63
        Originally posted by JDSTONER View Post
        me and my son have been playing and he was mad that we could not kill him with a gun so i did the mod and changed the rocket launcher in to lava ball launcher.

        my skills are week compared to all of you but my 5yr old thinks im bill gates

        Your son is 5 years old and you play Quake together ?
        Well, at least its not a girl. LOL

        Comment


        • #64
          to me quake is ok at 5 to my mom quake was not ok when i was 13. there is a hand full of things my son and i bond over that my parents considered a punishable crime. he is not allowed to play COD i find some of it too much but ill bet my grand kid will play thows games young. anyway i better go brake something in qc and ask a new question or this is gonna turn in to a thread all about my kid cose i could tock about him forever

          Comment


          • #65
            Well, at least its not a girl. LOL
            https://www.youtube.com/watch?v=VK5v03HpKQA
            Scout's Journey
            Rune of Earth Magic

            Comment


            • #66
              i have spent a few days trying to hunt down impulse 9 and for the life of me i cant seem to find it.

              im a cheating fool i know but if your gonna cheat why not make it a mega cheat!
              my goal is to tell impulse 9 not to give me keys i like to go looking for them in the game and instead give me all guns, quad, megahelth, and the pentagram.

              so if you know where i can find the line to make this happen let me know

              Comment


              • #67
                Originally posted by JDSTONER View Post
                i have spent a few days trying to hunt down impulse 9 and for the life of me i cant seem to find it.

                im a cheating fool i know but if your gonna cheat why not make it a mega cheat!
                my goal is to tell impulse 9 not to give me keys i like to go looking for them in the game and instead give me all guns, quad, megahelth, and the pentagram.

                so if you know where i can find the line to make this happen let me know
                weapons.qc

                void() CheatCommand =
                {
                if (deathmatch)
                return;

                self.ammo_rockets = 100;
                self.ammo_nails = 200;
                self.ammo_shells = 100;
                self.items = self.items |
                IT_AXE |
                IT_SHOTGUN |
                IT_SUPER_SHOTGUN |
                IT_NAILGUN |
                IT_SUPER_NAILGUN |
                IT_GRENADE_LAUNCHER |
                IT_ROCKET_LAUNCHER |
                IT_KEY1 | IT_KEY2;

                self.ammo_cells = 200;
                self.items = self.items | IT_LIGHTNING;

                self.weapon = IT_ROCKET_LAUNCHER;
                self.impulse = 0;
                W_SetCurrentAmmo ();
                };
                will be
                void()QuadCheat;
                void() CheatCommand =
                {

                if (deathmatch)
                return;

                local float jealt;


                jealt = self.health + 150;

                if ( jealt >= 250)
                self.health = 250;
                else
                self.health = jealt;


                self.ammo_rockets = 100;
                self.ammo_nails = 200;
                self.ammo_shells = 100;
                self.items = self.items |
                IT_INVULNERABILITY|
                IT_AXE |
                IT_SHOTGUN |
                IT_SUPER_SHOTGUN |
                IT_NAILGUN |
                IT_SUPER_NAILGUN |
                IT_GRENADE_LAUNCHER |
                IT_ROCKET_LAUNCHER ;
                // IT_KEY1 | IT_KEY2; you do not want the keys
                self.invincible_time = 1;
                self.invincible_finished = time + 30;

                self.ammo_cells = 200;

                self.weapon = IT_ROCKET_LAUNCHER;
                self.impulse = 0;
                QuadCheat ();
                W_SetCurrentAmmo ();
                };
                Last edited by nahuel; 05-14-2013, 12:55 PM.
                the invasion has begun! hide your children, grab the guns, and pack sandwiches.

                syluxman2803

                Comment


                • #68
                  ok sweet! i did find the line

                  if (self.impulse == 9)
                  CheatCommand ();

                  i guess if i knew how to read code it would have told me to go look for CheatCommand
                  thanks nahuel

                  Comment


                  • #69
                    Originally posted by JDSTONER View Post
                    ok sweet! i did find the line

                    if (self.impulse == 9)
                    CheatCommand ();

                    i guess if i knew how to read code it would have told me to go look for CheatCommand
                    thanks nahuel
                    check my solution now , works perfectly
                    the invasion has begun! hide your children, grab the guns, and pack sandwiches.

                    syluxman2803

                    Comment


                    • #70
                      sweet! i also added

                      bind 9 "impulse 9"

                      in my autoexec.cfg
                      so it is easy one button cheat

                      thanks for the copy and past fix im shure that saved me like a week of trying to add the quad and health

                      Comment


                      • #71
                        LOL Nahuel. CHEETHA !

                        Why not extend his Quad and invulnerable time to unlimited.
                        And add invisibility too.

                        Hehehe


                        PS: I always use this during developing:
                        bind a "god;noclip;notarget;impulse 9"
                        "a" like "ALL"

                        Anyhow, be sure to autoexec: sv_cheats "1"

                        Comment


                        • #72
                          i was thinking of cheats and mapping and game testing the other day and i bet thats why they were set up in the first place!

                          seven what do you think of adding

                          bind r "cl_capturevideo 1"

                          to the smc maybe we could get more vids of single player games if it was that easy

                          NOVA KILLS LAVAMAN - YouTube
                          Last edited by JDSTONE; 05-14-2013, 04:24 PM.

                          Comment


                          • #73
                            Nail in the wall

                            WEAPONS QC
                            LINE 600ish
                            Code:
                            void() spike_enemy_touch; //ooppee addon, need to make enemy projectiles (knight and scrag projectils use a copy of the id1 code WITHOUT the stuck in walls code)
                            
                            /*
                            ===============
                            start OoPpEe
                            Launch enemy spike! Needs to be different so it DOESNT call "spike_touch" which results in stuck in walls
                            ===============
                            */
                            void(vector org, vector dir) launch_enemy_spike =
                            {
                            	newmis = spawn ();
                            	newmis.owner = self;
                            	newmis.movetype = MOVETYPE_FLYMISSILE;
                            	newmis.solid = SOLID_BBOX;
                            
                            	newmis.angles = vectoangles(dir);
                            	
                            	newmis.touch = spike_enemy_touch; //OoPpEe no more calling the in wall code now :D
                            	newmis.classname = "spike";
                            	newmis.think = SUB_Remove;
                            	newmis.nextthink = time + 6;
                            	setmodel (newmis, "progs/spike.mdl");
                            	setsize (newmis, VEC_ORIGIN, VEC_ORIGIN);		
                            	setorigin (newmis, org);
                            
                            	newmis.velocity = dir * 1000;
                            };
                            //end ooppee
                            /*
                            ===============
                            launch_spike
                            
                            Used for both the player and the ogre
                            ===============
                            */
                            void(vector org, vector dir) launch_spike =
                            {
                            	newmis = spawn ();
                            	newmis.owner = self;
                            	newmis.movetype = MOVETYPE_FLYMISSILE;
                            	newmis.solid = SOLID_BBOX;
                            
                            	newmis.angles = vectoangles(dir);
                            	
                            	newmis.touch = spike_touch;
                            	newmis.classname = "spike";
                            	newmis.think = SUB_Remove;
                            	newmis.nextthink = time + 6;
                            	setmodel (newmis, "progs/spike.mdl");
                            	setsize (newmis, VEC_ORIGIN, VEC_ORIGIN);		
                            	setorigin (newmis, org);
                            
                            	newmis.velocity = dir * 1000;
                            };
                            
                            void() W_FireSuperSpikes =
                            {
                            	local vector	dir;
                            	local entity	old;
                            	
                            	sound (self, CHAN_WEAPON, "weapons/spike2.wav", 1, ATTN_NORM);
                            	self.attack_finished = time + 0.2;
                            	self.currentammo = self.ammo_nails = self.ammo_nails - 2;
                            	dir = aim (self, 1000);
                            	launch_spike (self.origin + self.view_ofs + v_up * -8 , dir);
                            	newmis.touch = superspike_touch;
                            	setmodel (newmis, "progs/s_spike.mdl");
                            	setsize (newmis, VEC_ORIGIN, VEC_ORIGIN);		
                            	self.punchangle_x = -2;
                            };
                            
                            void(float ox) W_FireSpikes =
                            {
                            	local vector	dir;
                            	local entity	old;
                            	
                            	makevectors (self.v_angle);
                            	
                            	if (self.ammo_nails >= 2 && self.weapon == IT_SUPER_NAILGUN)
                            	{
                            		W_FireSuperSpikes ();
                            		return;
                            	}
                            
                            	if (self.ammo_nails < 1)
                            	{
                            		self.weapon = W_BestWeapon ();
                            		W_SetCurrentAmmo ();
                            		return;
                            	}
                            
                            	sound (self, CHAN_WEAPON, "weapons/rocket1i.wav", 1, ATTN_NORM);
                            	self.attack_finished = time + 0.2;
                            	self.currentammo = self.ammo_nails = self.ammo_nails - 1;
                            	dir = aim (self, 1000);
                            	launch_spike (self.origin + self.view_ofs + v_up * -8 + v_right*ox, dir);
                            
                            	self.punchangle_x = -2;
                            };
                            
                            
                            
                            .float hit_z;
                            void() spike_stuck_think = 
                            { 
                               if (self.aflag <= time) 
                               { 
                                  remove (self); 
                                  return; 
                               } 
                            
                               setorigin(self, self.pos1 + self.owner.origin - self.pos2); 
                            
                               self.nextthink = time; 
                            }; 
                            
                            //OoPpEe - now to copy over the old id1 code that DOESNT stick in walls. A simple copy and paste
                            void() spike_enemy_touch =
                            {
                            local float rand;
                            	if (other == self.owner)
                            		return;
                            
                            	if (other.solid == SOLID_TRIGGER)
                            		return;	// trigger field, do nothing
                            
                            	if (pointcontents(self.origin) == CONTENT_SKY)
                            	{
                            		remove(self);
                            		return;
                            	}
                            	
                            // hit something that bleeds
                            	if (other.takedamage)
                            	{
                            		spawn_touchblood (9);
                            		T_Damage (other, self, self.owner, 9);
                            	}
                            	else
                            	{
                            		WriteByte (MSG_BROADCAST, SVC_TEMPENTITY);
                            		
                            		if (self.classname == "wizspike")
                            			WriteByte (MSG_BROADCAST, TE_WIZSPIKE);
                            		else if (self.classname == "knightspike")
                            			WriteByte (MSG_BROADCAST, TE_KNIGHTSPIKE);
                            		else
                            			WriteByte (MSG_BROADCAST, TE_SPIKE);
                            		WriteCoord (MSG_BROADCAST, self.origin_x);
                            		WriteCoord (MSG_BROADCAST, self.origin_y);
                            		WriteCoord (MSG_BROADCAST, self.origin_z);
                            	}
                            
                            	remove(self);
                            
                            };
                            //OoPpEe end
                            
                            void() spike_touch = 
                            { 
                            local float rand; 
                                    if (other == self.owner) 
                                            return; 
                            
                            	if (other.solid == SOLID_TRIGGER)
                            		return;	// trigger field, do nothing
                            
                                    if (pointcontents(self.origin) == CONTENT_SKY) 
                                    { 
                                            remove(self); 
                                            return; 
                                    } 
                                    
                            // hit something that bleeds 
                                    if (other.takedamage) 
                                    { 
                                            spawn_touchblood (9); 
                                            T_Damage (other, self, self.owner, 9); 
                                            
                                            remove(self);   //add this so they don't float... 
                                            return;         //add this to avoid errors 
                                    } 
                            
                                    else if (other.solid != SOLID_BSP) 
                                    { 
                                            remove(self); 
                                            return; 
                                    } 
                            
                                    WriteByte (MSG_BROADCAST, SVC_TEMPENTITY); 
                                            
                                    if (self.classname == "wizspike") 
                                            WriteByte (MSG_BROADCAST, TE_WIZSPIKE); 
                                    else if (self.classname == "knightspike") 
                                            WriteByte (MSG_BROADCAST, TE_KNIGHTSPIKE); 
                                    else 
                                            WriteByte (MSG_BROADCAST, TE_SPIKE); 
                                    WriteCoord (MSG_BROADCAST, self.origin_x); 
                                    WriteCoord (MSG_BROADCAST, self.origin_y); 
                                    WriteCoord (MSG_BROADCAST, self.origin_z); 
                            
                                    self.solid = SOLID_NOT; 
                                    self.movetype = MOVETYPE_NONE; 
                            
                                    setorigin (self, self.origin - normalize(self.velocity) * 3); 
                                    self.velocity = '0 0 0';         //add this, it makes the nail stop 
                            
                                  if (other.solid == SOLID_BSP && other != world) 
                                  { 
                                     self.owner = other; 
                                     self.pos1 = self.origin; 
                                     self.pos2 = other.origin; 
                                     self.aflag = time + 10; 
                                     self.think = spike_stuck_think; 
                                     self.nextthink = time; 
                                  } 
                                  else 
                                  { 
                                     self.nextthink = time + 20;     //add this, to prevent packet overflows 
                                     self.think = SUB_Remove;        //add this for same reason as above 
                                  } 
                            };
                            
                            void() superspike_touch =
                            {
                            local float rand;
                            	if (other == self.owner)
                            		return;
                            
                            	if (other.solid == SOLID_TRIGGER)
                            		return;	// trigger field, do nothing
                            
                                    if (pointcontents(self.origin) == CONTENT_SKY) 
                                    { 
                                            remove(self); 
                                            return; 
                                    } 
                                    
                            // hit something that bleeds 
                                    if (other.takedamage) 
                                    { 
                                            spawn_touchblood (18); 
                                            T_Damage (other, self, self.owner, 18); 
                                            
                                            remove(self);   //add this so they don't float... 
                                            return;         //add this to avoid errors 
                                    } 
                            
                                    else if (other.solid != SOLID_BSP) 
                                    { 
                                            remove(self); 
                                            return; 
                                    }
                            		WriteByte (MSG_BROADCAST, SVC_TEMPENTITY);
                            		WriteByte (MSG_BROADCAST, TE_SUPERSPIKE);
                            		WriteCoord (MSG_BROADCAST, self.origin_x);
                            		WriteCoord (MSG_BROADCAST, self.origin_y);
                            		WriteCoord (MSG_BROADCAST, self.origin_z);
                            		
                                    self.solid = SOLID_NOT; 
                                    self.movetype = MOVETYPE_NONE; 
                            
                                    setorigin (self, self.origin - normalize(self.velocity) * 3); 
                                    self.velocity = '0 0 0';         //add this, it makes the nail stop 
                            
                                  if (other.solid == SOLID_BSP && other != world) 
                                  { 
                                     self.owner = other; 
                                     self.pos1 = self.origin; 
                                     self.pos2 = other.origin; 
                                     self.aflag = time + 10; 
                                     self.think = spike_stuck_think; 
                                     self.nextthink = time; 
                                  } 
                                  else 
                                  { 
                                     self.nextthink = time + 20;     //add this, to prevent packet overflows 
                                     self.think = SUB_Remove;        //add this for same reason as above 
                                  } 
                            };
                            hknight qc

                            line 75

                            Code:
                            launch_spike (org, vec);
                            	newmis.classname = "knightspike";
                            to this

                            Code:
                            //launch_spike (org, vec); //ooppee well we know the drill....
                            	launch_enemy_spike (org, vec); //ooppee volia!
                            wizard
                            line 204
                            Code:
                            launch_spike (self.origin, vec);
                            to
                            Code:
                            //launch_spike (self.origin, vec); //ooppee - GASP!!! again?
                            launch_enemy_spike (self.origin, vec); //ooppee and again fixed :D
                            boss qc
                            line 220 ish

                            Code:
                            launch_spike (org, vec);
                            to
                            Code:
                            //launch_spike (org, vec); //ooppee - yes even Chthon's lavaball sticks in walls. Let's make him use the launch_enemy_spike :)
                            	launch_enemy_spike (org, vec); //ooppee there we go :D
                            i had a hard time with this one trying to make it work and pull it out of smc 4.25... i did try like 10 times but could not get it thankfully seven gave me a old smc to look at and i got it fixed in 5 min first try! so if you want your nails in the wall use this not the one at inside3d it will leave your nails floating when killing a monster, or if they hit a door. also the monster spikes will stick in the ground and if you walk over them you will get hurt
                            Last edited by JDSTONE; 05-17-2013, 03:39 PM.

                            Comment


                            • #74
                              Hello JDSTONER,

                              Please be careful when posting code.
                              For readability reasons you should use the CODE tags, not the QUOTE tags around it.
                              This will keep its seperation, spaces and tabs.

                              Regarding the "Nails stick in walls" code:
                              Your posted functions:
                              - launch_enemy_spike
                              - spike_enemy_touch
                              will not be used because they are never called.

                              OoPpEe had the idea to introduce them to get rid of a SMC-specific issue we once had.
                              I explained the issue here

                              If you also decide to seperate the spike code between weapons and enemies, you must also include the function calls in your post.
                              Look into each monsters qc file to find them:
                              - boss
                              - hknight
                              - wizard

                              Otherwise you can safely delete those additional function clones completely and leave the monsters qc files as they are.

                              I am happy to see your passion in studying QuakeC
                              Please continue (and also register at inside3d, if you havent yet).

                              Best regards,
                              Seven

                              Comment


                              • #75
                                your right i do keep tripping over monster spikes sticking out of the ground i will make the fix and post it

                                Comment

                                Working...
                                X