Von Siedler-Glücksspiel und anderen Dingen
» Siedler Map Source Forum » Siedler DEdK Script Forum » Von Siedler-Glücksspiel und anderen Dingen
Seiten: 1
Wergat
|
#1 19.07.2010 16:41 Beiträge: 215 |
Von Siedler-Glücksspiel und anderen Dingen
Hallo Leute,
ich habe einen Skreenshot hochgeladen und bin dann auf die idee gekommen ein Siedler-Roulett zu basteln. Das Skript ist fertig nur:Kann mir jemand weiterhelfen?
function FirstMapAction() StartSimpleJob("Roulett") math.randomseed(XGUIEng.GetSystemTime()) random = math.random() end function Roulett() if IsNear( "Dario", "Typ", 1000) then Move("Dario","Typ") StartSimpleJob("BriefingRoulett") EndSimpleJob("Roulett")--Weil sonst der Briefing so langeeee aufgerufen wird bis der Computer kaputt ist :( else end end function BriefingRoulett() local briefing = {} local AP = function( _page ) table.insert( briefing, _page ); return _page; end local choicePage = AP{ mc = { title = "", text = "Wollt ihr Roulett spielen?", firstText = "JA", secondText = "NE", firstSelected = 2, secondSelected = 4, }, dialogCamera = true, } AP{ text = "Ok dann her mit eurem Geld", } AP() AP{ text = "Tschuess", } briefing.finished = function() if GetSelectedBriefingMCButton( choicePage ) == 1 then GoldAmount = GetGold(1) Einsatz = GetGold(1) StartSimpleJob("Roulettgewinn") else end end StartBriefing( briefing) end function Roulettgewinn() if random == 0 then AddGold(1, Einsatz*2) Message("GEWONNEN") else Message("VERLOREN") AddGold(1, -GetGold(1)) end end
L.G. & Danke vorweg
Wergat
____________________
Vielen dank an alle, die etwas wissen und es mit anderen teilen.
LG Wergat
Dieser Beitrag wurde von Wergat am 19.07.2010 um 16:48 editiert.
Mordred
|
#2 19.07.2010 19:09 Beiträge: 939 |
Zitat von Wergat:
Hallo Leute,
ich habe einen Skreenshot hochgeladen und bin dann auf die idee gekommen ein Siedler-Roulett zu basteln. Das Skript ist fertig nur:Kann mir jemand weiterhelfen?
L.G. & Danke vorweg
Wergat
Oha, der Code sieht recht Professionel aus, ist jedoch ziemlich Fehlerbehaftet. Editieren...
-Edit
function FirstMapAction() StartSimpleJob("Roulett") Move("Dario","Typ") end function Roulett() if IsNear("Dario","Typ",1000)then Move("Dario",{GetPosition("Typ").X - 150,GetPosition("Typ").Y}) BriefingRoulett() return true end end function BriefingRoulett() local briefing = {} local AP = function(_page) table.insert(briefing,_page) return _page end local choicePage = AP{ mc = { title = "", text = "Wollt ihr Roulett spielen?", firstText = "JA", secondText = "NE", firstSelected = 2, secondSelected = 4, }, dialogCamera = true, } AP{ text = "Ok dann her mit eurem Geld", } AP() AP{text = "Tschuess"} briefing.finished = function() if (GetSelectedBriefingMCButton(choicePage) == 1)then Roulettgewinn() end end StartBriefing(briefing) end function Roulettgewinn() local EinsZu = 2 -- oder 1 zu 3, oder 1 zu 4, usw... if (math.random(1,EinsZu) == 1)then AddGold(1,GetGold(1) * 2) Message("GEWONNEN!") else Message("VERLOREN!") AddGold(1,-GetGold(1)) end end
soweit, so gut. Sollte eigentlich klappen.
Dieser Beitrag wurde von Mordred am 19.07.2010 um 19:18 editiert.
warrior1024
|
#3 19.07.2010 19:40 Beiträge: 345 |
Da geht noch viel mehr! Z.B. übernimmst du die echten Rouletteregeln oder auch ein hübsches Glücksspiel:
Jeder Mitspieler zahlt den gleichen Einsatz und setzt auf eine Zahl. Dann würfelt die Bank und wenn die gesetzte Zahl einmal vorkommt, wird das doppelte des Einsatzes gezahlt, wenn sie 2x vorkommt das dreifache und wenn sie 3x vorkommt das vierfache. Wenn ich mich richtig erinnere, leigen die Gewinnchancen bei 93/216.
____________________
"Banken machen keine Fehlentscheidungen! Haben Euch das Eure Eltern nicht beigebracht?"
- Bankier Samael Silren, Enderal
Wergat
|
#5 19.07.2010 20:41 Beiträge: 215 |
Erst mal vielen Dank Mordred
ich werd´s morgen testen
mein problem war das wenn Dario in der Nähe war startete der briefing und startete und...
Zitat von warrior1024:
Da geht noch viel mehr! Z.B. übernimmst du die echten Rouletteregeln oder auch ein hübsches Glücksspiel:
Jeder Mitspieler zahlt den gleichen Einsatz und setzt auf eine Zahl. Dann würfelt die Bank und wenn die gesetzte Zahl einmal vorkommt, wird das doppelte des Einsatzes gezahlt, wenn sie 2x vorkommt das dreifache und wenn sie 3x vorkommt das vierfache. Wenn ich mich richtig erinnere, leigen die Gewinnchancen bei 93/216.
viel spaß beim editieren
wenn man das jedoch etwaas einfacher machen würde wirds:
function Roulettgewinn() local EinsZu = 2,3225806451612903225806451612903 ...
Zitat von Mordred:
Bank hacken
function Roulettgewinn() local EinsZu = 1 ...
Wergat
____________________
Vielen dank an alle, die etwas wissen und es mit anderen teilen.
LG Wergat
Mordred
|
#6 20.07.2010 14:49 Beiträge: 939 |
Das da meinte ich mit Bank hacken
Leider ist der Code noch ungetestet
Wird mit
Allow_RouletteInBanken()
in der FirstMapAction() aufgerufen und das da muss unten im Skript stehen:
Dann kannst du (hoffentlich ) Roulette in Banken spielen, und zwar jede Minute
function Allow_RouletteInBanken() RouletteOK = true StartSimpleJob("Roulette_Ticker") XGUIEng.ShowWidget("Research_Debenture",1) GUITooltip_ConstructBuilding_Roulette = GUITooltip_ConstructBuilding function GUITooltip_ConstructBuilding(_upgradecategory,_menunormal,_menu disabled,_tech,_keybind) if (_menunormal == "MenuSerf/bank_normal")then _keybind = "" XGUIEng.SetText(gvGUI_WidgetID.TooltipBottomText,"@color:190,190,190 Bank @cr @color:255,255,255 Baut eine Bank. @cr Hier k\195\182nnt Ihr mit Euren Staatsfinanzen auch Roulette spielen.") else GUITooltip_ConstructBuilding_Roulette(_upgradecategory,_menunormal,_menu disabled,_tech,_keybind) end end GUITooltip_ResearchTechnologies_Roulette = GUITooltip_ResearchTechnologies function GUITooltip_ResearchTechnologies(_tech,_menu) if (_tech == Technologies.T_Debenture)then if RouletteOK then XGUIEng.SetText(gvGUI_WidgetID.TooltipBottomText,"@color:190,190,190 Roulette @cr @color:255,255,255 Spielt Roulette. @cr Einsatz: "..GetGold(1).." Taler @cr Chancen: 1 zu 2 @cr Gewinn: "..math.floor(GetGold(1)*2.75).." Taler!") else XGUIEng.SetText(gvGUI_WidgetID.TooltipBottomText,"@color:190,190,190 Roulette @cr @color:255,255,255 Spielt Roulette. @cr @color:255,10,0 Noch nicht bereit!") end else GUITooltip_ResearchTechnologies(_tech,_menu) end end GUIAction_ReserachTechnology_Roulette = GUIAction_ReserachTechnology function GUIAction_ReserachTechnology(_tech) if (_tech == Technologies.T_Debenture)then if RouletteOK then RouletteOK = false Roulette() end else GUIAction_ReserachTechnology_Roulette(_tech) end end end function Roulette() if (math.random(1,3) == 2)then Message("@color:0,200,0 Ihr habt eine Runde Roulette gespielt und @color:0,255,0 "..math.floor(GetGold(1)*2.75).." Taler @color:0,200,0 gewonnen!") AddGold(1,math.floor(GetGold(1)*2.75)) else Message("@color:0,200,0 Ihr habt all Euer Geld verloren!") AddGold(1,-GetGold(1)) end end function Roulette_Ticker() if Counter.Tick2("Roulette_Counter",60)then RouletteOK = true end end
LG Mordred
Wergat
|
#7 20.07.2010 15:11 Beiträge: 215 |
D A N K E
WOW Das ist gut in der Gebauten Bank Roulett spielen
Zitat von Mordred:
Comfortfunktionen auf Bestellung
Stimmt
ich teste ihn sobald es geht
____________________
Vielen dank an alle, die etwas wissen und es mit anderen teilen.
LG Wergat
Wergat
|
#9 20.07.2010 16:54 Beiträge: 215 |
viel Glück
____________________
Vielen dank an alle, die etwas wissen und es mit anderen teilen.
LG Wergat
Seiten: 1