Schänken-Exploit

  • Hallo ich habe mich mal angemeldet um nachzufragen, ob damit zu rechnen ist, dass der Schänken-Geld-Exploit im nächsten Patch gefixt werden kann.


    Mit dem Exploit meine ich, dass man pro Klick (!) auf "Zum Tanz auffordern", "Ein gemeinsames Bad nehmen" etc. in der eigenen Schänke (bzw deren Aufwertungen) das Geld gutgeschrieben bekommt, anstatt es abzuziehen.


    Das haut im Moment das Gefüge ziemlich durcheinander, eine KI mit Schänke hat letztens in nem Multiplayerspiel innerhalb von wenigen Runden so die halbe Stadt im Besitz gehabt, ein Vergleich wie man finanziell dasteht war gar nicht mehr möglich, weil alle anderen Kurven unten in der Übersicht so eng zusammenstanden, dass man eh nichts mehr erkennen konnte.


    Wäre doch vielleicht mal was für den nächsten Betapatch oder? :)

  • Naja bei KI halte ich das nicht wirklich für nen Problem.
    Hau ihn einfach weg und schon ist die sache erledigt.
    Im MP sieht das schon anders aus, aber da gibt es auch noch andere Dinge die dringend nachbesserung benötigen.

  • Her ist ein kleines Howto um den Bug selbst zu fixen:


    Scripts\Measures\ms_232_InviteToDance.lua


    Dort suchst du:

    Code
    -- Pay if the tavern does not belong to the owners dynasty
    	if GetDynastyID("Tavern") ~= GetDynastyID("") then
    		if not SpendMoney("", GetData("Price"), "CostSocial") then
    			MsgQuick("", "@L_TAVERN_232_INVITETODANCE_FAILURES_MONEY_+0", GetID(""), GetData("Price"))
    			StopMeasure()
    			return
    		end
    	end	
    		
    	CreditMoney("Tavern",GetData("Price"),"Offering")


    und änderst es in:


    Code
    -- Pay if the tavern does not belong to the owners dynasty
    	if GetDynastyID("Tavern") ~= GetDynastyID("") then
    		if not SpendMoney("", GetData("Price"), "CostSocial") then
    			MsgQuick("", "@L_TAVERN_232_INVITETODANCE_FAILURES_MONEY_+0", GetID(""), GetData("Price"))
    			StopMeasure()
    			return
    		end
    		
    		CreditMoney("Tavern",GetData("Price"),"Offering")
    	end



    Scripts\Measures\ms_152_TakeABath.lua
    suchen:

    Code
    -- Pay if the tavern does not belong to the owners dynasty
    					if GetDynastyID("Tavern") ~= GetDynastyID("") then
    						if not SpendMoney("", GetData("Price"), "CostSocial") then
    							MsgQuick("", "@L_TAVERN_152_TAKEABATH_FAILURES_+0", GetID("Tavern"))
    							StopMeasure()
    							return
    						end
    					end
    					CreditMoney("Tavern",GetData("Price"),"Offering")


    ersetzten durch:

    Code
    -- Pay if the tavern does not belong to the owners dynasty
    					if GetDynastyID("Tavern") ~= GetDynastyID("") then
    						if not SpendMoney("", GetData("Price"), "CostSocial") then
    							MsgQuick("", "@L_TAVERN_152_TAKEABATH_FAILURES_+0", GetID("Tavern"))
    							StopMeasure()
    							return
    						end
    						CreditMoney("Tavern",GetData("Price"),"Offering")
    					end


    interessanter weiße soll man wenn man mit jemandem Badet um den man nicht wirbt, doppelt zahlen... Und der Tavernen besitzer bekommt dann kein Geld. Also auch dafür nochn fix:


    Gleiche Datei weiter unten.
    suchen:

    Code
    -- Pay if the tavern does not belong to the owners dynasty
    			if GetDynastyID("Tavern") ~= GetDynastyID("") then
    				if not SpendMoney("", GetData("Price"), "CostSocial") then
    					MsgQuick("", "@L_TAVERN_152_TAKEABATH_FAILURES_+0", GetID("Tavern"))
    					StopMeasure()
    					return
    				end
    			end


    ersetzten mit:


    Code
    -- Pay if the tavern does not belong to the owners dynasty
    			if GetDynastyID("Tavern") ~= GetDynastyID("") then
    				if not SpendMoney("", GetData("Price"), "CostSocial") then
    					MsgQuick("", "@L_TAVERN_152_TAKEABATH_FAILURES_+0", GetID("Tavern"))
    					StopMeasure()
    					return
    				end
    				CreditMoney("Tavern",GetData("Price"),"Offering")
    			end


    Gleiche Datei ein kleines Stück weiter unten:
    suchen:

    Code
    -- pay if the tavern does not belong to the owners dynasty
    			if GetDynastyID("Tavern") ~= GetDynastyID("") then		
    				if not SpendMoney("", GetData("Price"), "CostSocial") then
    					StopMeasure()
    					return
    				end
    			end


    und den bereich rauslöschen.



    Abspeichern, neues Spiel starten und der Bug sollte weg sein.


    MfG
    Sunpack


    ps.: Habs selbst noch nicht getestet sollte aber den Gewünschten erfolg erzielen.