Hallo,
da es bei der Erstellung der *.rms Dateien bei einigen Probleme gibt habe ich ein kleines Tool in VisualBasic geschrieben welches diese Dateien erstellt.
Download: http://rapidshare.de/files/273…es2_Unterwaesche.zip.html
Beschreibung:
Es muß eine Zahl eingegeben werden (6-Stellen) welche die Nummer der Dessous vorgibt. Anhand dieser Nummer werden die rms Dateien für den Slip und den BH erstellt. Die eigentliche Texturdatei muß ebenfalls diese Zahl enthalten (im Dateinamen). Außerdem werden die Vorschaubilder erzeugt welche Ihr aber noch mit den nötigen Inhalten füllen müsst. Der Inhalt der outfitDescription.aod wird ebenfalls angezeigt und muß in dieser Datei ergänzt werden. Um eine Textbeschreibung zum entsprechenden Dessous angezeigt zu bekommen, könnt Ihr im Verzeichnis Config die Datei langGerman4.cfg anlegen und mit dem angegebenen Inhalt ergänzen.
Das Tool sollte in einem separaten Verzeichnis gespeichert werden, da es die entsprechenden Dateien in den zugehörigen Unterverzeichnissen anlegt.
Ich hoffe es wird euch helfen.
Viel Spaß
Steffi
Beiträge von steffi1964
-
-
Hallo Roger Rabbit,
Die *.rms-Datein habe ich einfach mit einen Texteditor (TextPad) oder mit einem HEX-Editor geöffnet. Man muß aber beachten, das der neu eingesetzte Name genau die Länge des Original hat. Das bedeutet, wenn man nach "slip_weiss" sucht, muß der neue Name auch 10 Zeichen enthalten (z.B.: slip000015).
Ich würde auch keine Sonderzeichen einsetzen, sondern nur Buchstaben und Zahlen.
Noch ein Nachtrag zu meinem vorherigen Beitrag.
Um auch Haare unten zu sehen (bei transparentem Slip) folgende Änderung in der outfitDescription.aod durchführen:
z.B: (Rot = Änderung)
-----------------------------------------
outfit_underwear_neu15
{
name = outfit_underwear_neu15
meshes
{
0
{
0 = elaineSlip000015
1 = elaineHairPubicBrown
2 = elaineBra000015
}
}
dressCode = UNDERWEAR
}
-----------------------------------------
Und noch etwas:
Wenn ihr Vorschaubilder (Icons) für die neuen Sachen braucht, kann man diese so anlegen:
Der Outfitname ist z.B.: outfit_underwear_neu15
dann
im Ordner Texture die Datei: guioutfit_underwear_neu15Pic.png
und
im Ordner GuiTexture die Datei: guioutfit_underwear_neu15Icon.png
mit den entsprechenden Bildern anlegen.
Dabei ist guioutfit_underwear_neu15Pic.png das große und guioutfit_underwear_neu15Icon.png das kleine Vorschaubild.
Tschüß -
Hallo,
Hier habe ich noch etwas neues. Ich habe aus dem Board (Danke Potter) einige Outfits
(Unterwäsche) geladen und diese zusätzlich in das Spiel eingebunden,
sodas es jetzt etwa 17 neue gibt.
Download: http://rapidshare.de/files/2612847/NeueSachen.zip.html
(5229524 Bytes)
Und so habe ich es gemacht:
------------- outfitDescription.aod ------------------
.
.
.
outfit_underwear_neu15
{
name = outfit_underwear_neu15
meshes
{
0
{
0 = elaineSlip000015 (original: elaineSlip)
1 = elaineBra000015 (original: elaineBra)
}
}
dressCode = UNDERWEAR
}
.
.
.
ShopOutfit 51
{
category = UNDERWEAR
outfitDescriptionID = outfit_underwear_neu15
price = 1
}
.
.
.
-------------------------------------------------------
elaineSlip000015 --> elaineSlip000015.rms
elaineBra000015 --> elaineBra000015.rms
In den *.rms Dateien ist ein Verweis auf die Texturdatei.
Hier z.B.: slip000015.dds
Ich habe als Grundlage das Outfit Underwäsche weiß benutzt.
Das heist in der elaineSlip.rms-Datei nach slip_weiss suchen und
durch slip000015 ersetzen. Diese Datei jetzt in elaineSlip000015.rms
umbenennen (vorher Sicherheitskopie anlegen).
Die Texturdatei slip_xxx.dds nun in slip000015.dds umbenennen.
Das gleiche mit elaineBra.rms-Datei durchführen.
Nun kann in der outfitDescription.aod elaineSlip000015 bzw.
elaineBra000015 wie oben gezeigt eingestzt werden.
Viel Spaß -
Hallo Deckmeister,
ZitatDas File wirkt sehr gut danke. Kannst du daselbe auch machen fur Unterhosen? Ich denke ihr nennt es Dessous.
Dann können die Singles gekleidet zum Arbeit gehen. Manchmal gehen sie jetzt ganz nackt.
Das "Naktoutfit" verhält sich im Spiel so, als währe die Person angezogen. Nur damit ist es möglich im Photomodus nackt zu sein.
Bevor sie zur Arbeit gehen mußt du sie also noch einmal zum Kleiderschrank schicken, da sie denken, sie währen schon angezogen.
Tschüß -
Hallo,
hier habe ich wieder etwas neues. Im Board wurde schon über ein Nackt-Outfit für den Photomodus berichtet. Das funktioniert auch gut. Wenn man das Outfit kaufen will ist aber kein Bild zu sehen genauso wie bei der Auswahl im Kleiderschrank.
Dies habe ich nun geändert und die Vorschaubilder werden angezeigt.
Zusätzlich habe ich das Outfit Strapse (ohne Slip) angelegt.
Download: http://rapidshare.de/files/2594464/NacktOutfit.zip.html
Viel Spaß
Hallo Deckmeister, ich weiß nicht so recht was Du willst. In der charOutfit.lua habe ich nichts verändert. -
Hallo,
es hat sich wirklich bei der Dusche eingeschlichen. Jetzt sollte es aber funktionieren.
Download Dusche: http://rapidshare.de/files/248…e_-_EinAus_Dampf.zip.html
Tschüß -
Hallo,
ich habe noch ein paar Verbesserungen für das Spiel:
1. Auswahl ob man angezogen oder nackt in den Pool geht
2. Auswahl ob man angezogen oder nackt in den Whirlpool geht
(mit Wasser ein und ausblenden - aus einem anderen Beitrag dieses Boards)
3. Auswahl ob man angezogen oder nackt auf Toilette geht
Download: http://rapidshare.de/files/2467164/Singles2.zip.html
4. Auswahl ob man angezogen oder nackt in das Bett geht
5. Auswahl ob man angezogen oder nackt in die Dusche geht
(bzw. vor der Duche oder in der Dusche ausziehen und Dampf
ein und abschalten)
Download: http://rapidshare.de/files/2479659/Singles2_3.zip.html
Geändert, da ein Fehler bei Nackt im Bett war.
Viel Spaß -
Hallo,
noch ein kleiner Tipp. Wenn ihr euch ersparen wollt in den unterschiedichen Scripten NOTHING_SEX durch NOTHING zu ersetzen um die Genitalien sichtbar zu machen ist es einfacher in der Datei outfitDescription.aod im Verzeichnis GameLogic folgende Änderung vorzunehmen:
Weiblich:PHP
Alles anzeigenoutfit_naked_sex_female { name = meshes { 0 { 0 = elaineCencored } 1 { 0 = elaineFigLeaf } 2 { 0 = elaineHairPubicBrown } } dressCode = NAKED }
Männlich:PHP
Alles anzeigenoutfit_naked_sex_male { name = meshes { 0 { 0 = elaineCencored } 1 { 0 = mikeFigLeaf } 2 { 0 = mikeJoshSchniepi } } dressCode = NAKED }
Danach ist es egal ob in den anderen Scripten NOTHING_SEX oder NOTHING steht, es wird alles angezeigt.
Tschüß -
Hallo,
Jetzt kann auch der Dampf in der Dusche ein und ausgeschalten werden, ähnlich wie bei der Bettdecke.
Diese Änderung bitte in der shower.lua durchführen.
PHP
Alles anzeigen--------------------------------------------------------------------------------------------------------------------------------------------- -- state machine: shower -- -- beginStateMachine() --------------------------------------------------------------------------------------------------------------------------------------------- -- buildMenu onMsg("buildMenu", function(msg) --if (repairMenu()) then return end -- build the pie menu local button ; button = addPieMenuButton("pm_shower", "shower"); button.addDescription(ACTIVITY, "shower"); -- button.addDescription(ACTIVITY, "improveObjectTidiness"); -- button.addIcon("guiIconHygiene"); -- neu if true then button = addPieMenuButton("Dampf aus", "DampfAus"); button.addDescription(USERACTION, "true"); button = addPieMenuButton("Dampf an", "DampfAn"); button.addDescription(USERACTION, "true"); end -- neu ende end ) --------------------------------------------------------------------------------------------------------------------------------------------- -- shower -- -- take a shower onMsg("shower", function(msg) -- get character who initiated this action local character = getStateObjectFromID(msg.sender); -- check if activity is possible if abortIfNotPossible(character, msg.name, this) then return end; -- get the walk state object local wso = character.walkSO; -- create state machine context local wsoContext = StateMachineContext(); -- interaction context wsoContext.set("actionPointNames", {"enter1"}); wsoContext.set("object", this); -- special context wsoContext.set("shower", this); wso.setTargetStatePath("charStand/charWalkInteract/charShower.shower", wsoContext); end ) ----------------------------------------------------------------------------------------------------------------------------------------------- -- neu onMsg("DampfAn", function(msg) setChildEnable("damp", true); end ) onMsg("DampfAus", function(msg) setChildEnable("damp", false); end ) -- neu ende ---- repair -- -- onMsg("repair", function(msg) -- -- local character = getStateObjectFromID(msg.sender); -- repairObject(character, this); -- end ) endStateMachine()
Es sind 2 Teile dazugekommen jeweils von "-- neu" bis "-- neu ende".
Viel Spaß -
Hallo,
ich habe gerade noch was neues ausprobiert, was ich euch nicht vorenthalten möchte. Bis jetzt musste ich immer in den entsprechenden Skipten ändern, wenn man die Decke ein bzw. ausblenden wollte. Viel besser ist es doch direckt wenn man auf das Bett klickt auszuwählen - Bettdecke Ein oder Bettdecke aus.
Diese Änderung bitte in der bed.lua durchführen.
PHP
Alles anzeigen--------------------------------------------------------------------------------------------------------------------------------------------- -- state machine: bed beginStateMachine() onEnter(function(msg) -- placeChildOnActionPoint("blanket", "blanket1", 0, 0, 0); -- placeChildOnActionPoint("blanket1", "blanket1", 0, 0, 0); -- placeChildOnActionPoint("blanket2", "blanket2", 0, 0, 0); for i, b in {"blanket", "blanket1", "blanket2"} do local blanket = this.findChildGO(b) if blanket then -- this.setChildEnable(b, true) blanket.startSkeletonAnimation("idleBLK", false, 1.0, 0.0) end end sendMsgThis("init") end ) onMsg("buildMenu", function(msg) --if (repairMenu()) then return end -- build the pie menu local button ; button = addPieMenuButton("pm_sleep", "sleep"); button.addDescription(ACTIVITY, "sleep"); -- can always be selected by user button.addDescription(ALWAYS_USERSELECTABLE, "true"); local currentCharacter = getStateObjectFromID(msg.sender); if currentCharacter and currentCharacter.isLockingOneActionPoint(this, {"layDown1", "layDown2"}) then button = addPieMenuButton("pm_masturbate", "masturbate"); button.addDescription(ACTIVITY, "masturbate"); button.addDescription(NO_AI, "true") end -- if TEST_BUTTONS then -- neu if true then button = addPieMenuButton("Bettdecke aus", "DeckeAus"); button.addDescription(USERACTION, "true"); button = addPieMenuButton("Bettdecke an", "DeckeAn"); button.addDescription(USERACTION, "true"); -- neu ende -- button = addPieMenuButton("test_hangingEntry", "hangingEntry"); -- -- -- local anims = { ---- "BedSleepFBlanketL1To2", ---- "BedSleepFBlanketL2To3", ---- "BedSleepFBlanketL3To4", ---- "BedSleepFBlanketL4To1", ---- "BedSleepFBlanketLLoop1", ---- "BedSleepFBlanketLLoop2", ---- "BedSleepFBlanketLLoop3", ---- "BedSleepFBlanketLLoop4", -- "BedSelfServiceFBLKLoop" -- } -- -- local blanketButton = addPieMenuButton("blanketAnims", "", ""); -- -- for i, anim in pairs(anims) do -- button = blanketButton.addPieMenuButton(anim, "blanketAnim", anim); -- button.addDescription(USERACTION, "sleep"); -- button = blanketButton.addPieMenuButton(anim .. "_mirror", "blanketAnim", anim .. "_mirror"); -- button.addDescription(USERACTION, "sleep"); -- end -- -- local blankets = {"blanket1", "blanket2"} -- for i, b in blankets do -- local blanket = this.findChildGO(b) -- if blanket then -- local pos = "?" -- for i, p in blankets do -- if this.isChildOnActionPoint(b, p) then -- pos = p -- break -- end -- end -- button = addPieMenuButton(b .. " on action point " .. pos, ""); -- button.addDescription(DONTQUEUE, "true"); -- end -- end -- -- blankets = {"blanket", "blanket1", "blanket2", "blanketUnskinned", "blanketUnskinned1", "blanketUnskinned2", } -- for i, b in blankets do -- local blanket = this.findChildGO(b) -- if blanket then -- button = addPieMenuButton(b .. " enabled " .. tostring(this.getChildEnable(b)), ""); -- button.addDescription(DONTQUEUE, "true"); -- end -- end end end ) onMsg("buildMenu_Char", function(msg) local button; -- the passive char who builds this menu local character = getStateObjectFromID(msg.sender); -- the active char who send the buildMenu-msg to the passive char local currentCharacter = getStateObjectFromID(tonumber(msg.data)) print("buildMenu_Char " .. tostring(msg.sender)); local bedButton = character.addPieMenuButton(translate("pm_onBed") .. "...", ""); -- bed inteactions -------------------------------------- button = bedButton.addPieMenuButton("pm_sexBed", "bedInteract", "sex"); button.addDescription(ACTIVITY, "sexBed"); button = bedButton.addPieMenuButton("pm_pettingBed", "bedInteract", "petting"); button.addDescription(ACTIVITY, "pettingBed"); button = bedButton.addPieMenuButton("pm_kissBed", "bedInteract", "kiss"); button.addDescription(ACTIVITY, "kissBed"); if (not currentCharacter.walkSO.isInStateMachine("charInteract")) then button = bedButton.addPieMenuButton("pm_roseBed", "bedInteract", "rose"); button.addDescription(ACTIVITY, "seduceRose"); end --------------------------------------------------------- end ) --------------------------------------------------------------------------------------------------------------------------------------------- onMsg("sleep", function(msg) -- get the game object server local gameObjectServer = getGameObjectServer(); -- get character who initiated this action local character = getStateObjectFromID(msg.sender); if abortIfNotPossible(character, msg.name, this) then return end; -- get the walk state object local wso = character.walkSO; -- create state machine context local wsoContext = StateMachineContext(); -- interaction context wsoContext.set("actionPointNames", {"layDown1", "layDown2"}); wsoContext.set("actionPointMode", "clickPoint"); wsoContext.set("object", this); -- special context wsoContext.set("bed", this); wso.setTargetStatePath("charStand/charWalkInteract/charBed/charBedSleep.sleep", wsoContext); end ) --------------------------------------------------------------------------------------------------------------------------------------------- onMsg("masturbate", function(msg) -- get the game object server local gameObjectServer = getGameObjectServer(); -- get character who initiated this action local character = getStateObjectFromID(msg.sender); if abortIfNotPossible(character, msg.name, this) then return end; -- get the walk state object local wso = character.walkSO; -- create state machine context local wsoContext = StateMachineContext(); -- interaction context wsoContext.set("actionPointNames", {"layDown1", "layDown2"}); wsoContext.set("actionPointMode", "clickPoint"); wsoContext.set("object", this); -- special context wsoContext.set("bed", this); wso.setTargetStatePath("charStand/charWalkInteract/charBed/charBedMasturbate.masturbate", wsoContext); end ) --------------------------------------------------------------------------------------------------------------------------------------------- onMsg("blanketAnim", function(msg) local blanketName; if hasBehavior("doublebed") then local apn = getClosestActionPointToClickPoint().getName(); blanketName = "blanket" .. string.getTail(apn, 1); else blanketName = "blanket"; end local blanket = this.findChildGO(blanketName) blanket.startSkeletonAnimation(msg.data); blanket.startSkeletonAnimation(msg.data); end ) --------------------------------------------------------------------------------------------------------------------------------------------- -- neu onMsg("DeckeAn", function(msg) setChildEnable("blanket", true); setChildEnable("blanket1", true); setChildEnable("blanket2", true); end ) onMsg("DeckeAus", function(msg) setChildEnable("blanket", false); setChildEnable("blanket1", false); setChildEnable("blanket2", false); end ) -- neu ende --------------------------------------------------------------------------------------------------------------------------------------------- -- repair -- -- onMsg("repair", function(msg) -- -- local character = getStateObjectFromID(msg.sender); -- repairObject(character, this); -- end ) -- endStateMachine()
Es sind 2 Teile dazugekommen jeweils von "-- neu" bis "-- neu ende".
Viel Spaß -
Hallo,
hier habe ich eine tolle Seite im Netz gefunden und dort gibt es auch 2 Spielstände zum downloaden (diese sind jeweils etwa 750 kbyte groß als RAR-Datei). Ich denke das ist wirklich nicht groß.
http://www.wildezeiten.singles-corner.de/
http://www.wildezeiten.singles….de/pages/d_savegames.htm
Viel Spaß -
Hallo,
ich habe auch einmal versucht die Bewohner nackt auf Toilette gehen zu lassen.
Hier nun einmal das Ergebnis (charToilet.lua)PHP
Alles anzeigenbeginStateMachine() onEnter(function(msg) printSOInfo(this, "onEnter", true); if exitIfLocked("all") then return end if (App.get().isPixelationSupported()) then getParent().enableBlend(true); end -- neu changeOutfit(getParent(), "NOTHING"); -- neu ende setState("sitDown"); end ) onExit(function(msg) printSOInfo(this, "onExit", true) if (App.get().isPixelationSupported()) then getParent().enableBlend(false); end unlockAll("toilet"); end ) state("sitDown") onEnter(function(msg) printSOInfo(this, "onEnter") local character = getParent(); local other, result = getDisturbingChar(character, "showNaked"); if (other) then cancelAndExit(); character.setEmoticon(EMOTICON_SHY, EMOTICON_DELAY); --other.sendMsg("emoShameChar", character.walkSO); return end; -- startAnimation("sitdownToilet"); startAnimation(genderize2(getParent(), "sitdownToilet")); end ) onMsg("end", function(msg) if testCancel() then finishAndExit("standUp"); else cleanExit("standUp"); end end ) -- sit state("sit") onEnter(function(msg) printSOInfo(this, "onEnter") sendDelayedMsgThis("testCancel", CANCEL_POLLING_INTERVAL); --sendDelayedMsgThis("stink", 5); local toilet = get("toilet"); dirtify(toilet, DIRTIFY_PER_SIT_TOILET); local sitToilet = getParent().startActivity("sitToilet", toilet); local length, scale = getActivityLength(sitToilet); sendDelayedMsgThis("complete", length); sendMsgThis("startLoop"); end ) onExit(function(msg) local toilet = get("toilet"); getParent().stopActivity("sitToilet", toilet); end ) onMsg("startLoop", function(msg) startAnimation(genderize2(getParent(), "sitToilet")); end ) onMsg("stink", function(msg) local toilet = get("toilet"); toilet.setChildEnable("stink", true); end ) onMsg("complete", function(msg) cancelAndExit("standUp"); end ) onMsg("end", function(msg) if testCancel() then finishAndExit("standUp"); else sendMsgThis("startLoop"); end end ) onMsg("testCancel", function(msg) if testCancel() then finishAndExit("standUp"); else sendDelayedMsgThis("testCancel", CANCEL_POLLING_INTERVAL); end end ) -- stand up from toilet state("standUp") onEnter(function(msg) -- neu local dressCode = getParent().getDressCode(); if (dressCode == NAKED) then local outfitID = getParent().getOutfitIDFromCategory("TOWEL"); getParent().changeOutfit(outfitID); end -- neu ende startAnimation("standupToilet"); sendDelayedMsgThis("flushSound", 4.2); end ) onMsg("flushSound", function(msg) getParent().playSound("Sfx_ToiletFlush_01"); end ) onMsg("end", function(msg) local toilet = get("toilet"); toilet.setChildEnable("stink", false); queueFollowActivity("pm_washHands", "washHands", "sink") exitStateMachine(); end ) endStateMachine()
-- neu bis -- neu Ende ist der neu eingefügte Code.