JaBoG32 ATC

Diskussionen, Hinweise, Feedback, usw. rund um LockOn Mods und Add-Ons.

Moderator: JaBoG32 Stab

JaBoG32_Chrissi
Site Admin
Beiträge: 6858
Registriert: 15. Jun 2003, 16:43

Beitrag von JaBoG32_Chrissi » 2. Apr 2005, 11:36

Mhh... Oki - Ich werd mal anfangen und meld mich dann wieder bei dir, falls es Probleme geben sollte ;)
2. JaBoG32 "Fighting Wildcats"

Gruß, Chrissi aka Kichi :D
Our Dreams are Wings

Bild

JaBoG32_Chrissi
Site Admin
Beiträge: 6858
Registriert: 15. Jun 2003, 16:43

Beitrag von JaBoG32_Chrissi » 2. Apr 2005, 12:07

Hi Zillion, :)

Hier mal der erste Stoß:

[codexm0]Suhumi 12 = X -219989.3 Z 563267.6 ELEV 20
Suhumi 30 = X -221086.0 Z 565513.5 ELEV 20

Gudauta 33 = X -197810.8 Z 517061.1 ELEV 26
Gudauta 15 = X -195624.1 Z 515850.1 ELEV 26

Sochi 06 = X -165212.8 Z 460872.1 ELEV 35
Sochi 24 = X -163751.7 Z 463620.6 ELEV 35

Sochi 02 = X -165428.4 Z 462537.9 ELEV 35
Sochi 20 = X -163443.5 Z 463484.4 ELEV 35[/codexm0]

Zur Genauigkeit:

Ich hab meine Kamera so an der Runway aufgestellt, ist das in Ordnung? (war auf dem mittlersten "Betton-Platten-Rechteck")

[imgxm0]http://www.virtual-jabog32.de/z_sonstig ... t_1890.jpg[/imgxm0]
2. JaBoG32 "Fighting Wildcats"

Gruß, Chrissi aka Kichi :D
Our Dreams are Wings

Bild

Benutzeravatar
Zillion
Intermediate Member
Beiträge: 227
Registriert: 22. Apr 2004, 21:47

Beitrag von Zillion » 3. Apr 2005, 11:56

:D ,

Super Danke... Sind ja doch noch ein paar Runways zu machen... Ist natürlich doch erstmal mehr Arbeit als zuerst vermutet... jedenfalls reichts aus zum testen... fast

Denn ein Problem hab ich jetz noch, ich brauch dringend noch ein paar Koordinaten um die Karte neu zu vermessen. Dafür hatte ich mit dem Dirty schonmal 2 markante Vermessungs Punkte ausgemacht:

Einmal ganz nordwestlich und einmal ganz südöstlich:

[imga7v]http://www.polymoon.org/tobi/privat/vermessung.jpg[/imga7v]

sorry für die Qualität der jpg komprimierung :oops:

Jedenfalls wären die beiden Punkte eigentlich erstmal super...
Bild

Benutzeravatar
Zillion
Intermediate Member
Beiträge: 227
Registriert: 22. Apr 2004, 21:47

Beitrag von Zillion » 4. Apr 2005, 19:00

Moinsen,

Wahrscheinlich das letzte mal aus Japan denn morgen (-8h) ist mein letzter Tag, verdammt denn es hat echt gerockt... 8)

Unser ATC hat jetzt ein Login und geht das erste mal online auf unseren JaBoG32 ATC Server... :!: :!: :!:

Die Chat Funktion ist weiterhin für ATC Controller zu ATC Controller erhalten geblieben.

Nun müssen die empfangenen Messages getrennt werden, d.h. Chat Messages in den Chat, Data Messages auf die Flugzeuge... Ausserdem müssen Flugzeuge die kontrolliert werden sollen von denen getrennt werden, die nicht kontrolliert werden sollen...
Dafür brauch man dann noch ein Menü indem zwischen den Modi:

-AWACS Mode (Alle Flugzeuge werden kontrolliert)
-Team Mode (Rot, Blau oder bestimmte Namen werden kontrolliert)
-Sector Mode (Flugzeuge innerhalb eines Sectors werden kontrolliert)

ausgewählt werden kann. Danach kommt dann ein abschliessendes Settings Accept (Anti-Cheat-Handshake) und alle Controller starten gleichzeitig...

Könnte hier und da noch ein wenig kniffelig werden aber müsste eigentlich machbar sein.

Hab gerade eben die Überweisung an SimWare getätigt und bin dann, mit etwas Glück, am 08.04.05 Besitzer von FC...

machets jut

bis späterli

Zillion

P.S :lol: Rückt mal mit den Vermessungs Koordinaten + Mehr Runways raus :!: :!: :!:
Bild

JaBoG32_Chrissi
Site Admin
Beiträge: 6858
Registriert: 15. Jun 2003, 16:43

Beitrag von JaBoG32_Chrissi » 4. Apr 2005, 19:41

Hi, :D

Sauber - Klasse Zillion :D :D



[quotew5o]P.S Rückt mal mit den Vermessungs Koordinaten + Mehr Runways raus [/quotew5o]

Rest kommt bald ;) Es sei den es mag jemand anderer die Flughäfen auf der Krim abklappern - dann würde Ich much um das Kaukasusgebiet kümmern :D
2. JaBoG32 "Fighting Wildcats"

Gruß, Chrissi aka Kichi :D
Our Dreams are Wings

Bild

Benutzeravatar
JaBoG32_Laud
Professional
Beiträge: 5240
Registriert: 24. Nov 2003, 14:05

Beitrag von JaBoG32_Laud » 4. Apr 2005, 20:33

Ist ja wohl echt derb, dass sich bei so vielen Piloten/Rekruten niemand findet, der dem Zillion diese Arbeit abnimmt, damit der sich mit den wichtigeren Teilen des Programms beschäftigen kann.

Da muss es Chrissi machen, der selbst bis unter die Hutschnur mit Arbeit vollgeladen ist!

:spring: :bombe: :kotz:
Bild

Benutzeravatar
Zillion
Intermediate Member
Beiträge: 227
Registriert: 22. Apr 2004, 21:47

Beitrag von Zillion » 5. Apr 2005, 19:58

Ein letztes mal aus Fernost,

Wer nochmal ein wenig grübeln mag oder seine ActionScript Fähigkeiten verbessern will, kann gerne mal mit konzipieren.

[codesa4]// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
// JaBoG32 ATC Client Script
// version 1.0
//
// java server by derek clayton
// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

// *** general init
var incomingUpdated = false; // trace whether or not we need to scroll to the end of the incoming window
incoming = ""; // clear the HTML text field so it doesn't start with a blank <P> tag

// attach the scroll manager movie (see its child movie's enterframe event for scroll code)
// note that we only need the scroll manager because of text field bugs in r30 of the flash 5 player
attachMovie("processScroll", "processScroll", 0);

var click = new Sound(); // sound to play when user receives a message
click.attachSound("click");

var welcomeSound = new Sound(); // sound to play when user joins or leaves
welcomeSound.attachSound("welcome");

// turn off ugly yellow highlight on buttons
_focusrect = 0;

// *** creates a new socket and attempts to connect to the server
function connect () {
mySocket = new XMLSocket();
mySocket.onConnect = handleConnect;
mySocket.onClose = handleClose;
mySocket.onXML = handleIncoming;
// specify your server and port number here
if (!mySocket.connect(serverIP, 3245)) gotoAndStop("connectionFailed");
mySocket.host = host;
mySocket.port = port;
}

// *** event handler to respond to the completion of a connection attempt
function handleConnect (succeeded) {
if(succeeded) {
mySocket.connected = true;
gotoAndStop("chat");
Selection.setFocus("_level0.UI.outgoing");
} else {
gotoAndStop("connectionFailed");
trace("connection failed");
}
}

// *** event handler called when server kills the connection
function handleClose () {
incoming += ("the server at " + mySocket.host + " has terminated the connection.\n");
incomingUpdated = true;
mySocket.connected = false;
numClients = 0;
}

// *** event handler to receive and display incoming messages
function handleIncoming (messageObj) {

// display the received xml data in the output window
trace("--------new data received-----------");
trace(">>" + messageObj.toString() + "<<");
trace("-------- end of new data -----------");

// tell the text field manager it's time to scroll
incomingUpdated = true;
lastScrollPos = _root.commserver.UI.incoming2.scroll;

// check the time
var now = new Date();
var hours = now.getHours();
var minutes = now.getMinutes();
var seconds = now.getSeconds();
hours = (hours < 10 ? "0" : "") + hours;
minutes = (minutes < 10 ? "0" : "") + minutes;
seconds = (seconds < 10 ? "0" : "") + seconds;

// the server sends NUMCLIENTS any time a client connects or disconnects.
// if we find NUMCLIENTS in the xml object...
if (messageObj.firstChild.nodeName == "NUMCLIENTS") {
// ...then check if the incoming messages window is empty. if it is...
if(incoming == "") {
// ...then the user is new, so welcome them
incoming += ("<FONT COLOR='#507373'><B>welcome to JaBoG32 ATC 1.0, "
+ convertTags(userID) + "\n"
+ " connection time:</B> " + hours + ":" + minutes + ":" + seconds + "\n");
} else {
// otherwise, someone has arrived or departed, so tell the user
if(parseInt(messageObj.firstChild.firstChild.nodeValue) > numClients) {
// report the client arrival in the chat window
incoming += ("<FONT COLOR='#507373'><B>" + hours + ":" + minutes + ":"
+ seconds + " a new user has connected." + "</B></FONT>\n");
} else {
// report the client departure in the chat window
incoming += ("<FONT COLOR='#507373'><B>" + hours + ":" + minutes + ":"
+ seconds + " a user disconnected." + "</B></FONT>\n");
}
}
// finally, keep track of the number of clients and play a welcome sound
numClients = messageObj.firstChild.firstChild.nodeValue;
welcomeSound.setVolume(100);
welcomeSound.start();


} else {
// CONTROLLER node was found, so this is just a regular message.
if(messageObj.firstChild.nodeName == "CONTROLLER") {
// grab the user name and message from our xml object
var user = messageObj.firstChild.firstChild.nodeValue;
var message = messageObj.childNodes[1].firstChild.nodeValue;

// add the message to the chat window, with a time stamp
incoming += (hours + ":" + minutes + ":"
+ seconds + "<B>" + unescape(user) + "</B>>> " + addLinks(unescape(message)) + "\n");

// now do the new message click. if it's been more than 30 secs since the last message,
// sound a loud click. otherwise sound a quiet click
trace("time since last message: " + (now - lastIncomingMessageTime));
if (lastIncomingMessageTime && now - lastIncomingMessageTime > 30000) {
click.setVolume(200);
} else {
click.setVolume(30);
}
click.start();
}
}


// truncate the contents of the incoming messages window if it's longer than 5000 characters
if(incoming.length > 5000) {
var nearestNewline = incoming.indexOf("\n", incoming.length - 5000);
incoming = incoming.substring(nearestNewline, incoming.length);
}

// remember when this message arrived for next time
lastIncomingMessageTime = now;
}

// the server sends DATA if its a Pilots Data Message
// if we find DATA in the xml object...
if(messageObj.firstChild.nodeName == "DATA") {
var Pilot = messageObj.firstChild.firstChild.nodeValue;
var Data = messageObj.childNodes[1].firstChild.nodeValue;
}


// *** sends a new xml object to the server
function sendMessage() {
// create the message to send as an xml source fragment. we're sending html so we
// have to escape our text and change < and > to entities via convertTags
var message = '<CONTROLLER>%20' + escape(convertTags(userID)) + '</CONTROLLER><MESSAGE>'
+ escape(convertTags(outgoing)) + '%20</MESSAGE>'; // note that the forced spaces (%20) are required so
// MESSAGE and USER always have a text child node

// convert the message into an xml object hierarchy
messageObj = new XML();
messageObj.parseXML(message);

// check what we're sending
trace("Sending: " + messageObj);

// if a socket object has been created and is connected, send the xml message
// otherwise warn the user that they need to connect
if (mySocket && mySocket.connected) {
mySocket.send(messageObj);
outgoing = "";
} else {
// the server must have kicked us off...
incoming += "<FONT COLOR='#507373'><B>you are no longer connected. please reconnect."
+ "</B></FONT>\n";
incomingUpdated = true;
}
}

// *** closes the connection to the server
function quit() {
if (mySocket.connected) {
mySocket.close();
mySocket.connected = false;
numClients = 0;
incoming = "";
gotoAndStop("login");
}
}


// *** changes < and > to < and >
function convertTags(theString) {
var tempString = "";
for(var i = 0; i < theString.length; i++) {
if(theString.charAt(i) == "<") {
tempString += "<";
} else if (theString.charAt(i) == ">") {
tempString += ">";
} else {
tempString += theString.charAt(i);
}
}
trace("tempString: " + tempString);
return tempString;
}

// *** inserts <A> tags into a string anywhere a "www" occurs
function addLinks (theString) {
var startIndex = 0;
var tempString = "";
var linkString;
var URL;
var beginURL;
var endURL;
if(theString.indexOf("www") != -1) {
while(theString.indexOf("www", startIndex) != -1) {
tempString += theString.substring(startIndex, theString.indexOf("www", startIndex));
beginURL = theString.indexOf("www", startIndex);
endURL = (theString.indexOf(" ", beginURL) != -1) ? theString.indexOf(" ", beginURL) : theString.length;
URL = theString.substring(beginURL, endURL);
linkString = "<A HREF='http://" + URL + "' TARGET='_blank'><U><FONT COLOR='#FFFFCC'>" + URL + "</FONT></U></A>";
tempString += linkString;
startIndex = endURL;
}
tempString += theString.substring(endURL, theString.length);
return tempString;
} else {
return theString;
}
}












[/codesa4]

Naja das Textformatierungs Fenster für Code is zu klein daher ein wenig unübersichtlich...
Ist auch noch nicht viel geändert am Orginal, aber die Fall Unterscheidung zwischen DATA oder CONTROLLER Chat Message steht...

Nun ist die Frage wie man den einzelnen Piloten jeweils 5 History Data Variablen zuteilt und die möglichst elegant und dynamisch bennent...

Bis nacher

Zillion
Bild

JaBoG32_Chrissi
Site Admin
Beiträge: 6858
Registriert: 15. Jun 2003, 16:43

Beitrag von JaBoG32_Chrissi » 6. Apr 2005, 12:23

Hi Zillion, :D

Hast du das Problem mit dem "Mitsenden der XML-Tags" gelöst? Sprich: Die Flugdaten werden möglichst bandbreitenschonend auf dem Client-PC aufbereitet und auf dem Server dann zu XML weiterverarbeitet?

[quoteuo1]Nun ist die Frage wie man den einzelnen Piloten jeweils 5 History Data Variablen zuteilt und die möglichst elegant und dynamisch bennent...
[/quoteuo1]

Mhh.. Was meinst du mit History Data Variablen? Bzw. was sollen diese beinhalten? ;)
2. JaBoG32 "Fighting Wildcats"

Gruß, Chrissi aka Kichi :D
Our Dreams are Wings

Bild

Benutzeravatar
MightyM
Intermediate Member
Beiträge: 368
Registriert: 18. Jan 2005, 18:25

Beitrag von MightyM » 6. Apr 2005, 17:27

Hi,

ich hab jetzt glaub ich alle restlichen Landebahnen vermessen, für Tippfehler übernehm ich keine Garantie ;)

Anapa
22 X-4324,8 Z244090,9 A50
04 X-6497,0 Z242169,8 A50

Belbek
25 X-48586,5 Z52864,9 A95
07 X-49628,1 Z55890,1 A95

Dzhankoy
23 X64134,0 Z11856,0 A55
05 X62445,5 Z9878,7 A55

Gelendzhik
22 X-49708,1 Z598969,0 A30
04 X-51087,2 Z297811,8 A30

Gudauta (siehe Chrissi)

Gvardeyskoe
19 X-539,5 Z-23429,3 A55
01 X-3657,5 Z-24148,8 A55

Kerch
23 X36318,6 Z155621,3 A115
05 X33888,2 Z153103,6 A115

Khersones
19 X-60764,2 Z-68352,8 A15
01 X62535,5 Z-68667,3 A15

Kirovskoe
28 X5294,7 Z73606,0 A95
10 X6070,5 Z70492,2 A95

Krasnodar-Center
27 X11750,6 Z369202,7 A35
09 X11619,6 Z366706,6 A35

Krasnodar-Pashkovskiy
24R X8437,9 Z385862,9 A39
05L X6895,2 Z384209,2 A39
24L X8762,7 Z389001,7 A39
05R X6653,5 Z386739,8 A39

Krasnogvardeyskoye
23 X51450,5 Z1780,8 A55
05 X49176,8 Z-879,9 A55

Krymsk
22 X-5580,8 Z295210,1 A25
04 X-7586,7 Z293556,3 A25

Maykop
22 X-25199,0 Z459051,1 A185
04 X-27686,1 Z457038,6 A185

Novorossisk
22 X-40251,6 Z279856,8 A45
04 X-41589,8 Z278653,0 A45

Octyabrskoe
24 X23123,0 Z-13030,3 A55
06 X21268,0 Z-16028,3 A55

Razdolnoe
36 X66150,7 Z-58929,0 A55
18 X69359,7 Z-58929,8 A55

Saki
22L X-3613,7 Z-50729,9 A55
04R X-6019,0 Z-53135,1 A55
22R X-3793,3 Z-51616,3 A55
04L X6196,6 Z-54018,4 A55

Simpheropol
19R X-7028,0 Z-22653,4 A64
01L X-10827,3 Z-23528,7 A65
19L X-10584,3 Z-21599,0 A65
01R X-13249,0 Z-22021,1 A65

Sochi Adler (siehe Chrissi)

Sukhumi (siehe Chrissi)

Ich hoffe die Formatierung kommt richtig *g*

Grüße
MightyM

Benutzeravatar
Dirty
Intermediate Member
Beiträge: 199
Registriert: 13. Aug 2004, 14:25

Beitrag von Dirty » 6. Apr 2005, 18:30

WOW!!!! :shock: :shock: :shock:

..is ja echt der Hammer! Ich werd mich nächste Woche mal dransetzen all diese Koordinaten probehalber mal in unsere Karte einzutragen.

Echt Riesenlob!!!

Dirty
It's not the speed that kills you,... it's the sudden stop!!!

Antworten