Jump to content
    1. Welcome to GTAForums!

    1. GTANet.com

    1. GTA Online

      1. Los Santos Drug Wars
      2. Updates
      3. Find Lobbies & Players
      4. Guides & Strategies
      5. Vehicles
      6. Content Creator
      7. Help & Support
    2. Red Dead Online

      1. Blood Money
      2. Frontier Pursuits
      3. Find Lobbies & Outlaws
      4. Help & Support
    3. Crews

    1. Grand Theft Auto Series

      1. Bugs*
      2. St. Andrews Cathedral
    2. GTA VI

    3. GTA V

      1. Guides & Strategies
      2. Help & Support
    4. GTA IV

      1. The Lost and Damned
      2. The Ballad of Gay Tony
      3. Guides & Strategies
      4. Help & Support
    5. GTA San Andreas

      1. Classic GTA SA
      2. Guides & Strategies
      3. Help & Support
    6. GTA Vice City

      1. Classic GTA VC
      2. Guides & Strategies
      3. Help & Support
    7. GTA III

      1. Classic GTA III
      2. Guides & Strategies
      3. Help & Support
    8. Portable Games

      1. GTA Chinatown Wars
      2. GTA Vice City Stories
      3. GTA Liberty City Stories
    9. Top-Down Games

      1. GTA Advance
      2. GTA 2
      3. GTA
    1. Red Dead Redemption 2

      1. PC
      2. Help & Support
    2. Red Dead Redemption

    1. GTA Mods

      1. GTA V
      2. GTA IV
      3. GTA III, VC & SA
      4. Tutorials
    2. Red Dead Mods

      1. Documentation
    3. Mod Showroom

      1. Scripts & Plugins
      2. Maps
      3. Total Conversions
      4. Vehicles
      5. Textures
      6. Characters
      7. Tools
      8. Other
      9. Workshop
    4. Featured Mods

      1. Design Your Own Mission
      2. OpenIV
      3. GTA: Underground
      4. GTA: Liberty City
      5. GTA: State of Liberty
    1. Rockstar Games

    2. Rockstar Collectors

    1. Off-Topic

      1. General Chat
      2. Gaming
      3. Technology
      4. Movies & TV
      5. Music
      6. Sports
      7. Vehicles
    2. Expression

      1. Graphics / Visual Arts
      2. GFX Requests & Tutorials
      3. Writers' Discussion
      4. Debates & Discussion
    1. Announcements

    2. Support

    3. Suggestions

Counting how many enemies are left!


GameHacker666
 Share

Recommended Posts

GameHacker666

Hello!
I want to create a mod for a custom deathmatch which would start by pressing C on the keyboard. Pressing C creates 5 pedestrians and makes them fight each other and the player aswell. The fighting system works fine but I can't figure out how to display the amount of remaining enemies. I've tried a lot of things, but no success whatsoever. I'm not sure what I'm doing wrong, because this was supposed to be the easy part, lol. :facedesk::cry:

Anyway, below's a snippet of my code. As you can see, I make sure that the state of peds is being checked every single frame and if the said pedestrian is dead, the counter updates. I also make sure the substraction doesn't happen more than once by adding another boolean.

private void onTick(object sender, EventArgs e)        {            if (matchStart == true)            {                Function.Call(Hash._SET_TEXT_COMPONENT_FORMAT, "STRING");                Function.Call(Hash._ADD_TEXT_COMPONENT_STRING, ("Enemies left: " + numOfEnemies));                Function.Call(Hash._0x238FFE5C7B0498A6, 0, 0, 1, -1);            if (ped1.IsDead == true && ped1DeathCheck == false)            {                numOfEnemies--;                ped1DeadCheck = true;            }            //I check the other peds too obviously, this is just a snippet           if(numOfEnemies == 0)            {                Function.Call(Hash._SET_TEXT_COMPONENT_FORMAT, "STRING");                Function.Call(Hash._ADD_TEXT_COMPONENT_STRING, ("CONGRATULATIONS, YOU'VE WON!"));                Function.Call(Hash._0x238FFE5C7B0498A6, 0, 0, 1, -1);            }          }        } private void onKeyDown(object sender, KeyEventArgs e)        {            if (e.KeyCode == Keys.C)            {                numOfEnemies = 5;                ped1 = World.CreatePed(PedHash.Bevhills01AMY, ped1Coords);                ped1.Weapons.Give(WeaponHash.SniperRifle, 500, true, true);                 ped2 = World.CreatePed(PedHash.Bevhills02AMY, ped2Coords);                ped2.Weapons.Give(WeaponHash.HeavySniper, 500, true, true);                 ped3 = World.CreatePed(PedHash.Cop01SMY, ped3Coords);                ped3.Weapons.Give(WeaponHash.AssaultRifle, 500, true, true);                //and a couple more peds            }        }
Edited by GameHacker666
Link to comment
Share on other sites

You set numOfPlayers and then check numOfEnemies.

Is it a mistake in your snippet or do you have this in your actual code?

Link to comment
Share on other sites

GameHacker666

You set numOfPlayers and then check numOfEnemies.

Is it a mistake in your snippet or do you have this in your actual code?

 

It's just in the snippet. I accidentally deleted too much of the original code in the post and then made a mistake when rewriting.

if (ped1.IsDead == true && ped1DeathCheck == false)            {                numOfEnemies--;                ped1DeadCheck = true;            }

^^This code right here is the culprit it seems, because nothing happens if it goes through. I've put different things inside, such as set the health of my character to 50 etc. but when the enemy dies, this part just doesn't get executed for some reason. I tried creating another method and calling it inside the onTick(), but with no success.

Edited by GameHacker666
Link to comment
Share on other sites

Did you set matchStart to true?

Because this works nicely:

using System;using System.Windows.Forms;using GTA;using GTA.Native;namespace DebugScript{    public class MainScript : Script    {        private bool matchStart = false;        private Ped ped1;        private bool ped1DeathCheck = false;        private int numOfEnemies = 0;        public MainScript()        {            Tick += OnTick;            KeyDown += OnKeyDown;        }        private void OnTick(object sender, EventArgs e)        {            if (matchStart == true)            {                Function.Call(Hash._SET_TEXT_COMPONENT_FORMAT, "STRING");                Function.Call(Hash._ADD_TEXT_COMPONENT_STRING, ("Enemies left: " + numOfEnemies));                Function.Call(Hash._0x238FFE5C7B0498A6, 0, 0, 1, -1);                if (ped1.IsDead == true && ped1DeathCheck == false)                {                    numOfEnemies--;                    ped1DeathCheck = true;                }                if (numOfEnemies == 0)                {                    Function.Call(Hash._SET_TEXT_COMPONENT_FORMAT, "STRING");                    Function.Call(Hash._ADD_TEXT_COMPONENT_STRING, ("CONGRATULATIONS, YOU'VE WON!"));                    Function.Call(Hash._0x238FFE5C7B0498A6, 0, 0, 1, -1);                }            }        }        private void OnKeyDown(object sender, KeyEventArgs e)        {            if (e.KeyCode == Keys.C)            {                numOfEnemies = 1;                ped1 = World.CreatePed(PedHash.Bevhills01AMY, Game.Player.Character.Position);                ped1.Weapons.Give(WeaponHash.SniperRifle, 500, true, true);                matchStart = true;            }        }    }}

The only issue is that you call _0x238FFE5C7B0498A6 twice when the player has won, so it switch between "Ennemies left..." and "CONGRATULATIONS...".

You can quickly fix it like this:

if (ped1.IsDead == true && ped1DeathCheck == false){	numOfEnemies--;	ped1DeathCheck = true;}if (numOfEnemies == 0){	Function.Call(Hash._SET_TEXT_COMPONENT_FORMAT, "STRING");	Function.Call(Hash._ADD_TEXT_COMPONENT_STRING, ("CONGRATULATIONS, YOU'VE WON!"));	Function.Call(Hash._0x238FFE5C7B0498A6, 0, 0, 1, -1);}else{	Function.Call(Hash._SET_TEXT_COMPONENT_FORMAT, "STRING");	Function.Call(Hash._ADD_TEXT_COMPONENT_STRING, ("Enemies left: " + numOfEnemies));	Function.Call(Hash._0x238FFE5C7B0498A6, 0, 0, 1, -1);}
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • 1 User Currently Viewing
    0 members, 0 Anonymous, 1 Guest

×
×
  • Create New...

Important Information

By using GTAForums.com, you agree to our Terms of Use and Privacy Policy.