application.onAppStart = function()
{
trace("Start Stream Manager");
ball_so = SharedObject.get("position", false);
}
//*****************************************************************
application.onConnect = function( newClient, username, password ) {
//*****************************************************************
newClient.olvegy = function(billegy) {
// trace("Bill: "+billegy);
var socket = new XMLSocket()
socket.onConnect = function (success) { // Ide lép ha konnektált a Socket-re
if (success) {
socket.send("Pisti"+billegy); // Átküldi a billentyű parancsot
socket.close();
} else {
// trace ("Connection failed!")
}
}
if (!socket.connect(null, 6000)) { // Itt kéri a Socket csatlakozást
// trace ("Connection failed!")
}
return(newClient.i);
}
//*****************************************************************
newClient.olvfree = function(billegy) {
return(newClient.i);
}
//*****************************************************************
//* Kredit lekérdező rutin visszaküldi a keredit éppen aktuális
//* értékét +kiírja a kliens gépről a változókat két file-ba is.
//*****************************************************************
newClient.olv = function(szam,eszk,pozi,sped,bill,chat) {
return(newClient.i);
}
//******************************************************************
newClient.i =0;
newClient.j =0;
newClient.j = application.clients.length;
//*******************************************************************
// Az első belépő csak a sugárzó lehet
//*******************************************************************
if ( newClient.j == 0) { // Belépés ha ez az első sugárzó
newClient.nev=username;
newClient.pass=password;
if (newClient.nev=="fdsHj4jhg4" && newClient.pass=="HnkdS5h73D" ) {
application.acceptConnection(newClient); // Ha jo a nev+pass+kredit>0 akkor belepes OK
//newClient.intervalID = setInterval(callback1, 15000); // letrehozza az intervallumot es be is allitja 1sec.
//callback1(); // Rogton le is vesz egy kreditet
newClient.i = 25;
trace("Belépett : " +msg+" "+newClient.ip);
trace("Belépett : "+newClient.j);
ball_so.setProperty("nextId", newClient.i); // Shared object be teszi a kreditet
ball_so.setProperty("belep","Belép: "+newClient.nev);
ball_so.setProperty("belepip", newClient.ip);
}
}
//*******************************************************************
// Az második lehet tesztelő guest:pass vagy kredites felhasználó
//*******************************************************************
if ( newClient.j == 1) { // Beléphet a tesztelő guest:pass vagy akárki
newClient.nev=username;
newClient.pass=password;
var errorLog = new File("/doc_connect/"+newClient.nev+".txt");
var msg = newClient.nev+ ": " +newClient.pass;
if (errorLog.open("text", "read") ){ // Beolvassa a nevet es a pass-t
strpass = errorLog.readln();
errorLog.close();
if (strpass == newClient.pass) {
errorLog = new File("/doc_connect/"+newClient.nev+".cre");
if (errorLog.open("binary", "read") ){
newClient.i = errorLog.readByte(); // Eddig beolvasta a kreditet is
newClient.i_tmp=newClient.i;
errorLog.close();
}
//**
if (newClient.nev =="guest" ) {
var errorLog = new File("/doc_connect/ip.txt");
errorLog.open("text", "read");
while (!errorLog.eof()){
newClient.ipc = errorLog.readln();
if (newClient.ipc == newClient.ip) {
newClient.i=0; // Ha már volt az ip-cím akkor nem léphet be
// trace("tiltva");
}
// trace(newClient.ipc);
}
errorLog.close();
}
//**
if (newClient.i > 0)
{
application.acceptConnection(newClient); // Ha jo a nev+pass+kredit>0 akkor belepes OK
newClient.intervalID = setInterval(callback1, 15000); // letrehozza az intervallumot es be is allitja 1sec.
callback1(); // Rogton le is vesz egy kreditet
//trace("Belépett : " +msg+" "+newClient.ip);
//trace("Belépett : "+newClient.j);
ball_so.setProperty("nextId", newClient.i); // Shared object be teszi a kreditet
ball_so.setProperty("belep","Belép: "+newClient.nev);
ball_so.setProperty("belepip", newClient.ip);

if (newClient.nev =="guest" ) // Ha tesztelő belép akkor beállítja a
{ // free.txt változót
usrLog = new File("/doc_connect/free.txt");
usrLog.remove();
// usrLog = new File("/doc_connect/free.txt");
// usrLog.open("text", "create");
// usrLog.close();
var errorLog = new File("/doc_connect/ip.txt");
errorLog.open("text", "append");
errorLog.writeln(newClient.ip);
errorLog.close(); // Eddig kiírja a guest ip címét listába
}
if (newClient.nev !=="guest" ) // Ha tesztelő belép akkor beállítja a
{ // free.txt változót
usrLog = new File("/doc_connect/credites.txt");
usrLog.open("text", "create");
usrLog.close();
}
} else {
application.disconnect(newClient);
}
}
}
}
//*******************************************************************
// A harmadik csak kredites lehet.Nem lehet guest:pass tehát tesztelő
// sem nem lehet
//*******************************************************************
if ( newClient.j == 2) {
newClient.nev=username;
newClient.pass=password;
var errorLog = new File("/doc_connect/"+newClient.nev+".txt");
var msg = newClient.nev+ ": " +newClient.pass;
// trace("Belépene.. " +msg);
if (errorLog.open("text", "read") ){ // Beolvassa a nevet es a pass-t
strpass = errorLog.readln();
errorLog.close();
if (strpass == newClient.pass) {
errorLog = new File("/doc_connect/"+newClient.nev+".cre");
if (errorLog.open("binary", "read") ){
newClient.i = errorLog.readByte(); // Eddig beolvasta a kreditet is
newClient.i_tmp=newClient.i;
errorLog.close();
}
newClient.tmp=ball_so.getProperty("belep");
//trace("Elozo :"+newClient.tmp);
//trace("Mostani:"+newClient.nev);
if (newClient.i > 0 && newClient.tmp =="Belép: guest" && newClient.nev !=="guest")
{
application.disconnect(application.clients[1]); // Kilépteti az előzőt
usrLog = new File("/doc_connect/free.txt");
usrLog.open("text", "create");
usrLog.close();
// usrLog = new File("/doc_connect/free.txt"); // Kidobja a bennt lévő guest-et
// usrLog.remove();
usrLog = new File("/doc_connect/guest.cre");
usrLog.open("binary", "create");
usrLog.close();
usrLog.open("binary", "write");
usrLog.writeByte(3);
usrLog.close(); // A guest-nek beállít 3-kreditet újra
application.acceptConnection(newClient); // Ha jo a nev+pass+kredit>0 akkor belepes OK
newClient.intervalID = setInterval(callback1, 15000); // letrehozza az intervallumot es be is allitja 1sec.
callback1(); // Rogton le is vesz egy kreditet
trace("Belépett : " +msg+" "+newClient.ip);
trace("Belépett : "+newClient.j);
ball_so.setProperty("nextId", newClient.i); // Shared object be teszi a kreditet
ball_so.setProperty("belep","Belép: "+newClient.nev);
ball_so.setProperty("belepip", newClient.ip);
if (newClient.nev !=="guest" ) // Ha kredites belép akkor beállítja a
{ // credites.txt változót
usrLog = new File("/doc_connect/credites.txt");
usrLog.open("text", "create");
usrLog.close();
}
} else {
application.disconnect(newClient);
}
}
}
}


//******************************************************************
function callback1(){ // Ide kerul 1mp-enkent a vezerles
errorLog = new File("/doc_connect/"+newClient.nev+".cre");
if (errorLog.open("binary", "read") ){
newClient.i = errorLog.readByte(); // Eddig beolvasta a kreditet is
errorLog.close();
}
if (newClient.i >0) {
newClient.i--;
}
// trace("Kredit : " +newClient.i);
// trace("Nev : " +newClient.nev);
if (errorLog.open("binary", "write") ){
errorLog.writeByte(newClient.i);
ball_so.setProperty("nextId", newClient.i); // Shard object-be teszi a kreditet
errorLog.close();
}
if (newClient.i == 0) { // Ha az ido=0 akkor kilepes es ismetlodes tiltas
application.disconnect(newClient);
clearInterval(newClient.intervalID);
}
}
//******************************************************************
application.onDisconnect = function (newClient){ // Ha kozben kilepett magatol akkor kiira a maradek
// trace("Nevkilep : "+newClient.nev);
newClient.j1 = application.clients.length;
clearInterval(newClient.intervalID);
// trace("kipattint : "+newClient.intervalID);
// trace("Nevkilepszam : "+newClient.j1);
if (newClient.nev !=="guest" && newClient.j1==1) // Ha a tesztelő kilépett az nem fontos
{
ball_so.setProperty("belep","Kilép: "+newClient.nev);
ball_so.setProperty("belepip", 0);
ball_so.setProperty("nextId", 0);
usrLog = new File("/doc_connect/"+newClient.nev+".cre");
usrLog.open("binary", "read");
usr_time = usrLog.lastModified;
usrLog.close();
var usrLog = new File("/doc_connect/user.txt");
usrLog.open("text", "append");
kred=(newClient.i_tmp-newClient.i);
//usrLog.write("Nev:");
usrLog.write(newClient.nev);
usrLog.writeByte(9);
//usrLog.write("-----Kilep:");
usrLog.write(usr_time);
//usrLog.write("-----IP adress:");
usrLog.writeByte(9);
usrLog.write(newClient.ip);
//usrLog.write("-----Kredit:");
usrLog.writeByte(9);
usrLog.writeln(kred);
usrLog.close();
}
if (newClient.nev =="guest" && newClient.j1==1) // Ha volt bennt tesztelő az 1 helyen akkor
{ // kilépés után törli a free.txt változót
usrLog = new File("/doc_connect/free.txt");
usrLog.open("text", "create");
usrLog.close();
// usrLog = new File("/doc_connect/free.txt");
// usrLog.remove();
usrLog = new File("/doc_connect/guest.cre");
usrLog.open("binary", "create");
usrLog.close();
usrLog.open("binary", "write");
usrLog.writeByte(5);
usrLog.close(); // A guest-nek beállít 3-kreditet újra
}
if (newClient.nev !=="guest" && newClient.j1==1) // Ha volt bennt kredites az 1 helyen akkor
{ // kilépés után törli a credites.txt változót
usrLog = new File("/doc_connect/credites.txt");
usrLog.remove();
}
};
//*******************************************************************
if (newClient.i == 0) { // Ha kredit nulla akkor kidobja a felhasznalot
application.disconnect(newClient);
}
}