• Hallo Besucher!

    Du bist neu im Forum? Dann registriere dich hier, um Diskussionen beizutreten oder eigene Themen zu erstellen. Für die Registrierung ist es erforderlich, dass du einen Spielaccount bei Die Stämme hast.

    Andernfalls kannst du dich hier direkt einloggen.

    Falls du dein Passwort vergessen hast, kannst du hier ein neues Passwort anfordern.

[PHP-Source] Server 3 Koordinaten nach x/y

DeletedUser

Gast
Code:
	function convert_coords_to_s3($x, $y)
	{
		if(abs($x) > 449 || abs($y) > 449) {
			return false; // out of range
		}
		$x *= 2;
		$y *= 2;
		$con = floor($y / 100) * 10 + floor($x / 100);
		$sec = (floor($y / 10) % 10) * 10 + (floor($x / 10) % 10);
		$sub = ($y % 10) / 0.4 /* / 2 * 5 */ + ($x % 10) / 2;
		return array('con' => $con, 'sec' => $sec, 'sub' => $sub);
	}
	
	function convert_coords_from_s3($con, $sec, $sub)
	{
		if($con < 0 || $con > 99 || $sec < 0 || $sec > 99 || $sub < 0 || $sub > 24) {
			return false; // invalid s3-coords
		}
		$x = ($con % 10) * 50 + ($sec % 10) * 5 + ($sub % 5);
		$y = floor($con / 10) * 50 + floor($sec / 10) * 5 + floor($sub / 5);
		return array('x' => $x, 'y' => $y);
	}
Wer über den Code meckern will:
Es ist mir so ****** egal *g*

Ausnahmweise mal public domain.
 

DeletedUser

Gast
also ich hab mal folgendes versucht:
function convert_coords_from_s3($con, $sec, $sub)
{
if($con < 0 || $con > 99 || $sec < 0 || $sec > 99 || $sub < 0 || $sub > 24) {
return false; // invalid s3-coords
}
$x = ($con % 10) * 50 + ($sec % 10) * 5 + ($sub % 5);
$y = floor($con / 10) * 50 + floor($sec / 10) * 5 + floor($sub / 5);
return array('x' => $x, 'y' => $y);
}

wie kann ich die coords, die die funktion berechnet hat, ausgeben bzw. weiterverarbeiten lassen? wenn ich in einem anderen script die funktion einbinde und dann mit $x und $y weiterarbeiten will klappts nicht... wenn ich sie ausgeben will kommt nur ein leeres feld.
 

DeletedUser

Gast
Cool, ich versteh rein gar nix. Wozu brauch man irgendwas von dem was hier gebastelt wurde? :S
 

DeletedUser

Gast
Gesichtsmofa schrieb:
Cool, ich versteh rein gar nix. Wozu brauch man irgendwas von dem was hier gebastelt wurde? :S

und ich verstehe nicht, warum leute, die keine ahnung davon haben, ihren kommentar dazu abgeben müssen :S
 

DeletedUser

Gast
Weil es mich evtl interessiert auch wenn ich es nicht kapiere oder gerade darum?
 

DeletedUser

Gast
Speziknight schrieb:
also ich hab mal folgendes versucht:
function convert_coords_from_s3($con, $sec, $sub)
{
if($con < 0 || $con > 99 || $sec < 0 || $sec > 99 || $sub < 0 || $sub > 24) {
return false; // invalid s3-coords
}
$x = ($con % 10) * 50 + ($sec % 10) * 5 + ($sub % 5);
$y = floor($con / 10) * 50 + floor($sec / 10) * 5 + floor($sub / 5);
return array('x' => $x, 'y' => $y);
}

wie kann ich die coords, die die funktion berechnet hat, ausgeben bzw. weiterverarbeiten lassen? wenn ich in einem anderen script die funktion einbinde und dann mit $x und $y weiterarbeiten will klappts nicht... wenn ich sie ausgeben will kommt nur ein leeres feld.

du machst folgendes:
Code:
// Aufruf der Funktion
$coords = convert_coords_from_s3($con, $sec, $sub);
$x = $coords["x"];
$y = $coords["y"];
 

DeletedUser

Gast
So hab mal versucht das von exe in MSL umzusetzen, jedoch stimmt was bei dne Y-cords net. Bei mri hat nen ganzer $sec den gleichen Y-Wert.

Code:
alias abc_to_xy {

  var %a = $gettok($1,1,58), %b = $gettok($1,2,58), %c = $gettok($1,3,58)
;Setz halt die 3 Daten.

  var %x = $calc((%c % 5) + ((%b % 10) * 5) + ((%a % 10) * 10 * 5))
;X-berehcnung ist richtig, soweit ich nachgerechnet hab

  var %y = $calc($floor($calc(%c/5)) + $floor($calc(%b / 10)) * 5 + $floor($calc(%a / 10)) * 10 * 5)
;Hier muss der Fehler sein

  return $+(%x,$chr(124),%y)
;returnen im x|y format

}
 

DeletedUser

Gast
brutha schrieb:
Code:
// Aufruf der Funktion
$coords = convert_coords_from_s3($con, $sec, $sub);
$x = $coords["x"];
$y = $coords["y"];
Ich würde das eher so machen:
Code:
list($x, $y) = convert_coords_from_s3($con, $sec, $sub);
:D
 

DeletedUser

Gast
wurde schon ein Umrechnungstool dazu geschrieben, für solche, die nicht im Computerhimmel leben? :)
 

DeletedUser

Gast
könnte man das vllt auch so einrichten, dass die koords alle in einem feld stehen ? :) das wäre dann einfacher zum kopieren^^
 

DeletedUser

Gast
Ja stimmt, und das automatische Vervollständigen durch den Browser wäre auch viel besser nutzbar :D
 

DeletedUser

Gast
ICh hätte da mal ne Frage:ICh programmiere momentan mit Visual Basic und kann daher mit php nichts anfangen nur würd ich gerne wissen wie die formel den mathematisch aussehen würde heißt zb.:
Wenn x= 34 (Kontinent) ; y= 12 (Sektor); z= 5 (Dorf)
Wie könnte man das jetzt in eine Formel mit x;y;z bringen?
 

DeletedUser13905

Gast
Rotherich schrieb:
ICh hätte da mal ne Frage:ICh programmiere momentan mit Visual Basic und kann daher mit php nichts anfangen nur würd ich gerne wissen wie die formel den mathematisch aussehen würde heißt zb.:
Wenn x= 34 (Kontinent) ; y= 12 (Sektor); z= 5 (Dorf)
Wie könnte man das jetzt in eine Formel mit x;y;z bringen?
Am besten du fragst oobdoo ;)
 

DeletedUser

Gast
Weißer_Drache schrieb:
Rotherich schrieb:
ICh hätte da mal ne Frage:ICh programmiere momentan mit Visual Basic und kann daher mit php nichts anfangen nur würd ich gerne wissen wie die formel den mathematisch aussehen würde heißt zb.:
Wenn x= 34 (Kontinent) ; y= 12 (Sektor); z= 5 (Dorf)
Wie könnte man das jetzt in eine Formel mit x;y;z bringen?
Am besten du fragst oobdoo ;)
Jo, muß ich nachher ma raussuchn... :)
 

DeletedUser47438

Gast
hey, ich suche auch nach der mathematischen formel dafür...also um x:y:z zum xy-system umzurechnen

aber auf der seite finde ich nur sachen wie:

Parser-Fehler (Unbekannter Fehler): x = \left(con \bmod 10 \right) \cdot 50 + \left(sec \bmod 10 \right) \cdot 5 + \left(sub \bmod 5 \right)
Parser-Fehler (Unbekannter Fehler): y = \left\lfloor \frac{con}{10} \right\rfloor \cdot 50 + \left\lfloor \frac{sec}{10} \right\rfloor \cdot 5 + \left\lfloor \frac{sub}{5} \right\rfloor

und damit kann ich als mathematik grundkurs (und selbst das ist 10 jahre her) leider nichts anfangen :) ich finde einfach nicht heraus was bmod, cdot, oder left in einer "normalen" mathematischen formel bedeuten sollen :)))

danke schonmal im vorraus

doro
 

DeletedUser47438

Gast
also, ich habe jetzt die halbe nacht gegoogelt und ge-wikipediat um zu sehen, was mir das sagen soll, und habe 2 formeln geschrieben, die excel auch verstanden hat, die allerdings laut versuchen falsch zu sein scheinen...

ich möchte im grossen und ganzen laufzeiten berechnen, und zwar für viele dörfer auf mehrere ziele (weil es keinen lz-rechner gibt, den ich dafür benutzen kann, will ichs mir selber bauen)

ich brauche dazu 2 formeln (und zwar in excel-schreibweise), da er für W9 laufen soll.

erstens die formel der Koo-umrechnung von x:y:z in xy.
und zweitens dann die laufzeitrechnung

hier sind meine irgendwie falschen ergebnisse:

koo-umrechnung (A1=x, B1=y, C1=z):
x=REST(A1;10)*50+REST(B1;10)*5+REST(C1;5)
y==ABRUNDEN((A1/10);0)*50+ABRUNDEN((B1/10);0)*ABRUNDEN((C1/5);0)

und die laufzeitformel ist bei mir (X1, X2, Y1, Y2 werden dann durch excel felder ersetzt):
=((((-X1-X2)^2+(-Y1-Y2)^2)^(1/2))*7,5)


die orginalformeln sind hier http://wiki.die-staemme.de/wiki/Koordinatenberechnungen
und im speziellen habe ich versucht diese formeln fürs excel umzuschreiben:

$x = ($con % 10) * 50 + ($sec % 10) * 5 + ($sub % 5);

$y = floor($con / 10) * 50 + floor($sec / 10) * 5 + floor($sub / 5);



was ich überhaupt nicht verstanden habe umzuschreiben, war die formel für minuten in stunden minuten und sekunden....


würde mich über hilfe oder nen denkanstoss freun....

und nicht vergessen, eure doro war nur mathe grundkurs, und hat von programiersprachen keinen blassen schimmer. bin froh, das ich das excel zum dividieren bringen kann :)

lg

doro
 

DeletedUser14162

Gast
ich verschieb mal nach spielerprojekte, da wird dir eher geholfen.
 
Oben