Ok, wie ich die Ziegenphobie nun starte habe ich endlich geschafft - dachte schon mein kopf ist matsch aber funzt wohl doch noch. Doch 1 frage habe ich dann doch noch, wie stelle ich einen type/key oder so für die Zahlungs bzw gewinne ein? Ich möchte ja nicht das wenn ich zukünftige spiele einstelle sich diese mit ziegenphobie streiten (also konflikte, errors) entstehen.

Das ist nun meine aktuelle funktionierende main.js

Warnung! Spoiler!

Code:
var App = (new function()
{
 
	var usersPlaying = {};
    var isShuttingDown = false;
 
 
 
 
	// Benutzer Begrüßen
    this.onUserJoined = function(user)
    {
		
		var htmlFilestart = new HTMLFile('startmenu.html');
		var overlayContentstart = AppContent.overlayContent(htmlFilestart, 236, 313);
		user.sendAppContent(overlayContentstart);
		
		
		var gender = user.getGender();
		var nick = user.getNick();
	
		var genderGreeting;
	
		if (gender == Gender.Male)
		{		
			genderGreeting = nick;	
		}

		else if (gender == Gender.Female)
		{		
			genderGreeting = nick;		
		}

		else
		{
			genderGreeting = nick;	
		}
		
		var joins = user.getPersistence().addNumber('besuchanzahl',1); //erhöht den Wert in der Datenbank um 1 
		
		if(joins == 1) { user.sendPrivateMessage('Hallo ' + genderGreeting +  ', herzlich willkommen im Channel TestTest. Weiterer Text folgt. '); }
		else { user.sendPrivateMessage('Hallo ' + genderGreeting +  ', schön Dich wieder zu sehen.'); }
		
		var bot = KnuddelsServer.getDefaultBotUser();
		setTimeout(function(){ bot.sendPublicMessage('Hallo ' + genderGreeting +  ', schön das Du hier bist. ')},100);	//Bot spricht öffentlich nach James
		
	};
	
	
	
	
	// Benutzer aussperren
	this.mayJoinChannel = function(user)
	{
		// Wenn Nutzer kein Profilfoto haben
		if(!user.hasProfilePhoto()) {
			return ChannelJoinPermission.denied('In unserem Channel ist die Echtheit der Nutzer sehr wichtig. Besuche uns doch mal wieder sobald Du ein Profilbild hochgeladen hast.');
		}
			// Wenn Nutzer nicht verifiziert sind
			if(!user.isProfilePhotoVerified()) {
				return ChannelJoinPermission.denied('In unserem Channel ist die Echtheit der Nutzer sehr wichtig. Besuche uns doch mal wieder sobald Du ein Profilbild hochgeladen hast.');
			}
		
		return ChannelJoinPermission.accepted();
	};
	

	
	
	this.onEventReceived = function(user, type, data, appContentSession)
	{
		var OpenHTML = new HTMLFile('openmenu.html', {});
		var MenuHTML = new HTMLFile('startmenu.html', {});
		var TestHTML = new HTMLFile('start.html', {});
		
		var MinesweeperHTML = new HTMLFile('minesweeper.html', {});
		
		var OpenMenu = AppContent.overlayContent(OpenHTML, 70, 40);
		var StartMenu = AppContent.overlayContent(MenuHTML, 236, 313);
		var Test = AppContent.overlayContent(TestHTML, 243, 266); //user.setAppContent(Test);
		
		var Minesweeper = AppContent.popupContent(MinesweeperHTML, 316, 354);

			if (type === 'closed')
			{
					user.setAppContent(OpenMenu);
			}		
			
			if (type === 'open')
			{
					user.setAppContent(StartMenu);
			}
			
			if (type === 'AAA')
			{
					var botNick = KnuddelsServer.getDefaultBotUser().getNick().escapeKCode();
					user.sendPrivateMessage('Lust auf ne Runde Ziegenphobie? Mit nur _°BB>_h1 Knuddel|/appknuddel ' + botNick + '<°°°_ bist du dabei!');
			}
			
			if (type === 'selectedEntry' && usersPlaying[user.getNick()] == 1)
			{
				usersPlaying[user.getNick()] = 2;
    	
				setTimeout(function(){
					var doorNumber = parseInt(data[data.length - 1], 10);
	    		
					var winningDoorNumber = RandomOperations.nextInt(2) + 1;
	    		
					var hasWon = winningDoorNumber == doorNumber;
	    	
					var text = hasWon ? 'Richtig getippt' : 'Knapp daneben';
	    		
					user.sendAppEvent('openDoor', { 'door' : doorNumber, 'winningDoor' : winningDoorNumber, 'text' : text });
	    	
					if (hasWon)
					{
						KnuddelsServer.getDefaultBotUser().transferKnuddel(user, new KnuddelAmount(2), 'Richtig getippt...');
					}
	    		
	    		
					setTimeout(function(){
						var botNick = KnuddelsServer.getDefaultBotUser().getNick().escapeKCode();
						user.sendPrivateMessage('Na, Lust auf _°BB>_hnoch eine Runde|/appknuddel ' + botNick + '<°°°_?');
		    	
						user.removeAppContent();
						delete usersPlaying[user.getNick()];
					}, 4000);
				}, 1500);
			}

			if (type === 'Minesweeper')
			{
					user.setAppContent(Minesweeper);
			}
				
	};
	
	
	
	
	this.onUserLeft = function(user)
    {
    	if (usersPlaying[user.getNick()] == 1)
    	{
    		KnuddelsServer.getDefaultBotUser().transferKnuddel(user, new KnuddelAmount(1), 'Du hast den Channel verlassen.');
    	
    		delete usersPlaying[user.getNick()];
    	}
    };
	
	
	
	
	this.onPrepareShutdown = function()
    {
    	if (!isShuttingDown)
    	{
    		isShuttingDown = true;
    		
    		for (var key in usersPlaying)
    		{
    			var value = usersPlaying[key];
    			
    			var userId = KnuddelsServer.getUserId(key);
    			var user = KnuddelsServer.getUser(userId);
    			
    			KnuddelsServer.getDefaultBotUser().transferKnuddel(user, new KnuddelAmount(1), 'Die App fährt gleich herunter.');
				user.removeAppContent();
    			
    			delete usersPlaying[key];
    		}
    	}
    }
	
	
	
	
	this.onBeforeKnuddelReceived = function(knuddelTransfer)
    {
    	var sender = knuddelTransfer.getSender();
    	
    	if (!sender.canSendAppContent(Test))
    	{
    		knuddelTransfer.reject('Sorry, mit diesem Gerät kannst du gerade nicht spielen.');
    	}
    	else if (sender.isChannelOwner() && knuddelTransfer.getKnuddelAmount().asNumber() != 1)
    	{
			knuddelTransfer.accept();
    	}
    	else if (isShuttingDown)
    	{
    		knuddelTransfer.reject('Du App nimmt gerade keine neuen Spieler an.');
    	}
    	else if (usersPlaying[sender.getNick()])
    	{
    		knuddelTransfer.reject('Du spielst bereits.');
    	}
    	else if (knuddelTransfer.getKnuddelAmount().asNumber() != 1)
    	{
    		var botNick = KnuddelsServer.getDefaultBotUser().getNick().escapeKCode();
    		knuddelTransfer.reject('Du musst genau _°BB>_h1 Knuddel senden|/appknuddel ' + botNick + '<°°°_...');
    	}
    	else
    	{
    		knuddelTransfer.accept();
    	}
    };
	
	
	
	
	this.onKnuddelReceived = function(user, receiver, knuddelAmount)
    {
    	if (knuddelAmount.asNumber() == 1)
    	{
		    usersPlaying[user.getNick()] = 1;
		    user.setAppContent(Test);
    	}
    	else
    	{
    		user.sendPrivateMessage('Vielen Dank für die Einzahlung.');
    	}
    };
	
	
	

	
	
}());




Muss ich nun sowas wie dies eingeben?

Code:
var botNickSPIEL2 = KnuddelsServer.getDefaultBotUser(SPIEL2).getNick().escapeKCode();
user.sendPrivateMessage('Na, Lust auf _°BB>_hnoch eine Runde|/appknuddel ' + botNickSPIEL2 + '<°°°_?');


und welcher schritt kommt dann als nächstes? dieser? Also was öffnen sich eigendlich genau wenn ich botnick (also den button) anklicke?

Code:
this.onUserLeft = function(user)
    {
    	if (usersPlaying[user.getNick()] == 1) // muss ich jetzt auch die var für usersPlaying ändern???
    	{
    		KnuddelsServer.getDefaultBotUser(SPIEL2).transferKnuddel(user, new KnuddelAmount(1), 'Du hast den Channel verlassen.');
    	
    		delete usersPlaying[user.getNick()];
    	}
    };


Und immer so weiter für einzahlung und auszahlung... ich weiß nicht was ich eingeben muss so das die proramme sich nicht gegenseitig stressn, aber ich möchte ja schon ein paar mehr spiele mit gewinn und einsatz erstellen ausser nur das voregebene ziegenphobie.


Das ganze muss ich ja jetzt mit jedem spiel machen was ich erstelle:

this.onUserLeft = function(user)
this.onPrepareShutdown = function()
this.onBeforeKnuddelReceived = function(knuddelTransfer)
this.onKnuddelReceived = function(user, receiver, knuddelAmount)







Bearbeitet von Arsania (19.12.2016, 18:25:18)