--- deliantra/server/ext/login.ext 2007/04/23 19:10:16 1.44 +++ deliantra/server/ext/login.ext 2007/04/27 17:16:13 1.47 @@ -182,7 +182,7 @@ $ns->fxix ($v); } elsif ($k eq "msg") { - $ns->{setup}{msg} = $v; + $ns->can_msg ($v); } elsif ($k eq "excmd") { # we support it @@ -190,7 +190,7 @@ } 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"; } @@ -433,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/(?<=\S)\n(?=\S)/ /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; } @@ -576,7 +587,7 @@ $ob->destroy; $pl->destroy; } else { - warn "player-scheduler refcnt ", $ob->name, " $pl_ref,$a_ $ob_ref,$b_\n";#d# + warn "player-scheduler refcnt ", $ob->name, " pp$pl_ref,pc$a_ op$ob_ref,oc$b_\n";#d# } } }