ID:263645
 
Code:
mob
var/tmp
partyleader = 0
inparty = 0
party = ""
var
list
partylist = list()


mob/Login()
..()
src.verbs += /mob/Party/verb/Party_Create
mob/Party
verb
Party_Create()
set name = "Create party"
switch(input("Do you want to create a party") in list ("Yes","No"))
if("Yes")
usr.party = "[usr.name]"
usr.inparty = 1
usr.partyleader = 1
usr.partylist += usr
usr.verbs -= /mob/Party/verb/Party_Create
usr.Partycheck()

if("No")
return

Party_Invite(mob/M in world)
set name = "Party invite"


if(usr.partylist.len != 3)
switch(input(M,"Do you want to join [usr]'s party") in list ("Yes","No"))
if("Yes")
M.party = usr.party
M.inparty = 1
M.verbs -= /mob/Party/verb/Party_Create
usr.partylist += M
M.partylist = usr.partylist
for(var/mob/S in usr.partylist)
S.partylist = usr.partylist
M.Partycheck()
if("No")
usr << "[M] doesnt want to join the party"
return

else if(usr.partylist.len >= 3)
usr << "You can only have 3 people in a party"

Party_Chat()
set name = "Party Chat"
var/mes = input("What do you want to say to the entire party") as message
for(var/mob/M in world)
if(M.party == usr.party)
M << "[usr] Partysay: [mes]"

Party_Remove(mob/M in usr.partylist)
set name = "Remove party member"
if(M == usr) return
switch(input("Do you want to remove [M] from the party") in list ("Yes","No"))
if("Yes")
M.partylist = null
M.inparty = 0
M.partyleader = 0
M.party = ""
M.PartyRemoveverbs()
usr.partylist -= M.name
for(var/mob/S in usr.partylist)
S << "[M] has been removed from the party"
if("No")
return
Party_Leave() //leave verb, use this, and it will go to the proc below
set name = "Leave party"
switch(input("Do you want to leave the party") in list ("Yes","No"))
if("Yes")
usr.PartyLeave()
else
return
mob
proc
PartyLeave()
if(!src.inparty) return
if(src.partyleader)
src.partyleader = 0
src.inparty = 0
src.party = ""
for(var/mob/M in src.partylist)
if(M != src)
M.partyleader = 0
M.inparty = 0
M.party = ""
M << "[src] Broke the party"
M.verbs += /mob/Party/verb/Party_Create
M.PartyRemoveverbs()
src.partylist = null
src.verbs += /mob/Party/verb/Party_Create
src.PartyRemoveverbs()
src << "Party Broken"
else if(!src.partyleader)
src.partyleader = 0
src.inparty = 0
src.party = ""
src.partylist = null
src.PartyRemoveverbs()

Partycheck()
if(src.partyleader)
src.verbs += /mob/Party/verb/Party_Leave
src.verbs += /mob/Party/verb/Party_Remove
src.verbs += /mob/Party/verb/Party_Chat
src.verbs += /mob/Party/verb/Party_Invite
src.verbs -= /mob/Party/verb/Party_Create
else
if(!src.partyleader)
src.verbs += /mob/Party/verb/Party_Leave
src.verbs += /mob/Party/verb/Party_Chat
src.verbs -= /mob/Party/verb/Party_Create

PartyRemoveverbs()
if(src.partyleader)
src.verbs -= /mob/Party/verb/Party_Leave
src.verbs -= /mob/Party/verb/Party_Remove
src.verbs -= /mob/Party/verb/Party_Chat
src.verbs -= /mob/Party/verb/Party_Invite
src.verbs += /mob/Party/verb/Party_Create
else if(!src.partyleader)
src.verbs -= /mob/Party/verb/Party_Leave
src.verbs -= /mob/Party/verb/Party_Chat
src.verbs -= /mob/Party/verb/Party_Remove
src.verbs += /mob/Party/verb/Party_Create


client
Del()
if(mob.inparty)
mob.PartyLeave()
..()


Problem description:

When ever someone logout while they are in a party, the rest of the party members automaticly logout and go back to the login screen
I can't be sure, because you're not showing everything relevant. However, my guess is that your problem is in mob/Logout() and stems, ultimately, from partylist being saved because it's not declared as temporary.