¿Te pasa esto también con otros juegos que juegas?
Kesash
Creator of
Recent community posts
From what the plans say for the other characters very few are going to be NTR, it's just that popular that there needed to be a couple of them. The next release
I'm going to be adding something so that you can completely disable it, so if there are ONLY NTR routes the story wont appear, and if there is a route that doesn't have it its the only one that will show up (so you can still play the story, the NTR options will just be completely gone). I know some people REALLY hate it.
I just mean it's a completely separate app to the phone system itself. It will output an RPY file that's pre coded to be used with my renpy pone system.
It doesn't make any difference to the actual phone system itself, it's purely a way to speed up creating conversation and being able to visualize branching dialogue.
The phone itself comes with ways for the player to change the colours of the phone in game, but if you want to change them manually you'll need to edit the file directly. This purely creates an RPY containing the conversations and branching dialogue pre coded.
phone_icon_overlay is defined in phone_gui.rpy. I must have left a reference to it inside the actual phone.rpy... and....
Yep, delete line 3410 and line 3411!
And make sure you remove it from ikps_phone_home_back_action in phone config too if youre not using my GUI
If it keeps happening just create a screen with that name that does nothing, it wont break anything ;D
As for changing the name.... thats the _title of the phone shell when you open a contact, or on the contacts screen. You'd need to set the name they choose to a variable, and on the chat screen run a check when _title is set, if _title == 'mc', set it to the name that was chosen instead. line 1991 I believe.....
Same thing for the contacts screen when it shows the names for the contacts, which happens at 2667.
Those lines might be off a little, I'm not sure if the version im looking at is the currently uploaded one, let me know if it's wrong and i can look properly
I have been working on a release that does this plus a load more stuff but I've been roped into making 3 different games so my time is... limited rn :')
So every screen uses the phone_shell screen. So shrink the game area around the phone_shell, and then go into your screens.rpy and modify all the screens to use that phone_shell. It wouldnt be *easy*, if youre not good with screens specifically it could take alot of trial and error to make sure everything fits.
You would need to redo everything from the quit screen, to the save screen, to the help screen, etc.
Ohhhhh, no, it will error if you leave it out. The button display logic needs to be changed. I have done it, and its planned for the full release, but I'm not sure how long that will take. I'm currently making a separate 'premium' release that is more 'game ready' that the current one with a LOAD more features, and that's one of them. I think it will take another hundred hours or so.
1- Yep, the whole conversation is stored in conversation_name['all_dialogue'], so by extending that conversation with a conversation list it will be there as an already had conversation. So mc_whoever['all_dialogue'].extend({"mc":"Hey"}, {"whoever":"Hey"}) will add those messages, in that order, whenever its run. Want them at the start then just run it right after the start label (the other option is to just use the function to send a message a few times before the game propperly starts, easier but would mean more writing)
2- Not currently an option, it's been something I've been looking at. The code is all there to make it possible, its just changing how the button is displayed.
3-That would need an entirely new screen, it's not something that's currently planned.
4-The name dependency was for simplicity, without it creating conversations would require about 3 times more code than they currently do. You would need to assign every conversation to the phone from every direction it can be viewed from etc. The simplest solution would be to change the title of the conversation screen to show whatever the player entered instead of 'mc' if it should be 'mc'. So just adding this check in the main ui, the bit in between the two ###

And the same thing in the contacts list:

Then default var_kps_new_mc_name anywhere, just so anything, or an empty string, then after they have chosen the name just run $ var_kps_new_mc_name = their_chosen_name
Then wherever that name is displayed on the phone it will be changed to the new one :)
So if now run this at the start:

Opening Sarah's phone in the demo now shows this:


So that part about being able to create one with 0 members, complete lie, it will crash, I was just testing it. If you do want to do that, replace:
name = f"{member_part}-{suffix}"
with
if len(members) > 0:
name = f"{member_part}-{suffix}"
else:
name = get_store_name_of(current_dialogue) + f"-{suffix}"
THEN you can create one with 0 members :D
Sorry I just noticed you'd messaged again. When you create the conversation using the kps_create_conversation() only add them as a member, then use the add member function (its in the newest release) to add your mc to it later, it will instantly appear on their contact list :) You can create a conversation with 0 members if you want, theres nothing stopping you, but the second a member name == a phone name, the conversation will appear
Just to add, ive created some helper functions to add a member, remove a member, and rename a member. Will be in the next release, so should be a lot easier soon :) If there's anything else you're struggling with, please let me know
I'd rather add helper functions for common use cases than have people getting frustrated :)
Its been changed to a group chat so its using the group chat name, this means there is either 1 member, or 3+. Make sure that when you remove a member you add another one, and if you add another one you remove the original one. If you shift+o for the console (this causes a rollback so make sure you click to advance dialogue once before you do) and type conversation_name['members'] (obv replace conversation_name with what its actually called) then it will print the members out for you, and you can check.
def _kps_play_message_sent_received_sound(entry):
if not (renpy.get_screen("dynamic_scrollable_text") or renpy.get_screen("dynamic_scrollable_text_group")):
return
if not isinstance(entry, dict):
return
sender = next(iter(entry.keys()), None)
me = phone_data.get("name")
if sender in ("image", "video", "code"):
return
if sender == me:
renpy.play(var_kps_message_sent_sound, channel="sound")
else:
renpy.play(var_kps_message_recieved_sound, channel="sound")
Yea this one is a little more complicated, it will be in the next update but if you want it now-
Create this function anywhere in the init python block at the top (will reply to this with a copy paste):

(The vars in using here I've just added to config and done = "thesoundfile")
Run the function in these 3 places:
1-

2-

3-

That should do it :)
(Also, add "code" with the image and video, so it doesn't play a sound when code executes)
I haven't decided how im going to handle image messages yet, but you can just change the 'return' there to a custom 'sent image message' sound if you want. Or if you've only ever going to be receiving images just set it to the received sound.
Here, throw this in (change the member name of 'mc' if that isnt your phones name) and it will add a convo with a changing name:
default unknown_convo = [
{"ember":"Hey"},
{"mc":"Hey who is this"},
{"ember":"Ember"},
{"mc":"OH! Ill update your name"},
{"code":"""
mc_ember_convo['members'].pop('unknown', None)
mc_ember_convo['members']['ember']= {'profile':'addaprofilepic.png'}
"""},
{"mc":"done"}
]
default mc_ember_convo = build_conversation(
unknown_convo,
member("mc"),
member("unknown", profile = "test/mc_profile.png")
)
You can obviously replace it from wherever you want, i just showed it being done in the phone here.
Set the name of the 'member' to unknown, then later, just replace that member with one with a name. So create it with the name unknown, then later remove it and replace it with one with a name.
The name of the contact is made by checking all the members keys, and just using the one that isnt you. So if a conversationg has two members: 'mc' and 'unknown', and the phone owner is 'mc' the contact is 'unknown', as thats the one that doesnt match the phone. If you then remove the unknown member and replace it with a member called 'sarah' it will now use that as the contact name.
But as youre still using the same conversation, just changing the other member, it will still keep all the history.
Let me know if you need an example in code, im just on my phone atm so cant do one right now.
This shows a simple conversation, contact and phone, with a screen to open the phone. The hardest part is defining the contact, but once that's done you never need to do it again, you can just swap out which conversation is loaded in and that one will play out :)
(i forgot to add 'default test_dialogue_list_index = 0', should be done after the conversation list is defined and 'all_dialogue' can just be set to an empty list, half of this will become unnecessary in the next release btw, ive completely reworked how its all set up, check the devlog, you may want to wait for the next release)








