Ergebnis 1 bis 8 von 8

Thema: Guide: Ausbildung von Einheiten

  1. #1
    Registrierter Benutzer
    Registriert seit
    22.12.08
    Beiträge
    6

    Idee Guide: Ausbildung von Einheiten

    Hi, gleich mein erstes Thema geht ein wenig ins Detail: Und zwar die Ausbildung, deren Dauer mit der Zahl der bereits abgeschlossenen Ausbildungen zunimmt. Ich finde diese Feature weder realistisch noch dem Spielfluss zutraeglich.
    Vorwort:

    Dieser Thread vertieft die Informationen aus der Colo Wiki und
    http://www.civforum.de/showthread.php?t=55269

    Alle Angaben wurden leider noch nicht von Moddern bestaetigt.Macht mich bitte auf Fehler aufmerksam.

    Infos fuer Moddereinsteiger:
    Variablen in den XML Dateien koennen einfach geaendert werden. Einfachstes Mittel ist hierzu das Notepad.Aenderungen in den CPP Dateien erfordern das Neuerstellen der CVGameCoreDLL.dll (siehe http://www.civforum.de/showthread.php?t=57065)

    Die Zahlenangaben der Quellen sind Zeilenangaben. Sowohl in .xml als auch in den .cpp kann die Postion mit dem Notepad(=Editor) angezeigt werden (Ansicht > Statusleiste)


    Ausbildung in der Kolonie:

    Ich hab beobachtet, dass es reicht, wenn der Lehrer den letzten VOLLSTAENDIGEN Zug vor Ende der Ausbildungszeit INNERHALB der Kolonie verbringt, damit der Schueler den Job annehmen kann

    Schwelle= Grundwert * Spielgeschwindigkeit * ((1 + Erhoehung/100) ^ N)

    Grundwert: 30 [= EDUCATION_THRESHOLD in Datei XML\GlobalDefines.xml in Zeile 289]
    Spielgeschwindigkeit: Maraton 3 Epic 1.5 Normal 1 Quick 0.75
    Erhoehung: 20 [= EDUCATION_THRESHOLD_INCREASE in Datei XML\GlobalDefines.xml in
    Zeile 285]
    N: Zahl der bereits vollstaendig ausgebildeten Kolonisten des Spielers
    Hinweis: Mit Patch 1.01f wird nun fuer jede Stadt einzeln gezaehlt.(Siehe Patchnotes)


    Ertrag:

    Schulhaus:3 College:6 Uni:12 [siehe z. B. XML\Buildings\CIV4BuildingInfos.xml Zeile 2782]
    Schuldknecht:-1 Krimineller:-2 KonvertierterUreinwohner: -1
    [siehe z. B. \XML\units\CIV4UnitInfos.xml Z 359
    Bonus:
    die Haelfte [= MAX_REBEL_YIELD_MODIFIER in XML\GlobalDefines.xml Z 712] der
    rebelischen Stimmung: bis zu 50%
    50% falls Gruendervater(Poltical #11) DeTocqueville vorhanden

    Beispiel: Schuldknecht in College: 5 Buecher
    Freier Kolonist in Uni mit 100% rebelischer Stimmung und Tocqueville: 24 Buecher



    Eine Umwandlung findet statt, sobald der bei jedem Zug gesammelte Ertrag groesser oder gleich der Schwelle ist.

    Quelle
    1.) Schwelle=Threshold

    Die Berechnung der Schwelle findet in CvPlayer::educationThreshold [ Datei CvGameCoreDLL\CvPlayer.cpp Zeile 4822] statt. Die Variable EDUCATION_THRESHOLD wird aus [XML\GlobalDefines.xml Z 285] gelesen. Die Funktion CvPlayer::getEducationThresholdMultiplier ist in [CvGameCoreDLL\CvPlayer.cpp Z 5082] und liefern am Anfang 100 [CvGameCoreDLL\CvPlayer.cpp Z 288] (siehe 3.)

    Ausserdem wird die Spielgeschwingikeit beachtet: CvGameSpeedInfo::getGrowthPercent aus [CvGameCoreDLL\CvInfos.cpp Z 6129] ueber CvGameSpeedInfo::read in [CvGameCoreDLL\CvInfos.cpp Z 6172] aus der Datei [XML\GameInfo\CIV4GameSpeeddInfo.xml] iGrowthPercent: Maraton 300 Epic 150 Normal 100 Quick 75

    Die Beeinflussung durch das Zeitalter ist konstant 100: CvEraInfo::getGrowthPercent in [CvGameCoreDLL\CvInfos.cpp Z 10741] ueber CvEraInfo::read in [CvGameCoreDLL\CvInfos.cpp Z 10823] aus [XML\GameInfo\CIV4EraInfo.xml Zeile 22] iGrowthPercent = 100


    2.) Ertrag=Yield

    Der Grundertrag wird in CvCity::getProfessionOutput [CvGameCoreDLL\CvCity.cpp Z 2745] berechnet. CvUnitInfo::getYieldModifier macht in diesen Fall nichts, da es bei keiner Einheit einen prozentualen Bonus gibt(Kein „Meisterstudent“).
    CvUnitInfo::getYieldChange [CvGameCoreDLL\Cvinfos.cpp Z 2783:]
    liest ueber CvUnitInfo::read [CvGameCoreDLL\Cvinfos.cpp Z 3275]
    YieldChanges aus: siehe hierzu z. B. [\XML\units\CIV4UnitInfos.xml Z 359]

    CvBuildingInfo::getProfessionOutput [CvGameCoreDLL\Cvinfos.cpp Z 4168]
    liest ueber read in [CvGameCoreDLL\Cvinfos.cpp Z 4627]
    iProfessionOutput aus XML\Buildiings\CIV4BuildingInfos.xml Zeile 2782 usw

    Der Modifikator wird in CvCity::getBaseYieldRateModifier [CvGameCoreDLL\CvCity.cpp Z 3883] berechnet. Eine Reihe von Modifikatoren ist 0. Der REBEL_YIELD_MODIFIER wird entsprehend addiert.
    Der ausserdem enthaltene CvPlayer::getYieldRateModifier [CvGameCoreDLL\CvPlayer.cpp Z 6128] wird durch Gruendervater modifiziert:

    Gruendervaterzuordnung durch:
    CvGame::setFatherTeam [CvGameCoreDLL\CvGame.cpp Z 6447]
    CvPlayer:: processFather [CvGameCoreDLL\CvPlayer.cpp Z 4486]
    CvPlayer:: processTrait [CvGameCoreDLL\CvPlayer.cpp Z 4363]
    Rechnung in 4415:
    CvPlayer::changeYieldRateModifier [CvGameCoreDLL\CvPlayer.cpp Z 6148]
    Mit Infos aus:
    CvTraitInfo::getYieldModifier [CvGameCoreDLL\CvInfos.cpp Z 6447]
    durch read [Z 9386] von YieldModifiers in
    [XML\Civilizaitons\CIv4Traitinfos.xml Z 2079]

    3.) Sammeln=Storage

    Jeden Zug wird CvCity::doTurn [CvGameCoreDLL\CvCity.cpp Z 612] aufgerufen, was wiederum CvCity::doYields [CvGameCoreDLL\CvCity.cpp Z 5829] aufruft. im Fall case YIELD_EDUCATION wird Grundertrag*Modifikator der Einheit angerechnet:
    CvUnit::getYieldStored und CvUnit::setYieldStored in [CvGameCoreDLL\CvUnit.cpp Z 10695]. Letzteres ueberprueft in Zeile 10727 ob die Schwelle (siehe 1.) ueberschritten worden ist.

    Falls wahr, nacheinander: CvDLLButtonPopup:: OnEscape [CvDllButtonPopup.cpp Zeile 385] case BUTTONPOPUP_CHOOSE_EDUCATION
    CvCity::doTask [CvGameCoreDLL\CvCity.cpp Z 873] case TASK_EDUCATE

    CvCity::educateStudent [CvGameCoreDLL\CvCity.cpp Z 8338]
    wandelt die Einheit um und setzt den Multiplikator hoch.

    Die Studiengebuehren stecken in der Variablen m_aiSpecialistWeights und Funktionen CvCity::getSpecialistTuition CvCity::doSpecialists.


    Von Humbold

    Von Humbold (Exploration #9) gibt nur 50% Bonus auf die Hammerproduktion beim Bau von Hochschule und Uni und hat keinen Einfluss auf die Ausbildungsdauer.
    Siehe hierzu Civilizations\CIV4TraitInfos.xml Zeile 2327 :

    Code:
    <BuildingProductionModifiers>
      <BuildingProductionModifier>
        <BuildingClass>BUILDINGCLASS_COLLEGE</BuildingClass>
        <iModifier>50</iModifier>
      </BuildingProductionModifier>
      <BuildingProductionModifier>
        <BuildingClass>BUILDINGCLASS_UNIVERSITY</BuildingClass>
        <iModifier>50</iModifier>
       </BuildingProductionModifier>
    </BuildingProductionModifiers

    Indianerausbildung:

    Ausbildungsdauer = Grundwert * ( ( 1 + Erhoehung/100 ) ^ (N+1))

    Grundwert: Freier Kolonist 3 [= iNativeLearnTime in Datei Units\CIV4UnitInfo.xml in Zeile 130]
    Schuldknecht 4
    Krimineller 7
    Konvertierter Ureinwohner 3 (Wusst ich gar nicht, dass das geht)
    ( Rest -1 , erzeugt wahrscheinlich einen Lernabbruch)

    Erhoehung = 50 [ =NATIVE_TEACH_THRESHOLD_INCREASE in Datei XML\ GlobalDefines.xml in Zeile 301 ]

    N ist die Zahl der bereits im Indianerdorf ausgebildeten Kolonisten. Ist vermutlich fuer jedes einzelne Dorf separat, zählt aber auch die Ausbildungen der Europaeischen Mitspieler.
    Aenderung durch die Spielgeschwindigkeit findet statt.


    Quelle:

    Im Programm wird erst geprueft, ob der Kolonist lernen kann ( Bewegungspunkte uebrig, Diplomatie): Funktion CvUnit::canLearn und CvUnit::learn [Datei CvGameCoreDLL\CvUnit.cpp Zeile 3671 und 3692]

    Dann gehts in die Funktion CvUnit::doLiveAmongNatives [CvUnit.cpp Zeile 3722], die schraubt zu erst den Multiplikator hoch: setTeachUnitMultiplier [CvGameCoreDLL\CvCity.cpp Zeile 8055], der zu Spielbeginn in [CvCity.cpp Zeile 339] auf 100 gesetzt wurde. Der Wert NATIVE_TEACH_THRESHOLD_INCREASE steht in [XML\ GlobalDefines.xml Zeile 301 ]
    Dann verschwindet die Einheit fuer ein paar Züge.

    Die Zahl der Zuege wird in CvUnit::getLearnTime [CvUnit.cpp Zeile 3807 ] brechnet. Dabei verwendet: CvUnitInfo::getLearnTime [CvInfos.cpp Z 2599] liest vermutlich ueber die Funktion read [CvInfos.cpp Z 3209] den Wert iNativeLearnTime aus [Units\CIV4UnitInfo.xml Z 130]
    getTeachUnitMultiplier wie oben in [CvCity.cpp Z 8050]

    Am Schluss der Umwandlung der Einheit CvUnit::doLearn [CvUnit.cpp Z 3746] mit Infos welcher Spezialist rauskommen soll aus CvUnit::getLearnUnitType [CvGameCoreDLL\CvUnit.cpp Z 3764]


    Verteilung der Spezialisierungen bei Indianern

    Offenbar steht unter Civilizations/ Civ4CivilizationsInfos.xml
    mit welcher Wahrscheinlichkeit eine Spezialisierung bei einem Stamm angeboten wird. Das ganze wird wahrscheinlich bei der Kartenerzeugung abgearbeitet.
    Fuer eine Wichtung des Tabackpflanzers bei den Tupi gilt in Zeile 1668:

    Code:
    <TeachUnitClass>
      <UnitClassType>UNITCLASS_TOBACCO_PLANTER</UnitClassType>
      <iWeight>3</iWeight>
    </TeachUnitClass>
    Weiteres:
    Training on the Job gibts nicht mehr. ( Im original Colo gabs ne Chance von 1/40 , dass ein freier Kolonist Spezialist in dem Beruf wird, den er gerade ausuebt.
    Geändert von wolf82 (09. August 2009 um 12:27 Uhr)

  2. #2
    Talking Bull Avatar von Writing Bull
    Registriert seit
    01.10.08
    Beiträge
    21.376
    Hei Wolf - herzlich willkommen hier im Forum!

    Schau doch mal bitte in das Bildungs-Kapitel in der CivWiki sowie in den Thread zur NB-Mod, da müssten dir viele deiner Fragen beantwortet werden.

    Vielleicht fragst du danach noch mal konkret nach den Punkten nach, die noch offen sind.

  3. #3
    Registrierter Benutzer
    Registriert seit
    22.12.08
    Beiträge
    6
    Also ich hab da schon ein bischen rumgeschaut.

    Schulausbildung zu verstehen wird aufwendiger, weil man da die ganzen Ertragsfunktionen durchgehen muss.

    Mir waer schon geholfen wenn mir jemand sagt in welcher Funktion getestet wird, ob der gesammelte Ertrag ueber der Grenze liegt.
    Geändert von wolf82 (27. Dezember 2008 um 11:47 Uhr)

  4. #4
    Registrierter Benutzer
    Registriert seit
    22.12.08
    Beiträge
    6
    So. Hab einige Zeit reingesteckt. Is jetzt soweit fertig. Ueber Anmerkungen wuerd ich mich freuen.

    Vielleicht kann man ja die Formel und die xml-Addressen in die ColoWiki aufnehmen.

  5. #5
    Talking Bull Avatar von Writing Bull
    Registriert seit
    01.10.08
    Beiträge
    21.376
    Zitat Zitat von wolf82 Beitrag anzeigen
    So. Hab einige Zeit reingesteckt. Is jetzt soweit fertig. Ueber Anmerkungen wuerd ich mich freuen.

    Vielleicht kann man ja die Formel und die xml-Addressen in die ColoWiki aufnehmen.
    Ups! Was für eine umfangreiche Dokumentation. Ich komme wegen der Arbeit an TAC erst mal nicht dazu, dass in die Wiki aufzunehmen. Vorschlag: Registrier dich dort und setze dann vom Bildungs-Artikel aus einen internen Link zu einem neuen Artikel "Dokumentation der Formeln zur Bildung" (o.ä.), in den du diese Angaben dann überträgst.

    Was hälst du davon?

  6. #6
    PAE-Piechopath Avatar von Scanner
    Registriert seit
    13.10.08
    Ort
    In der Mitte von MA-LU-KA
    Beiträge
    5.761

    1.01f spezialierung bei Ureinwohner

    Hallo

    Habe CivCol seit ein paar Tagen aus der Pyramide.
    Mit dem aktuellen 1.01f patch läuft alles sauber

    Daher denke ich, das ich die Funktionen noch nicht komplett kenne.

    Wie bilde ich meinen Konvertierten Ureinwohner denn bei anderen Ureinwohnern aus? Ich bekomme keine Option angezeigt, auch nicht wenn ich mit einem Planwagen die gewollten Ressourcen in das dorf stelle, auch nicht wenn ich beide einheiten als gruppe zusammenstelle.

    jetzt bin ich ja schon civIV-erfahren, aber finde kein menue das mir das zulaesst.

    in der pädie steht drin, das ich nur die einheit in das indianerdorf ziehen muss...
    scheint nicht so zu sein.

    hinweise, tips? was mach ich falsch?

    ps.:
    ueber die suche finde ich keinen thread mit dem inhalt.

  7. #7
    Talking Bull Avatar von Writing Bull
    Registriert seit
    01.10.08
    Beiträge
    21.376
    Zitat Zitat von Scanner Beitrag anzeigen
    Wie bilde ich meinen Konvertierten Ureinwohner denn bei anderen Ureinwohnern aus? Ich bekomme keine Option angezeigt
    Hi Scanner, schau mal bitte in die ReadMe des Patches. Ich tippe drauf, dass im gepatchten Spiel das Ausbilden von Konvertierten Ureinwohnern in Indianersiedlungen nicht mehr möglich ist ...

  8. #8
    PAE-Piechopath Avatar von Scanner
    Registriert seit
    13.10.08
    Ort
    In der Mitte von MA-LU-KA
    Beiträge
    5.761
    da hab ich die readme ja doch gelesen...

    aber erst jetzt, wo du es sagst, faellt es mir auf.

    danke

    schade, aber ich kann verstehen wenn ureinwohner keine lust haben, "fahnenfluechtige" auszubilden^^ ich wuerde die verraeter auch nicht lehren wollen.

Berechtigungen

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