Bewegungskosten

Vom kleinen n00b zum erfahrenen Spieler ... jeder darf hier seine Fragen stellen ...

Moderatoren: Tenobaal, Raufbold

Bewegungskosten

Beitragvon extra » 01.11.2010, 21:55

Wie genau werden die Kosten für die Bewegungen errechnet?
[13:47] <[IGEWS]Trogan> kleine augen check
[13:47] <[IGEWS]Trogan> kleine herzen scheck
[13:47] <daniela> trogan du bist seltsam
extra
Abtrünnige Foren-Fledermaus
Abtrünnige Foren-Fledermaus
 
Beiträge: 337
Registriert: 16.12.2008, 22:22

Re: Bewegungskosten

Beitragvon GIGX » 01.11.2010, 22:20

was meinste denn genau?
brrzhdaaaaaaaaaah!
Schlagt ihm den Kopf ab, ich brauch n neuen Aschenbecher!
(23:23:08) • Omaha_trinken is now known as Omaha_schluckt
(23:23:17) (@Omaha_schluckt) so weg...
(23:23:24) (@Kackbratze[biiru]) du schluckst? :D
(23:23:46) (@gx[biiru]) kommt nach schnitte^^
(23:24:14) (@Schnitte) :-o
(23:24:22) (@Kackbratze[biiru]) das is der richtige smiley
GIGX
Freier Moderator
Freier Moderator
 
Beiträge: 948
Registriert: 22.09.2004, 07:19
Wohnort: Hamsterkäfig

Re: Bewegungskosten

Beitragvon extra » 01.11.2010, 22:25

meine die formel für den nahrungsverbrauch einer bewegung

z.b. wieviel nahrung kostet es 100 fks über ein feld zu bewegen
[13:47] <[IGEWS]Trogan> kleine augen check
[13:47] <[IGEWS]Trogan> kleine herzen scheck
[13:47] <daniela> trogan du bist seltsam
extra
Abtrünnige Foren-Fledermaus
Abtrünnige Foren-Fledermaus
 
Beiträge: 337
Registriert: 16.12.2008, 22:22

Re: Bewegungskosten

Beitragvon louto » 01.11.2010, 22:33

var food = Math.ceil(MINUTESPERCAVE * maxSpeedFactor * uamoves[movementID]['speedfactor']* tmpdist *
unitRations * FOODPERCAVE * uamoves[movementID]['foodfactor']);

Erklärungen:
Math.ceil = aufrunden
MINUTESPERCAVE = dauer einer bewegung zur direkten nachbarhöhle bei speed 1 (aktuell 10)
maxSpeedFactor = Geschwindigkeit der langsamstem eh = höchster geschwindigkeitsfaktor
uamoves[movementID][speedfactor] = Faktor der Geschwindigkeit für die Bewegungsart (z.b. bei angreifen = 1, spionieren = 0.5, übernahme = 5)
tmpdist = die effektive entfernung die zurückgelegt wird
unitRations = Summe des Reiseproviants aller Eh
FOODPERCAVE = 0.036666666666667 <-- warum genau der faktor müsste ich jetzt auch nachschauen ;)
uamoves[movementID][foodfactor] = Bewegungskostenfaktor (falls bestimmte bewegungen mehr n kosten, z.b. angreifen/bringen = 2 (für hin- und rückweg), verschieben = 1)

nachlesen kann man die funktion und die genaueren formeln z.b. im quelltext von "bewegungen"
Benutzeravatar
louto
Einäugiger Foren-Bettler
Einäugiger Foren-Bettler
 
Beiträge: 160
Registriert: 10.03.2005, 14:51
Wohnort: Toblach

Re: Bewegungskosten

Beitragvon extra » 01.11.2010, 23:15

vielen dank
[13:47] <[IGEWS]Trogan> kleine augen check
[13:47] <[IGEWS]Trogan> kleine herzen scheck
[13:47] <daniela> trogan du bist seltsam
extra
Abtrünnige Foren-Fledermaus
Abtrünnige Foren-Fledermaus
 
Beiträge: 337
Registriert: 16.12.2008, 22:22

Re: Bewegungskosten

Beitragvon extra » 02.11.2010, 17:13

31007 nahrung=(0,0366666666667*1*1*3000*1,2*(1+0)*10*26,1*(1+(-0,1)))

dieses rechenbeispiel zeigt die nahrungskosten von 27|55 nach 1|1

es stimmt mit dem IG-Ergebnis nur mit der (26,1) als Entfernungsfaktor
die entfernung ist in wirklichkeit jedoch 26.6833281283 (damit wäre es 31700 Nahrung)
(zumindest nach folgender function:
function getDistanceByCoords($srcX, $srcY, $tarX, $tarY){

/* Using torus edge conditions */
$size = getMapSize();
$dim_x = ($size['maxX'] - $size['minX'] + 1)/2;
$dim_y = ($size['maxY'] - $size['minY'] + 1)/2;

$xmin = $dim_x - abs(abs($srcX - $tarX) - $dim_x);
$ymin = $dim_y - abs(abs($srcY - $tarY) - $dim_y);

return sqrt($xmin * $xmin + $ymin * $ymin);
}

was mach ich falsch?


erklärung zur formel:
=(0,0366666666667 <--FOODPERCAVE
*1 <--eh/ressis-verschieben. speed-faktor 1
*1 <--eh/ressis-verschieben. nahrungs-faktor 1
*3000 <--10000 FKs * 0,3 Proviant
*1,2 <--Geschwindigkeit
*(1+0) <--Geschwindigkeitsfaktor
*10 <-- MINUTESPERCAVE
*26,1 <-- eigentlich entfernung (??)
*(1+(-0,1)))<-- Nahrungsfaktor (aktuell -0.1)
[13:47] <[IGEWS]Trogan> kleine augen check
[13:47] <[IGEWS]Trogan> kleine herzen scheck
[13:47] <daniela> trogan du bist seltsam
extra
Abtrünnige Foren-Fledermaus
Abtrünnige Foren-Fledermaus
 
Beiträge: 337
Registriert: 16.12.2008, 22:22

Re: Bewegungskosten

Beitragvon louto » 02.11.2010, 17:40

bei bewegungen über weite strecken wird weniger nahrung verbraucht...

distance = wie von dir berechnet
var tmpdist = 0;
var i = 0;
if(distance > 15){
distance = distance - 15;
tmpdist = 15;
if(Math.floor(distance/5)<11)
tmpdist += (distance % 5) * (1-0.1*Math.floor(distance/5));

for(i = 1; i <= Math.floor( distance / 5) && i < 11; i++){
tmpdist += 5*(1-0.1*(i-1));
}
}else{
tmpdist = distance;
}


edit: außerdem gilt für den bewegungskostenfaktor:
FOODPERCAVE = 0,03666666667*(1+bewegungskostenfaktor)
Benutzeravatar
louto
Einäugiger Foren-Bettler
Einäugiger Foren-Bettler
 
Beiträge: 160
Registriert: 10.03.2005, 14:51
Wohnort: Toblach


Zurück zu Fragen zum Spiel

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste