… | |
… | |
184 | . "(only a-z, A-Z and 0-9 are allowed), " |
184 | . "(only a-z, A-Z and 0-9 are allowed), " |
185 | . "or is not between 3 and 18 characters in length.", |
185 | . "or is not between 3 and 18 characters in length.", |
186 | cf::NDI_RED |
186 | cf::NDI_RED |
187 | ); |
187 | ); |
188 | } |
188 | } |
|
|
189 | Coro::Timer::sleep 0.4; |
189 | } |
190 | } |
190 | |
191 | |
191 | check_playing $ns, $user and next; |
192 | check_playing $ns, $user and next; |
192 | |
193 | |
193 | $ns->send_drawinfo ( |
194 | $ns->send_drawinfo ( |
… | |
… | |
204 | $ns->send_drawinfo ( |
205 | $ns->send_drawinfo ( |
205 | "Try to use at least three characters as your password please, " |
206 | "Try to use at least three characters as your password please, " |
206 | . "that cannot be too much to ask for :)", |
207 | . "that cannot be too much to ask for :)", |
207 | cf::NDI_RED |
208 | cf::NDI_RED |
208 | ); |
209 | ); |
|
|
210 | Coro::Timer::sleep 0.4; |
209 | } |
211 | } |
210 | |
212 | |
211 | # lock this username for the remainder of this login session |
213 | # lock this username for the remainder of this login session |
212 | if ($cf::LOGIN_LOCK{$user}) { |
214 | if ($cf::LOGIN_LOCK{$user}) { |
213 | $ns->send_drawinfo ( |
215 | $ns->send_drawinfo ( |
… | |
… | |
294 | nuke_str $pass2; |
296 | nuke_str $pass2; |
295 | $ns->send_drawinfo ( |
297 | $ns->send_drawinfo ( |
296 | "The passwords do not match, please try again.", |
298 | "The passwords do not match, please try again.", |
297 | cf::NDI_RED |
299 | cf::NDI_RED |
298 | ); |
300 | ); |
|
|
301 | Coro::Timer::sleep 0.5; |
299 | next; |
302 | next; |
300 | } |
303 | } |
301 | |
304 | |
302 | nuke_str $pass2; |
305 | nuke_str $pass2; |
303 | |
306 | |
… | |
… | |
325 | $ob->swap_stats ($res - 1, $swap - 1); |
328 | $ob->swap_stats ($res - 1, $swap - 1); |
326 | } |
329 | } |
327 | } else { |
330 | } else { |
328 | $ob->roll_stats; |
331 | $ob->roll_stats; |
329 | } |
332 | } |
|
|
333 | |
|
|
334 | Coro::Timer::sleep 0.2; |
330 | } |
335 | } |
331 | |
336 | |
332 | $ob->set_animation (2); |
337 | $ob->set_animation (2); |
333 | $ob->add_statbonus; |
338 | $ob->add_statbonus; |
334 | |
339 | |
… | |
… | |
342 | "Now choose a character.\nPress any key to change outlook.\nPress `d' when you're pleased.\n"; |
347 | "Now choose a character.\nPress any key to change outlook.\nPress `d' when you're pleased.\n"; |
343 | |
348 | |
344 | last if $res =~ /[dD]/; |
349 | last if $res =~ /[dD]/; |
345 | |
350 | |
346 | $pl->chargen_race_next; |
351 | $pl->chargen_race_next; |
|
|
352 | Coro::Timer::sleep 0.2; |
347 | } |
353 | } |
348 | |
354 | |
349 | $pl->chargen_race_done; |
355 | $pl->chargen_race_done; |
350 | |
356 | |
351 | while () { |
357 | while () { |
… | |
… | |
357 | last; |
363 | last; |
358 | } elsif ($res =~ /^[mM]/) { |
364 | } elsif ($res =~ /^[mM]/) { |
359 | $pl->gender (0); |
365 | $pl->gender (0); |
360 | last; |
366 | last; |
361 | } |
367 | } |
|
|
368 | Coro::Timer::sleep 0.2; |
362 | } |
369 | } |
363 | |
370 | |
364 | $ob->reply (undef, "Welcome to Crossfire!"); |
371 | $ob->reply (undef, "Welcome to Crossfire!"); |
365 | |
372 | |
366 | delete $pl->{deny_save}; |
373 | delete $pl->{deny_save}; |