Wollte schon sagen, dass es nicht funktioniert (hatte mir vorhin mal den Quellcode angeschaut), aber ist ja bekannt, wie mir eine Suche im Forum zeigte.
Also wird die Bestechung noch überarbeitet? Die Resistance wird ja bis jetzt noch nicht genutzt.
Also sollten wir ja mal ausklamüsern, wie die W'keit ungefähr aussehen soll:
Also gebe ich mal ein paar Beispiele an, wie die Wahrscheinlichkeiten sein könnten (Diskussionsbedarf) und dann ungefähr, wie man es implementieren könnte. Für Anregungen immer offen
Fall 1)
* Wenn man Ressorcen im Wert von 5000 Credits (Variable nCredits) überreicht
* nRelationFromMajor = nRelationCorruptedMajor
* ohne Restiance (die Werte in Klammern sind mit Kommunikationsnetzwerk)
Rasse korrupt: 50% (25%)
Rasse normal: 30% (15%)
Rasse nicht korrupt: 10% (5%)
Fall 2)
* Wenn man Ressorcen im Wert von 10000 Credits (Variable nCredits) überreicht
* nRelationFromMajor = nRelationCorruptedMajor
* ohne Restiance (die Werte in Klammern sind mit Kommunikationsnetzwerk)
Rasse korrupt: 80% (40%)
Rasse normal: 60% (30%)
Rasse nicht korrupt: 40% (20%)
Fall 3)
* Wenn man Ressorcen im Wert von 5000 Credits (Variable nCredits) überreicht
* nRelationFromMajor = nRelationCorruptedMajor - 20
* ohne Restiance (die Werte in Klammern sind mit Kommunikationsnetzwerk)
Rasse korrupt: 30% (15%)
Rasse normal: 10% (5%)
Rasse nicht korrupt: 0% (0%)
Fall 4)
* Wenn man Ressorcen im Wert von 10000 Credits (Variable nCredits) überreicht
* nRelationFromMajor = nRelationCorruptedMajor - 20
* ohne Restiance (die Werte in Klammern sind mit Kommunikationsnetzwerk)
Rasse korrupt: 60% (30%)
Rasse normal: 40% (20%)
Rasse nicht korrupt: 20% (10%)
Weitere Anmerkungen:
* W'keit maximal 99% (mind. 1%, dass es so bleibt, wie es war)
* W'keit minimal 0% (bei mit 1% könnte man es ausnutzen, indem man jede Runde zig ganz kleine Geschenke an alle Minors verteilt)
* Geld müsste immer vom Bestecher abgezogen werden (also auch nicht zurück kommen)
* unter gewissen Umständen dem Besitzer zukommen, falls der Minor Mitglied ist; vllt zwischen 20-50% der Fälle; oder nur ein Anteil des Geldes, der Rest bleibt auf dem Planeten

* unter Umständen eine Nachricht an den Besitzer, nicht immer, aber meistens
Code ungefähr:
aus der MinorAI.cpp TryCorruption():
statt
Code: Alles auswählen
...
for (int i = 0; i <= (USHORT)nCredits / 250; i++)
{
nRelationDiff = nRelationFromMajor - nRelationCorruptedMajor;
nValue = rand()%100 + nRelationDiff + nCredits / 750;
// war die Bestechung erfolgreich?
if (nValue > nCorruptionValue)
break;
}
if (nValue > nCorruptionValue)
...
wird
Code: Alles auswählen
nRelationDiff = nRelationFromMajor - nRelationCorruptedMajor;
nValue = 180 - (2 * nCorruptionValue) + nRelationDiff + (nCredits * 6) / 1000;
if (nValue <= 0) {
nValue = 0;
} else {
if (Kommunikationsnetzwerk) {
nValue /= 2;
}
if (nValue > 99) {
nValue = 99;
}
}
if (rand() % 100 < nValue) {
... hat geklappt ;-)
}
zur Diskussion,
sany