GoldenEye: Source Forums

  • November 21, 2024, 05:47:48 pm
  • Welcome, Guest
Advanced search  

News:

Pages: 1 ... 4 5 [6] 7   Go Down

Author Topic: [Gameplay] Die Another Day  (Read 88632 times)

0 Members and 3 Guests are viewing this topic.

Joe

  • Secret Agent
  • **
  • Posts: 139
  • Reputation Power: 54
  • Joe has an aura about them.Joe has an aura about them.Joe has an aura about them.Joe has an aura about them.Joe has an aura about them.Joe has an aura about them.Joe has an aura about them.Joe has an aura about them.Joe has an aura about them.Joe has an aura about them.
  • Offline Offline
Re: Die Another Day
« Reply #75 on: September 02, 2013, 08:34:39 pm »

My PC still has a faulty graphics card so I can't test Alpha 1.10 yet. But I have ordered the parts for my new PC.

So when I've assembled it (I may not receive all of its parts until September 10th), I will resume my development of this mode and I will release alpha 1.10 asap.
 
« Last Edit: September 02, 2013, 08:38:18 pm by Joe »
Logged
Free games:FPS + RTS: Renegade X & Battlezone 1.5,RTS: 7 Kingdoms & Open Red Alert, TBS:Hedgewars, playcatan.com & www.wesnoth.org

Joe

  • Secret Agent
  • **
  • Posts: 139
  • Reputation Power: 54
  • Joe has an aura about them.Joe has an aura about them.Joe has an aura about them.Joe has an aura about them.Joe has an aura about them.Joe has an aura about them.Joe has an aura about them.Joe has an aura about them.Joe has an aura about them.Joe has an aura about them.
  • Offline Offline
Re: Die Another Day
« Reply #76 on: December 10, 2013, 02:48:04 pm »

I'm sorry I haven't worked on this mode since September, I will resume my work on it today.
Logged
Free games:FPS + RTS: Renegade X & Battlezone 1.5,RTS: 7 Kingdoms & Open Red Alert, TBS:Hedgewars, playcatan.com & www.wesnoth.org

StupidMarioBros1Fan[1138]

  • Secret Agent
  • **
  • Posts: 150
  • Reputation Power: 13
  • StupidMarioBros1Fan[1138] barely matters.StupidMarioBros1Fan[1138] barely matters.
  • Offline Offline
Re: Die Another Day
« Reply #77 on: December 11, 2013, 01:37:11 am »

So everything on your computer is good to go right? That sucks what happened...5 months ago.
Logged
Don't ask, Stupid Mario Brothers is a YouTube series that I love to watch, and most likely you probably read my username as "SuperMarioBros1Fan" at some point. Yes I get that question a lot since this isn't the only account with this name. ::)

Joe

  • Secret Agent
  • **
  • Posts: 139
  • Reputation Power: 54
  • Joe has an aura about them.Joe has an aura about them.Joe has an aura about them.Joe has an aura about them.Joe has an aura about them.Joe has an aura about them.Joe has an aura about them.Joe has an aura about them.Joe has an aura about them.Joe has an aura about them.
  • Offline Offline
Re: Die Another Day
« Reply #78 on: December 11, 2013, 03:15:26 pm »

Quote
So everything on your computer is good to go right?
Yes, so I'm hoping the hacker(s) who interfered with my development of this mode months ago, won't bother to hack my new PC.

I've not yet experienced the error which prevented me from releasing Alpha 1.10 months ago. Imo it was probably caused by malicious software changing the values of DAD mode variables to make them invalid. The invalid values these variables had could not have been assigned by mistakes in my code.

Before I release Alpha 1.10 now, I'm going to thoroughly test it and I'm going to check all of this mode's code to try to spot mistakes which could cause bugs to occur.

Quote
...5 months ago.
I know I should have finished this mode months ago, so I'm sorry that I've been doing a crap job of developing it.

At least I've had the dedication to spend countless hours of my free time developing this mode and I've not abandoned its development. If I ever decide to not finish this mode I will announce this in this forum topic and I will upload my latest code so that someone can take over the responsibility of developing this mode.
Logged
Free games:FPS + RTS: Renegade X & Battlezone 1.5,RTS: 7 Kingdoms & Open Red Alert, TBS:Hedgewars, playcatan.com & www.wesnoth.org

StupidMarioBros1Fan[1138]

  • Secret Agent
  • **
  • Posts: 150
  • Reputation Power: 13
  • StupidMarioBros1Fan[1138] barely matters.StupidMarioBros1Fan[1138] barely matters.
  • Offline Offline
Re: Die Another Day
« Reply #79 on: December 11, 2013, 05:42:50 pm »

I'm so sorry, you took that last part of my reply the wrong way. I wasn't upset about it being five months since any updates for us about the mode, I meant that it happened five months ago, and I didn't know about it until now. :P Trust me I know what it's like when it comes to completed mods or stuff should've been released a while back, got so many unfinished & finished stuff for Smash Bros Brawl it isn't funny. xD
Logged
Don't ask, Stupid Mario Brothers is a YouTube series that I love to watch, and most likely you probably read my username as "SuperMarioBros1Fan" at some point. Yes I get that question a lot since this isn't the only account with this name. ::)

Joe

  • Secret Agent
  • **
  • Posts: 139
  • Reputation Power: 54
  • Joe has an aura about them.Joe has an aura about them.Joe has an aura about them.Joe has an aura about them.Joe has an aura about them.Joe has an aura about them.Joe has an aura about them.Joe has an aura about them.Joe has an aura about them.Joe has an aura about them.
  • Offline Offline
Re: Die Another Day
« Reply #80 on: December 17, 2013, 12:57:27 pm »

I will try to finish Alpha 1.10 before Christmas day.

Last week I made a lot of changes to this mode's script which have made its code more organised. So I'm now fixing all the bugs these changes have caused and I think I've now fixed the majority of them.
« Last Edit: December 17, 2013, 12:59:03 pm by Joe »
Logged
Free games:FPS + RTS: Renegade X & Battlezone 1.5,RTS: 7 Kingdoms & Open Red Alert, TBS:Hedgewars, playcatan.com & www.wesnoth.org

Joe

  • Secret Agent
  • **
  • Posts: 139
  • Reputation Power: 54
  • Joe has an aura about them.Joe has an aura about them.Joe has an aura about them.Joe has an aura about them.Joe has an aura about them.Joe has an aura about them.Joe has an aura about them.Joe has an aura about them.Joe has an aura about them.Joe has an aura about them.
  • Offline Offline
Re: Die Another Day
« Reply #81 on: January 04, 2014, 10:18:28 pm »

There's at least one bug I will need to fix before I can release the latest DAD mode version, it's hard to fix because it occurs sporadically for particular spawned resurrection entities and I have no idea why it is happening.
Quote
Traceback (most recent call last):
  File "c:\program files (x86)\steam\steamapps\sourcemods\gesource\scripts\python\GamePlay\DieAnotherDay.py", line 217, in OnCaptureAreaEntered
    if REArea.GetTeamNumber() == player.GetTeamNumber() and self.REs.REUsable(REArea):
  File "c:\program files (x86)\steam\steamapps\sourcemods\gesource\scripts\python\GamePlay\DieAnotherDay.py", line 755, in REUsable
    return area in self.REs.values() and not area in self.disabledREs and not area in self.usedREs
RuntimeError: Access violation - no RTTI data!

Code: [Select]
def REUsable(self,area):
      return area in self.REs.values() and not area in self.disabledREs and not area in self.usedREs

Code: [Select]
class REDict:
        def __init__(self,DADP):
            self.unusedAreaID = 0
            self.DAD = DADP
            self.REs = {}
            self.REPulseTimers = {}
            self.REsWhichNeedToBeMoved = {}
            self.disabledREs = []
            self.usedREs = []
           
        def flagREAsUsed(self,RE):
            self.usedREs.append(RE)
           
        def hasREBeenUsed(self,RE):
            return RE in self.usedREs
           
        def getListOfTeamsREs(self,team):
            teamsREs = []
            for RE in self.REs.values():
                if RE.GetTeamNumber() == team: teamsREs.append(RE)
            return teamsREs
           
        def cleanup(self):
            self.DAD = None
            self.REs = None
            self.REPulseTimers = None
            self.REsWhichNeedToBeMoved = None
            self.disabledREs = None
            self.usedREs = None
           
        def spawnNewResurrectionEntity(self,victim,team,afterSpawnMoveTo=None):
            newAreasID = str(self.unusedAreaID)
            self.unusedAreaID += 1
            self.spawnResurrectionEntity(newAreasID,team,afterSpawnMoveTo)
       
        def spawnResurrectionEntity(self,areaID,team,afterSpawnMoveTo=None):
            skinNumber = 1
            if team == GEGlobal.TEAM_MI6: skinNumber = 0
           
            self.DAD.tokenManager.SetupCaptureArea(areaID,
                                                   radius = 35,
                                                   model="models/gameplay/gravestone.mdl",
                                                   limit=1,
                                                   #glow_color=self.DAD.getSidesColour(team),
                                                   #glow_dist=0,
                                                   skin=skinNumber,
                                                   rqd_team=team)
           
            if afterSpawnMoveTo != None: self.needsToBeMoved(areaID,afterSpawnMoveTo)
           
        def makeREGlow(self,RE):
            self.DAD.tokenManager.SetupCaptureArea(RE.GetGroupName(),glow_dist=350)
           
        def disableREGlow(self,RE):
            self.DAD.tokenManager.SetupCaptureArea(RE.GetGroupName(),glow_dist=0)
#         
        def REUsable(self,area):
            return area in self.REs.values() and not area in self.disabledREs and not area in self.usedREs
       
        def newRESpawned(self,area):
            self.disabledREs.append(area)
            idP = area.GetGroupName()
            self.REs[idP] = area
            self.REPulseTimers[idP] = DieAnotherDay.REDict.RingPulseTimer(self.DAD,area)
            self.disabledREs.remove(area)
           
        def deleteRE(self,RE):
            idP = RE.GetGroupName()
            del self.REs[idP]
            del self.REPulseTimers[idP]
            if self.REsWhichNeedToBeMoved.has_key(idP): del self.REsWhichNeedToBeMoved[id]
            if RE in self.disabledREs: self.disabledREs.remove(RE)
            if RE in self.usedREs: self.usedREs.remove(RE)
            self.DAD.tokenManager.RemoveCaptureArea(idP)
           
        def doesREExsist(self,area):
            return area in self.REs.values()
           
        def deleteREAfterDelay(self,RE,delay):
            timer = DieAnotherDay.ExtCallbackTimer(self.DAD.timerTracker,self.deleteREAfterDelayCallback,RE)
            timer.start(delay)
           
        def deleteREAfterDelayCallback(self,timer,update_type,RE):
            if update_type == Timer.UPDATE_FINISH: self.deleteRE(RE)
           
        def deleteAll(self):
            for REID in self.REs: self.DAD.tokenManager.RemoveCaptureArea(REID)
            self.REs = {}
            self.REPulseTimers = {}
            self.REsWhichNeedToBeMoved = {}
            self.disabledREs = []
            self.unusedAreaID = 0
           
        def isREDisabled(self,REArea):
            return REArea in self.disabledREs
           
        def makeREInvisible(self,RE):
            # Make RE Invisible
            self.DAD.tokenManager.SetupCaptureArea(RE.GetGroupName(),model="") #glow_dist=0
           
        def afterDelayChangeRERadarIcon(self,RE,icon,colour,delay):
            timer = DieAnotherDay.ExtCallbackTimer(self.DAD.timerTracker,self.changeRERadarIconAfterDelayCB,{"REArea":RE,"icon":icon,"colour":colour})
            timer.start(delay)
           
        def changeRERadarIconAfterDelayCB(self,timer,update_type,parameters):
            if update_type == Timer.UPDATE_FINISH: self.changeRERadarIcon(parameters["REArea"],parameters["icon"],parameters["colour"])
           
        def changeRERadarIcon(self,RE,newIcon,colour):
            self.DAD.radar.DropRadarContact(RE)
            self.DAD.radar.AddRadarContact(RE,GEGlobal.RADAR_TYPE_OBJECTIVE,True,newIcon,colour)
           
        def getMRELocations(self):
            foundLocations = []
            for RE in self.REs:
                if RE.GetTeamNumber() == GEGlobal.TEAM_MI6: foundLocations.append(RE.GetAbsOrigin())
            return foundLocations
       
        def getJRELocations(self):
            foundLocations = []
            for RE in self.REs:
                if RE.GetTeamNumber() == GEGlobal.TEAM_JANUS: foundLocations.append(RE.GetAbsOrigin())
            return foundLocations
           
        def needsToBeMoved(self,areasID,moveTo):
            self.REsWhichNeedToBeMoved[areasID] = moveTo
           
        def moved(self,RE):
            REID = RE.GetGroupName()
            if self.REsWhichNeedToBeMoved.has_key(REID): del self.REsWhichNeedToBeMoved[REID]
           
        def getMoveToLocation(self,area):
            REID = area.GetGroupName()
            if self.REsWhichNeedToBeMoved.has_key(REID): return self.REsWhichNeedToBeMoved[REID]
            return None
           
        def isPulsating(self,RE):
            return self.REPulseTimers[RE.GetGroupName()].isPulsating()
           
        def startPulsatingRings(self,REArea):
            self.REPulseTimers[REArea.GetGroupName()].start()
       
        def stopPulsatingRings(self,idP):
            self.REPulseTimers[idP].stop()

Logged
Free games:FPS + RTS: Renegade X & Battlezone 1.5,RTS: 7 Kingdoms & Open Red Alert, TBS:Hedgewars, playcatan.com & www.wesnoth.org

killermonkey

  • GES Programmer
  • Retired Lead Developer
  • GE:S Fanatic
  • *
  • Posts: 5,473
  • Reputation Power: 346
  • killermonkey is awe-inspiring!killermonkey is awe-inspiring!killermonkey is awe-inspiring!killermonkey is awe-inspiring!killermonkey is awe-inspiring!killermonkey is awe-inspiring!killermonkey is awe-inspiring!killermonkey is awe-inspiring!killermonkey is awe-inspiring!killermonkey is awe-inspiring!killermonkey is awe-inspiring!killermonkey is awe-inspiring!
  • Offline Offline
    • DroidMonkey Apps
Re: Die Another Day
« Reply #82 on: January 05, 2014, 04:37:12 pm »

Seems like this error is caused by bad C++ pointers still being held by Python. Most likely due to storing an entity in an array for a long duration.

Suggest that you use Entity Handles or simply the Entity ID for storage in a persistent array:

Code: [Select]
def AddAnEntity( ent, array_store ):
    array_store.append( GEEntity.EntityHandle( ent ) )

def DoesEntityExist( ent, array_store ):
    return ent in array_store

Note that there are implicit conversions occurring to do comparisons against entity instances, entity handles, and even entity ID numbers.

The following are equivalent:
Code: [Select]
ent_instance == ent_instance: TRUE

ent_instance == GEEntity.EntityHandle( ent_instance ): TRUE

ent_instance == ent_instance.GetUID(): TRUE
Logged

Joe

  • Secret Agent
  • **
  • Posts: 139
  • Reputation Power: 54
  • Joe has an aura about them.Joe has an aura about them.Joe has an aura about them.Joe has an aura about them.Joe has an aura about them.Joe has an aura about them.Joe has an aura about them.Joe has an aura about them.Joe has an aura about them.Joe has an aura about them.
  • Offline Offline
Re: Die Another Day
« Reply #83 on: January 08, 2014, 09:54:06 pm »

Thanks Killermonkey, I will make the changes you've suggested tommorow.

I'm going to put this mode's script into a GitHub.com repository tommorow so that anyone who wants to help me get it finished can download a copy of the script and then commit their edited copy.

I will accept revisions which fix bugs. However if a revision changes this mode's gameplay,graphics or the behaviour of its bots then I may not accept the changes, so please ask me for my approval before you spend time coding such changes. Also I may not accept a revision intended to improve the quality of a script's code because I may not agree that the changes improves the code's quality.

I will also put this mode's bot script into this GitHub repository. I would gladly delegate the task of developing a DAD mode bot to someone else so that I would have less work to do. It just needs to be a death match bot which can find and use resurrection entities by standing next to them and by using the long range resurrection ability.
« Last Edit: January 08, 2014, 09:56:29 pm by Joe »
Logged
Free games:FPS + RTS: Renegade X & Battlezone 1.5,RTS: 7 Kingdoms & Open Red Alert, TBS:Hedgewars, playcatan.com & www.wesnoth.org

Proxie

  • 00 Agent
  • ***
  • Posts: 573
  • Reputation Power: 141
  • Proxie is awe-inspiring!Proxie is awe-inspiring!Proxie is awe-inspiring!Proxie is awe-inspiring!Proxie is awe-inspiring!Proxie is awe-inspiring!Proxie is awe-inspiring!Proxie is awe-inspiring!Proxie is awe-inspiring!Proxie is awe-inspiring!Proxie is awe-inspiring!Proxie is awe-inspiring!
  • Offline Offline
Re: Die Another Day
« Reply #84 on: January 10, 2014, 12:13:13 am »

Have you made a GitHub repo yet?  I could try fixing some bugs for you

My GitHub
Logged

Joe

  • Secret Agent
  • **
  • Posts: 139
  • Reputation Power: 54
  • Joe has an aura about them.Joe has an aura about them.Joe has an aura about them.Joe has an aura about them.Joe has an aura about them.Joe has an aura about them.Joe has an aura about them.Joe has an aura about them.Joe has an aura about them.Joe has an aura about them.
  • Offline Offline
Re: Die Another Day
« Reply #85 on: January 10, 2014, 04:40:28 pm »

Thanks Proxie, I will make a Github repository later.
Logged
Free games:FPS + RTS: Renegade X & Battlezone 1.5,RTS: 7 Kingdoms & Open Red Alert, TBS:Hedgewars, playcatan.com & www.wesnoth.org

Joe

  • Secret Agent
  • **
  • Posts: 139
  • Reputation Power: 54
  • Joe has an aura about them.Joe has an aura about them.Joe has an aura about them.Joe has an aura about them.Joe has an aura about them.Joe has an aura about them.Joe has an aura about them.Joe has an aura about them.Joe has an aura about them.Joe has an aura about them.
  • Offline Offline
Re: Die Another Day
« Reply #86 on: January 10, 2014, 09:18:13 pm »

I've created a GitHub.com repository for this mode and in my first commit I've uploaded the latest DAD mode script: Link

Server admins: please only use released DAD mode versions on your server, the unfinished versions which will be stored in this repository will probably have bugs which could spoil this mode's gameplay or prevent this mode from loading.

How to use the GitHub.com repository
Before you work on something: please check the main repository's issues list to ensure no one is already working on it and please also add the issue your working on to this list.

I'm new to Git and version management software but I think the following instructions are correct:

1. Setup git
(See: Git Bootcamp: Setup Git))
2. Create your own DAD mode repository by copying (Forking) the main DAD mode repository
(See: Git Bootcamp: Fork A Repo)
3. Commit your changes to the DAD mode files in your copy of the main repository.
(See: Git Bootcamp: Create A Repo     Step 2 & Step 3)
4. Get updates from the main repository.
(See: Git Bootcamp: Fork A Repo : Step 3: Configure remotes  and  Pull in upstream changes )
5. When your ready to commit the changes in your repository to the main DAD repository send me a pull request.
(See: Using Pull Requests)
 
« Last Edit: January 10, 2014, 11:01:54 pm by Joe »
Logged
Free games:FPS + RTS: Renegade X & Battlezone 1.5,RTS: 7 Kingdoms & Open Red Alert, TBS:Hedgewars, playcatan.com & www.wesnoth.org

Joe

  • Secret Agent
  • **
  • Posts: 139
  • Reputation Power: 54
  • Joe has an aura about them.Joe has an aura about them.Joe has an aura about them.Joe has an aura about them.Joe has an aura about them.Joe has an aura about them.Joe has an aura about them.Joe has an aura about them.Joe has an aura about them.Joe has an aura about them.
  • Offline Offline
Re: Die Another Day
« Reply #87 on: January 19, 2014, 07:28:44 pm »

I've fixed the "no RTTI data" bug now but I've noticed that the survivor counts become incorrect when a player has their team changed by the auto balance.

So I will need to fix this before I can release the new DAD mode version.
Logged
Free games:FPS + RTS: Renegade X & Battlezone 1.5,RTS: 7 Kingdoms & Open Red Alert, TBS:Hedgewars, playcatan.com & www.wesnoth.org

Joe

  • Secret Agent
  • **
  • Posts: 139
  • Reputation Power: 54
  • Joe has an aura about them.Joe has an aura about them.Joe has an aura about them.Joe has an aura about them.Joe has an aura about them.Joe has an aura about them.Joe has an aura about them.Joe has an aura about them.Joe has an aura about them.Joe has an aura about them.
  • Offline Offline
Re: Die Another Day
« Reply #88 on: February 16, 2014, 05:27:03 pm »

I've fixed the survivor count displays and I now intend to work on DAD mode every day until it's finished.

I will try to finish and release Alpha 1.10 within the next few days.
Logged
Free games:FPS + RTS: Renegade X & Battlezone 1.5,RTS: 7 Kingdoms & Open Red Alert, TBS:Hedgewars, playcatan.com & www.wesnoth.org

Joe

  • Secret Agent
  • **
  • Posts: 139
  • Reputation Power: 54
  • Joe has an aura about them.Joe has an aura about them.Joe has an aura about them.Joe has an aura about them.Joe has an aura about them.Joe has an aura about them.Joe has an aura about them.Joe has an aura about them.Joe has an aura about them.Joe has an aura about them.
  • Offline Offline
Re: Die Another Day
« Reply #89 on: February 24, 2014, 12:51:44 pm »

I'm thoroughly testing the latest version of this mode now with bots and a checklist of everything that should happen when there's no bugs.

I will also test it with a friend on a multiplayer server today or within the next few days.

I will then release the latest version of this mode and then I will make sure that a playable version of this mode is always downloadable.

I regret not quickly releasing a playable version of this mode after I removed the download link for the previously released version as a precaution because I had made a mistake in its code which could have caused bugs.

« Last Edit: February 24, 2014, 12:53:59 pm by Joe »
Logged
Free games:FPS + RTS: Renegade X & Battlezone 1.5,RTS: 7 Kingdoms & Open Red Alert, TBS:Hedgewars, playcatan.com & www.wesnoth.org
Pages: 1 ... 4 5 [6] 7   Go Up