Seite 4 von 6 ErsteErste 123456 LetzteLetzte
Ergebnis 46 bis 60 von 85

Thema: Frage zu Ressourcen

  1. #46
    Magie ist entscheidend Avatar von magic66
    Registriert seit
    15.02.07
    Ort
    Das Dorf
    Beiträge
    1.394
    Sorry, die Datei heißt "CvGameUtils.py" in Screens.

    Zitat Zitat von Little Pritt Beitrag anzeigen
    can/-not Train
    LittlePritt hat Recht: Du musst entweder canTrain oder cannotTrain benutzen
    Mit Anstand, Tugen und Manieren,-kannst du dich nie blamieren!!
    Wäre, wenn und aber ... CIV ist kein Spiel der Konjunktive!

  2. #47
    Senior Member
    Registriert seit
    30.04.09
    Ort
    Unter der Brücke
    Beiträge
    297
    What in the hell means that?

    I know, you can tell me that!

  3. #48
    paranoider Irrer Avatar von The_J
    Registriert seit
    07.08.07
    Ort
    verrat ich nicht
    Beiträge
    13.297
    PHP-Code:
        def cannotTrain(self,argsList):
            
    pCity argsList[0]
            
    eUnit argsList[1]
            
    bContinue argsList[2]
            
    bTestVisible argsList[3]
            
    bIgnoreCost argsList[4]
            
    bIgnoreUpgrades argsList[5]
            
            
    #Ab hier
            
    Oil gc.getInfoTypeForString("BONUS_OIL")
            
    ePlayer pCity.getOwner()
            
    pPlayer gc.getPlayer(ePlayer)
            
    MyOil pPlayer.getNumAvailableBonuses(Oil)
            
    tank gc.getInfoTypeForString('UNITCLASS_TANK')
            
    NumTanks pPlayer.getUnitClassCount(tank)
            if (
    eUnit == tank):
                if (
    NumTanks > (MyOil*10)) :
                    return 
    True 

    der Code hier erlaubt nur 10 Panzer pro Öl, dass du hast.
    (bzw. sollte, ich hab's jetzt nicht getestet; ist auch nicht mein Code, die Basis hat Moritz für mich geschrieben)
    Du musst dazu aber in der PythonCallbackDefines.xml den CannotTrain-Callback auf 1 setzten.


    Edit: Bääh, ich bin so ein mieser Programmierer, dass ich nicht mal die paar Zeilen fehlerfrei hinkrieg .
    Geändert von The_J (05. Juni 2009 um 00:18 Uhr)
    Zum Download bereit: Civ4-Mod "Mars, jetzt!"


    "Frei sein heißt wählen können, wessen Sklave man sein will." (Jeanne Moreau, 1928 - )

    "Immer wenn man die Meinung der Mehrheit teilt, ist es Zeit, sich zu besinnen." (Mark Twain, 1835 - 1910)


  4. #49
    Senior Member
    Registriert seit
    30.04.09
    Ort
    Unter der Brücke
    Beiträge
    297
    der Code hier erlaubt nur 10 Panzer pro Öl, dass du hast.
    2 Öl für einen Panzer, war eigentlich gemeint! Aber so, ist das eine sehr gute Idee

    Um das jetzt zu kapieren, erklär ich's mal mir selbst
    PHP-Code:
           if (eUnit == tank): //Falls Enabled (?) Unit = Panzer
                
    if (NumTanks > (MyOil*10)) : //Falls Anzahl panzer > Anzahl Ölx10
                    
    return True //return true? Ich denke das bedeutet, man kann keine Panzer bauen! 
    das obere ist, meiner Meinung nach, bloss Informationen!
    PHP-Code:
     Oil gc.getInfoTypeForString("BONUS_OIL"//Mit Oil ist der Type "BONUS_OIL" gemeint!
            
    ePlayer pCity.getOwner() //Enabled (Ausgewählter) Spieler
            
    pPlayer gc.getPlayer(ePlayer//pPlayer=? Vielleicht gespieler (von Mensch gesteuerter) Spieler?
            
    MyOil pPlayer.getNumAvailableBonuses(Oil//My Oil ist Anzahl Oil (siehe oben)
            
    tank gc.getInfoTypeForString('UNITCLASS_TANK')  //Zu tank gehört alles, was die Unitclass UNITCLASS_TANK hat!
            
    NumTanks pPlayer.getUnitClassCount(tank//Anzahl des oberen Tank 
    PHP-Code:
       def cannotTrain(self,argsList): 
            
    pCity argsList[0
            
    eUnit argsList[1
            
    bContinue argsList[2
            
    bTestVisible argsList[3
            
    bIgnoreCost argsList[4
            
    bIgnoreUpgrades argsList[5
    Bei den Wörtern vor dem =, komm ich noch draus (playerCity;enabledUnit;...)
    Aber was ist diese argslist? Und die Zahlen in den Klammern?

    Falls irgendwas falsch ist: KORRIGIERT MICH!

  5. #50
    paranoider Irrer Avatar von The_J
    Registriert seit
    07.08.07
    Ort
    verrat ich nicht
    Beiträge
    13.297
    Schon wieder falsch .

    PHP-Code:
        def cannotTrain(self,argsList):
            
    pCity argsList[0]
            
    eUnit argsList[1]
            
    bContinue argsList[2]
            
    bTestVisible argsList[3]
            
    bIgnoreCost argsList[4]
            
    bIgnoreUpgrades argsList[5]
            
            
    #Ab hier
            
    Oil gc.getInfoTypeForString("BONUS_OIL")
            
    ePlayer pCity.getOwner()
            
    pPlayer gc.getPlayer(ePlayer)
            
    MyOil pPlayer.getNumAvailableBonuses(Oil)
            
    tankclass gc.getInfoTypeForString('UNITCLASS_TANK')
            
    NumTanks pPlayer.getUnitClassCount(tankclass)
            
    normaltank gc.getInfoTypeForString('UNIT_TANK')
            
    germantank gc.getInfoTypeForString('UNIT_GERMAN_PANZER')
            if ((
    eUnit == normaltank)OR(eUnit == germantank)):
                if (
    NumTanks > (MyOil*10)) :
                    return 
    True 


    Zitat Zitat von Civ Beitrag anzeigen
    2 Öl für einen Panzer, war eigentlich gemeint! Aber so, ist das eine sehr gute Idee
    Ändern ist ja nicht schwierig .

    Zitat Zitat von Civ Beitrag anzeigen
    Um das jetzt zu kapieren, erklär ich's mal mir selbst
    PHP-Code:
           if (eUnit == tank): //Falls Enabled (?) Unit = Panzer
                
    if (NumTanks > (MyOil*10)) : //Falls Anzahl panzer > Anzahl Ölx10
                    
    return True //return true? Ich denke das bedeutet, man kann keine Panzer bauen! 
    Mit e oder i davor ist's meist die Zahl, mit der ne Einheit bzw. der Typ identifziert wird.
    Oben also die Identifikation des Panzers geholt, die mit eUnit verglichen.
    2. Zeile: .
    3. Zeile: CanNOTtrain mit True heißt Ja, kann nicht trainieren.

    Zitat Zitat von Civ Beitrag anzeigen
    das obere ist, meiner Meinung nach, bloss Informationen!
    PHP-Code:
    ePlayer pCity.getOwner() //Enabled (Ausgewählter) Spieler
            
    pPlayer gc.getPlayer(ePlayer//pPlayer=? Vielleicht gespieler (von Mensch gesteuerter) Spieler? 
    ePlayer = die Nummer es aktuellen Spielers.
    pPlayer = gc.getPlayer(ePlayer) dient dazu, um nicht die Nummer, sondern den aktuellen Spieler wirklcih zu bekommen.



    Zitat Zitat von Civ Beitrag anzeigen
    PHP-Code:
       def cannotTrain(self,argsList): 
            
    pCity argsList[0
            
    eUnit argsList[1
            
    bContinue argsList[2
            
    bTestVisible argsList[3
            
    bIgnoreCost argsList[4
            
    bIgnoreUpgrades argsList[5
    Bei den Wörtern vor dem =, komm ich noch draus (playerCity;enabledUnit;...)
    Aber was ist diese argslist? Und die Zahlen in den Klammern?

    Falls irgendwas falsch ist: KORRIGIERT MICH!
    Arglist: Das ist alles dass, was die Funktion übergeben bekommen.
    Rest: .
    Geändert von The_J (05. Juni 2009 um 09:27 Uhr)
    Zum Download bereit: Civ4-Mod "Mars, jetzt!"


    "Frei sein heißt wählen können, wessen Sklave man sein will." (Jeanne Moreau, 1928 - )

    "Immer wenn man die Meinung der Mehrheit teilt, ist es Zeit, sich zu besinnen." (Mark Twain, 1835 - 1910)


  6. #51
    Senior Member
    Registriert seit
    30.04.09
    Ort
    Unter der Brücke
    Beiträge
    297
    Ach so!

    Soll ich's in den Modern War Mod einbauen?

  7. #52
    Magie ist entscheidend Avatar von magic66
    Registriert seit
    15.02.07
    Ort
    Das Dorf
    Beiträge
    1.394
    Zitat Zitat von Civ Beitrag anzeigen
    PHP-Code:
     Oil gc.getInfoTypeForString("BONUS_OIL"//Mit Oil ist der Type "BONUS_OIL" gemeint!
            
    ePlayer pCity.getOwner() //Enabled (Ausgewählter) Spieler
            
    pPlayer gc.getPlayer(ePlayer//pPlayer=? Vielleicht gespieler (von Mensch gesteuerter) Spieler?
            
    MyOil pPlayer.getNumAvailableBonuses(Oil//My Oil ist Anzahl Oil (siehe oben)
            
    tank gc.getInfoTypeForString('UNITCLASS_TANK')  //Zu tank gehört alles, was die Unitclass UNITCLASS_TANK hat!
            
    NumTanks pPlayer.getUnitClassCount(tank//Anzahl des oberen Tank 
    Naja, nicht ganz.
    ePlayer ist die Zahl, wie TheJ schon gesagt hat, und pPlayer ist die Klasse/Objekt, das alle Infos vom Spieler, den du wählst, enthält.
    tank wird so definiert, dass es eine Zahl ist. Damit man diese Zahl (Position in der XML-Datei) variabel halten kann, wird mit "gc.getInfoTypeForString" eine Art Suchmaschine betätigt, die zählt, an welcher Postion der Eintrag "Tank" gehört.

    Und zur Mod: Also ich wäre schon dafür, dass du sowas mit einbaust. Nur müsstest du das dann auch für alle anderen machen.

    Ich kann auch mal den Code für schreiben, wo man 3 Öl braucht, um überhaupt einen Panzer zu bauen.(ist sogar noch einfacher)
    Mit Anstand, Tugen und Manieren,-kannst du dich nie blamieren!!
    Wäre, wenn und aber ... CIV ist kein Spiel der Konjunktive!

  8. #53
    Senior Member
    Registriert seit
    30.04.09
    Ort
    Unter der Brücke
    Beiträge
    297
    Und zur Mod: Also ich wäre schon dafür, dass du sowas mit einbaust. Nur müsstest du das dann auch für alle anderen machen.

    Ich kann auch mal den Code für schreiben, wo man 3 Öl braucht, um überhaupt einen Panzer zu bauen.(ist sogar noch einfacher)
    Grade etwas viel! Vielleicht für die ganz starken Panzer.
    Könntest du mir den Code schicken, oder sagen, was ich wo schreiben muss, wenn ich dir sage, welche Einheit wieviel von welchem Rohstoff braucht?

  9. #54
    paranoider Irrer Avatar von The_J
    Registriert seit
    07.08.07
    Ort
    verrat ich nicht
    Beiträge
    13.297
    Zitat Zitat von Civ Beitrag anzeigen
    Grade etwas viel! Vielleicht für die ganz starken Panzer.
    Könntest du mir den Code schicken, oder sagen, was ich wo schreiben muss, wenn ich dir sage, welche Einheit wieviel von welchem Rohstoff braucht?
    das kannst du auch selber.

    Den ganzen Ramsch ab
    PHP-Code:
    #ab hier 
    kopieren, Resource, Einheit und Einheitenklasse austauschen, und
    PHP-Code:
    if (NumTanks > (MyOil*10)) : 
    abzuändern ist jetzt aucu nicht schwer, du wolltest ja
    PHP-Code:
    if (NumTanks > (MyOil/2)) : 
    Zum Download bereit: Civ4-Mod "Mars, jetzt!"


    "Frei sein heißt wählen können, wessen Sklave man sein will." (Jeanne Moreau, 1928 - )

    "Immer wenn man die Meinung der Mehrheit teilt, ist es Zeit, sich zu besinnen." (Mark Twain, 1835 - 1910)


  10. #55
    . Avatar von lpw
    Registriert seit
    12.05.06
    Beiträge
    1.048
    Ich glaube er will
    PHP-Code:
    if (MyOil 1) : 
    Damit man mehr als ein Öl brauch, um Panzer zu bauen. (Keine Ahnung ob es >= bei Phyton gibt, sonst der Übersicht halber (MyOil >= 2))

  11. #56
    Senior Member
    Registriert seit
    30.04.09
    Ort
    Unter der Brücke
    Beiträge
    297
    Damit man mehr als ein Öl brauch, um Panzer zu bauen. (Keine Ahnung ob es >= bei Phyton gibt, sonst der Übersicht halber (MyOil >= 2))
    Ja, aber nicht >1 sondern =2!

  12. #57
    Senior Member
    Registriert seit
    30.04.09
    Ort
    Unter der Brücke
    Beiträge
    297
    abzuändern ist jetzt aucu nicht schwer, du wolltest ja
    PHP-Code:
    if (NumTanks > (MyOil/2)) :
    Aber die Idee mit 1ÖL = 10 Panzer ist auch gut!

    Weil mit der methode 2 Öl gleich Panzer bauen, kann man 2 Öl haben und dann 500 Panzer bauen!

    So kann man aber mit 2 Öl nur 20 Panzer bauen!

    Weil 2 Ölquellen genug liefern um die Panzer anzutreiben!

  13. #58
    Senior Member
    Registriert seit
    30.04.09
    Ort
    Unter der Brücke
    Beiträge
    297
    Nochmal eine Phyton-Frage: Hier hab ich auf der 2. Seite den Python-text
    PHP-Code:
    def unitCannotMoveInto(self,argsList): 
            
    ePlayer argsList[0
            
    iUnitId argsList[1
            
    iPlotX argsList[2
            
    iPlotY argsList[3
             
            
    ## Locomotive Route Restriction 
            
    pUnit gc.getPlayer(ePlayer).getUnit(iUnitId
            
    iTrainType gc.getInfoTypeForString "UNIT_ARCHER" 
            if 
    pUnit.getUnitType() == iTrainType
                
    pPlot CyMap().plot(iPlotXiPlotY
                
    iRoute gc.getInfoTypeForString "ROUTE_RAILROAD" 
                if 
    pPlot.getRouteType() != iRoute
                    return 
    True 
             
            
    ## End Edit 
            
    return False 
    Also hab ich alles ab "## Locomotive Route Restrictor" an die richtige Stelle kopiert. Nur hab ich nun das problem, dass im Spielbildschirm nichts mehr erscheint.

    Ich seh zwar die Karte mit den Einheiten und alles, aber alles andere (die Balken wo die Buttons für's Menü, die berater, zum fortbewegen etc. der Einheiten sind) ist nicht mehr drauf!

    Edit: Jetzt ist's wieder normal, zu normal! Ich sehe zwar alles. Aber der Bogenschütze kann sich überall fortbewegen...
    Geändert von Civ (06. Juni 2009 um 20:43 Uhr)

  14. #59
    Magie ist entscheidend Avatar von magic66
    Registriert seit
    15.02.07
    Ort
    Das Dorf
    Beiträge
    1.394
    Ich gib dir da mal einen Tipp, um solche Probleme vorzubeugen (mir passieren auch sehr häufig irgendwelche Fehler (vertippt etc.). Du musst das PythonDebugging von Civ anstellen.
    Dazu musst du in der Civilization.ini den Wert von HidePythonExeptions von 1 auf 0 setzen.
    Dann bekommst du eine Meldung, wenn was nicht stimmt und wenn waas nicht stimmt, kann das Interface nicht geladen werden und du erhälst ein unvollständiges Interface

    Edit: Du musst in der PythonCallBack.xml etwas ändern!!!!
    Mit Anstand, Tugen und Manieren,-kannst du dich nie blamieren!!
    Wäre, wenn und aber ... CIV ist kein Spiel der Konjunktive!

  15. #60
    paranoider Irrer Avatar von The_J
    Registriert seit
    07.08.07
    Ort
    verrat ich nicht
    Beiträge
    13.297
    Zitat Zitat von Civ Beitrag anzeigen
    Ich seh zwar die Karte mit den Einheiten und alles, aber alles andere (die Balken wo die Buttons für's Menü, die berater, zum fortbewegen etc. der Einheiten sind) ist nicht mehr drauf!
    Das ist im Normalfall ein typischer Fall von Einrückung versaut.
    Hör' auf Magic .

    Zitat Zitat von magic66 Beitrag anzeigen
    Edit: Du musst in der PythonCallBack.xml etwas ändern!!!!
    ne 1 bei CannotMove setzen.
    Zum Download bereit: Civ4-Mod "Mars, jetzt!"


    "Frei sein heißt wählen können, wessen Sklave man sein will." (Jeanne Moreau, 1928 - )

    "Immer wenn man die Meinung der Mehrheit teilt, ist es Zeit, sich zu besinnen." (Mark Twain, 1835 - 1910)


Seite 4 von 6 ErsteErste 123456 LetzteLetzte

Berechtigungen

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