--- deliantra/server/ext/login.ext 2007/04/23 18:09:57 1.43 +++ deliantra/server/ext/login.ext 2007/04/24 00:42:02 1.45 @@ -182,12 +182,15 @@ $ns->fxix ($v); } elsif ($k eq "msg") { - $ns->{setup}{msg} = $v; + $ns->can_msg ($v); + + } elsif ($k eq "excmd") { + # we support it } else { # other commands: # sexp: no idea, probably for oudated servers - # tick: more stupidity, server should sned a tick per tick + # tick: more stupidity, server should send a tick per tick $setup{$k} = "FALSE"; } @@ -430,12 +433,23 @@ $ob->set_animation (2); $ob->add_statbonus; - $ns->send_drawinfo ($ob->msg, cf::NDI_BLUE); - $ns->send_packet (sprintf "query %d %s", cf::CS_QUERY_SINGLECHAR, - "Now choose a character.\nPress any key to change outlook.\nPress `d' when you're pleased.\n"); + while () { + $ns->send_msg (-1, "chargen-race-title", ucfirst $pl->title); + my $msg = $ob->msg; + $msg =~ s/\b\n\b/ /g; + $ns->send_msg (cf::NDI_BLUE, "chargen-race-description", $msg); + + my $res = query $ns, cf::CS_QUERY_SINGLECHAR, + "Now choose a character.\nPress any key to change outlook.\nPress `d' when you're pleased.\n"; + + last if $res =~ /[dD]/; + + $pl->chargen_race_next; + } + + $pl->chargen_race_done; - $ns->state (cf::ST_CHANGE_CLASS); - delete $pl->{deny_save};#d# too early + delete $pl->{deny_save}; last; }