Seite 3 von 162 ErsteErste 12345671353103 ... LetzteLetzte
Ergebnis 31 bis 45 von 2421

Thema: BASE: SDK & Python Diskussion (Coder's Lair)

  1. #31
    Civ4 BASE Coder Avatar von rucivfan
    Registriert seit
    10.07.11
    Ort
    Antarktika
    Beiträge
    19.015
    Sag mal bitte den Unterordner. Ich finde es nicht.

  2. #32
    Waddehaddedudeda Avatar von Cybah
    Registriert seit
    01.09.06
    Beiträge
    30.450
    contrib.

    ich empfehle das programm agent ransack
    Pucc's Lets Plays BASE 6.0: #1 #2 #3 #4 #5

    Download von BASE 6.4 [D]: HIER (klick mich!) (Stand: 08.07.2022)

  3. #33
    Civ4 BASE Coder Avatar von rucivfan
    Registriert seit
    10.07.11
    Ort
    Antarktika
    Beiträge
    19.015
    wie kann ich in den PMs suchen?

  4. #34
    Waddehaddedudeda Avatar von Cybah
    Registriert seit
    01.09.06
    Beiträge
    30.450
    Wie kann das hier eigentlich funktionieren, wenn die Datei selbst kein def enemies hat?

    PHP-Code:
    enemies self.enemies[eActivePlayer
    Pucc's Lets Plays BASE 6.0: #1 #2 #3 #4 #5

    Download von BASE 6.4 [D]: HIER (klick mich!) (Stand: 08.07.2022)

  5. #35
    Civ4 BASE Coder Avatar von rucivfan
    Registriert seit
    10.07.11
    Ort
    Antarktika
    Beiträge
    19.015
    Das würde mich auch interessieren. Deswegen will ich mein PMS durchsuchen.

  6. #36
    Waddehaddedudeda Avatar von Cybah
    Registriert seit
    01.09.06
    Beiträge
    30.450
    man kann offensichtlich nur nach datum oder betreff filtern.
    Pucc's Lets Plays BASE 6.0: #1 #2 #3 #4 #5

    Download von BASE 6.4 [D]: HIER (klick mich!) (Stand: 08.07.2022)

  7. #37
    Waddehaddedudeda Avatar von Cybah
    Registriert seit
    01.09.06
    Beiträge
    30.450
    sieht irgendwie so aus als würde die enemies funktion komplett fehlen. die fehlt aber auch im original bug mod.
    Pucc's Lets Plays BASE 6.0: #1 #2 #3 #4 #5

    Download von BASE 6.4 [D]: HIER (klick mich!) (Stand: 08.07.2022)

  8. #38
    Civ4 BASE Coder Avatar von rucivfan
    Registriert seit
    10.07.11
    Ort
    Antarktika
    Beiträge
    19.015
    Den Fehler habe ich schon häufiger gehabt.

  9. #39
    Waddehaddedudeda Avatar von Cybah
    Registriert seit
    01.09.06
    Beiträge
    30.450
    Ich auch.
    Pucc's Lets Plays BASE 6.0: #1 #2 #3 #4 #5

    Download von BASE 6.4 [D]: HIER (klick mich!) (Stand: 08.07.2022)

  10. #40
    Civ4 BASE Coder Avatar von rucivfan
    Registriert seit
    10.07.11
    Ort
    Antarktika
    Beiträge
    19.015
    Habe die richtige Nachricht gefunden. Ein hoch darauf PMs als Text runterladen zu können.

    Von : rucivfan
    An : Cybah
    Datum : 2013-08-10 20:22
    Titel : Zitat SDK Thema
    --------------------------------------------------------------------------------

    Zitat Zitat von rucivfan Beitrag anzeigen
    Hat jetzt nicht mehr direkt mit dem SDK zu tun, gehört aber trotzdem zu meiner Frage oben. Ich habe jetzt den Fehler analysiert.

    Achtung Spoiler:
    Code:
    	def check(self):
    		if (not Civ4lertsOpt.isShowWorstEnemyAlert()):
    			return
    		eActivePlayer = PlayerUtil.getActivePlayerID()
    		eActiveTeam, activeTeam = PlayerUtil.getActiveTeamAndID()
    		enemies = self.enemies[eActivePlayer]
    		newEnemies = AttitudeUtil.getWorstEnemyTeams()
    		delayedMessages = {}
    		for eTeam, eNewEnemy in newEnemies.iteritems():
    			if activeTeam.isHasMet(eTeam):
    				eOldEnemy = enemies[eTeam]
    				if eOldEnemy != -1 and not gc.getTeam(eOldEnemy).isAlive():
    					eOldEnemy = -1
    					enemies[eTeam] = -1
    				if eActiveTeam != eNewEnemy and not activeTeam.isHasMet(eNewEnemy):
    					eNewEnemy = -1
    				if eOldEnemy != eNewEnemy:
    					enemies[eTeam] = eNewEnemy
    					if eNewEnemy == -1:
    						if eOldEnemy == eActiveTeam:
    							message = BugUtil.getText("TXT_KEY_CIV4LERTS_ON_YOU_NO_WORST_ENEMY", gc.getTeam(eTeam).getName())
    						else:
    							message = BugUtil.getText("TXT_KEY_CIV4LERTS_ON_NO_WORST_ENEMY", 
    									(gc.getTeam(eTeam).getName(), gc.getTeam(eOldEnemy).getName()))
    					elif eOldEnemy == -1:
    						message = None # handled below
    						if eNewEnemy not in delayedMessages:
    							delayedMessages[eNewEnemy] = gc.getTeam(eTeam).getName()
    						else:
    							delayedMessages[eNewEnemy] += u", " + gc.getTeam(eTeam).getName()
    					else:
    						if eOldEnemy == eActiveTeam:
    							message = BugUtil.getText("TXT_KEY_CIV4LERTS_ON_SWITCH_WORST_ENEMY_FROM_YOU", 
    									(gc.getTeam(eTeam).getName(), gc.getTeam(eNewEnemy).getName()))
    						elif eNewEnemy == eActiveTeam:
    							message = BugUtil.getText("TXT_KEY_CIV4LERTS_ON_SWITCH_WORST_ENEMY_TO_YOU", 
    									(gc.getTeam(eTeam).getName(), gc.getTeam(eOldEnemy).getName()))
    						else:
    							message = BugUtil.getText("TXT_KEY_CIV4LERTS_ON_SWITCH_WORST_ENEMY", 
    									(gc.getTeam(eTeam).getName(), gc.getTeam(eNewEnemy).getName(), gc.getTeam(eOldEnemy).getName()))
    					if message:
    						addMessageNoIcon(eActivePlayer, message)
    		for eEnemy, haters in delayedMessages.iteritems():
    			if eActiveTeam == eEnemy:
    				message = BugUtil.getText("TXT_KEY_CIV4LERTS_ON_YOU_WORST_ENEMY", haters)
    			else:
    				message = BugUtil.getText("TXT_KEY_CIV4LERTS_ON_WORST_ENEMY", (haters, gc.getTeam(eEnemy).getName()))
    			addMessageNoIcon(eActivePlayer, message)
    Code:
    def getWorstEnemyTeams():
    	"""
    	Returns a dictionary of the team IDs that are each team's worst enemy.
    	
    	The key is team ID; the value is the worst enemy team ID.
    	If a team has no worst enemy, -1 is stored as its value.
    	Ignores dead, human, barbarian, and minor teams.
    	
    	Loops over players because CyTeam does not have getWorstEnemyName().
    	"""
    	namesToID = {}
    	for team in PlayerUtil.teams(alive=True, barbarian=False, minor=False):
    		namesToID[team.getName()] = team.getID()
    	enemies = {}
    	for team in PlayerUtil.teams(alive=True, human=False, barbarian=False, minor=False):
    		eTeam = team.getID()
    		eLeader = team.getLeaderID()
    		if eLeader != -1:
    			player = PlayerUtil.getPlayer(eLeader)
    			worstEnemyName = player.getWorstEnemyName()
    			if worstEnemyName:
    				try:
    					enemies[eTeam] = namesToID[worstEnemyName]
    				except KeyError:
    					BugUtil.debug("Cannot find team \"%s\"", worstEnemyName)
    					enemies[eTeam] = -1
    			else:
    				enemies[eTeam] = -1
    	return enemies


    getWorstEnemyTeams() findet zu einen Team den schlimmsten Feind. Jetzt kommt es! Es wird der Name des schlimmsten Feindes gesucht und dieser mit einer mir nicht bekannten Methode zu einer ID gewandelt. Das geht scheinbar nicht gut, wie man es am Try und Catch sieht. Aber man kann auch direkt die ID abfragen per Python und muss nicht diesen Umständigen Weg gehen! Dann wird noch in def check(self): nicht auf -1 geprüft, wo es doch offensichtlich vorkommmen kann.

    Woher hat nur Cybah so einen schrott Code?

  11. #41
    Waddehaddedudeda Avatar von Cybah
    Registriert seit
    01.09.06
    Beiträge
    30.450
    Aber hast du den Schrott Code auch gefixt?
    Pucc's Lets Plays BASE 6.0: #1 #2 #3 #4 #5

    Download von BASE 6.4 [D]: HIER (klick mich!) (Stand: 08.07.2022)

  12. #42
    Civ4 BASE Coder Avatar von rucivfan
    Registriert seit
    10.07.11
    Ort
    Antarktika
    Beiträge
    19.015
    Ich habe noch zwei wietere Nachrichten mit den Code gefunden.

  13. #43
    Civ4 BASE Coder Avatar von rucivfan
    Registriert seit
    10.07.11
    Ort
    Antarktika
    Beiträge
    19.015
    Habe jetzt nur eine einfache Abfrage hinzugefügt. Civ4lerts.py Zeile 927

    Code:
    	def check(self):
    		if (not Civ4lertsOpt.isShowWorstEnemyAlert()):
    			return
    		eActivePlayer = PlayerUtil.getActivePlayerID()
    		eActiveTeam, activeTeam = PlayerUtil.getActiveTeamAndID()
    		enemies = self.enemies[eActivePlayer]
    		newEnemies = AttitudeUtil.getWorstEnemyTeams()
    		delayedMessages = {}
    		for eTeam, eNewEnemy in newEnemies.iteritems():
    			if activeTeam.isHasMet(eTeam) and eNewEnemy != -1:
    				eOldEnemy = enemies[eTeam]
    				if eOldEnemy != -1 and not gc.getTeam(eOldEnemy).isAlive():
    					eOldEnemy = -1
    					enemies[eTeam] = -1
    				if eActiveTeam != eNewEnemy and not activeTeam.isHasMet(eNewEnemy):
    					eNewEnemy = -1
    				if eOldEnemy != eNewEnemy:
    					enemies[eTeam] = eNewEnemy
    					if eNewEnemy == -1:
    						if eOldEnemy == eActiveTeam:
    							message = BugUtil.getText("TXT_KEY_CIV4LERTS_ON_YOU_NO_WORST_ENEMY", gc.getTeam(eTeam).getName())
    						else:
    							message = BugUtil.getText("TXT_KEY_CIV4LERTS_ON_NO_WORST_ENEMY", 
    									(gc.getTeam(eTeam).getName(), gc.getTeam(eOldEnemy).getName()))
    					elif eOldEnemy == -1:
    						message = None # handled below
    						if eNewEnemy not in delayedMessages:
    							delayedMessages[eNewEnemy] = gc.getTeam(eTeam).getName()
    						else:
    							delayedMessages[eNewEnemy] += u", " + gc.getTeam(eTeam).getName()
    					else:
    						if eOldEnemy == eActiveTeam:
    							message = BugUtil.getText("TXT_KEY_CIV4LERTS_ON_SWITCH_WORST_ENEMY_FROM_YOU", 
    									(gc.getTeam(eTeam).getName(), gc.getTeam(eNewEnemy).getName()))
    						elif eNewEnemy == eActiveTeam:
    							message = BugUtil.getText("TXT_KEY_CIV4LERTS_ON_SWITCH_WORST_ENEMY_TO_YOU", 
    									(gc.getTeam(eTeam).getName(), gc.getTeam(eOldEnemy).getName()))
    						else:
    							message = BugUtil.getText("TXT_KEY_CIV4LERTS_ON_SWITCH_WORST_ENEMY", 
    									(gc.getTeam(eTeam).getName(), gc.getTeam(eNewEnemy).getName(), gc.getTeam(eOldEnemy).getName()))
    					if message:
    						addMessageNoIcon(eActivePlayer, message)
    		for eEnemy, haters in delayedMessages.iteritems():
    			if eActiveTeam == eEnemy:
    				message = BugUtil.getText("TXT_KEY_CIV4LERTS_ON_YOU_WORST_ENEMY", haters)
    			else:
    				message = BugUtil.getText("TXT_KEY_CIV4LERTS_ON_WORST_ENEMY", (haters, gc.getTeam(eEnemy).getName()))
    			addMessageNoIcon(eActivePlayer, message)
    Es ging um einen anderen Fehler an der Stelle.

  14. #44
    Waddehaddedudeda Avatar von Cybah
    Registriert seit
    01.09.06
    Beiträge
    30.450
    jo das ist das was ich oben gepostet hab.
    Pucc's Lets Plays BASE 6.0: #1 #2 #3 #4 #5

    Download von BASE 6.4 [D]: HIER (klick mich!) (Stand: 08.07.2022)

  15. #45
    Civ4 BASE Coder Avatar von rucivfan
    Registriert seit
    10.07.11
    Ort
    Antarktika
    Beiträge
    19.015
    Das heißt aber, enemies muss irgend wo gesetzt werden.

Seite 3 von 162 ErsteErste 12345671353103 ... LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •