Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- SERVER SCRIPT:
- on 1:socklisten:newuser: {
- sockaccept new
- }
- on 1:sockread:new: {
- if ($sockerr > 0) { return }
- sockread -f %newuser.data
- echo -a %newuser.data
- if ($gettok(%newuser.data,1,32) == new) {
- if ($exists($mircdirUsers\ $+ $gettok(%newuser.data,2,32) $+ \ $+ $gettok(%newuser.data,2,32)) $+ $chr(46) $+ dat == $true) {
- %err.one Username exists.
- sockwrite -n new err Username Exists.
- sockclose new
- halt
- }
- mkdir $mircdirusers\ $+ $gettok(%newuser.data,2,32)
- write $mircdirUsers\ $+ $gettok(%newuser.data,2,32) $+ \ $+ $gettok(%newuser.data,2,32) $+ $chr(46) $+ dat $gettok(%newuser.data,3,32)
- write $mircdirUsers\ $+ $gettok(%newuser.data,2,32) $+ \ $+ $gettok(%newuser.data,2,32) $+ $chr(46) $+ dat $gettok(%newuser.data,4,32)
- sockwrite -n new User created.
- sockclose new
- halt
- }
- }
- on 1:socklisten:logins: {
- sockaccept login
- }
- on 1:sockread:login: {
- if ($sockerr > 0) { return }
- sockread -f %login.info
- echo -a %login.info
- if ($exists($mircdirUsers\ $+ $gettok(%login.info,1,32)) == $false) { sockwrite login err User not found. | sockclose login | halt }
- if ($gettok(%login.info,2,32) != $read($mircdirusers\ $+ $gettok(%login.info,1,32) $+ \ $+ $gettok(%login.info,1,32) $+ $chr(46) $+ dat,1)) { sockwrite login err Invalid password. | sockclose login | halt }
- if ($gettok(%login.info,2,32) == $read($mircdirusers\ $+ $gettok(%login.info,1,32) $+ \ $+ $gettok(%login.info,1,32) $+ $chr(46) $+ dat,1)) {
- sockwrite login win User logged in.
- %player-user- [ $+ [ $sock(login).ip ] ] = $gettok(%login.info,1,32)
- sockrename login user- [ $+ [ $sock(login).ip ] ]
- %sock- [ $+ [ $gettok(%login.info,1,32) ] ] = user- [ $+ [ $sock(login).ip ] ]
- halt
- }
- }
- on 1:sockread:user-*: {
- if ($sockerr > 0) { return }
- echo -a $sockname
- sockread -f % [ $+ [ $sockname ] ]
- if ($gettok(% [ $+ [ $sockname ] ],1,32) == getchars) {
- }
- }
- on 1:socklisten:game: {
- sockaccept user- [ $+ [ $sock(game).ip ] ]
- }
- CLIENT SCRIPT:
- dialog game {
- title "Ruin Legacy 1.0a"
- size -1 -1 640 480
- option pixels
- icon 01, 19 10 599 218, $mircdirimages\title.jpg
- text "Username:", 10, 20 270 80 20
- edit "", 11, 80 270 90 20
- text "Password:", 12, 180 270 80 20
- edit "", 13, 240 270 90 20, pass
- check "Remember Username", 20, 20 300 140 20
- button "Log In", 30, 20 330 60 20
- button "New User", 31, 90 330 60 20
- }
- on 1:dialog:game:sclick:31: {
- dialog -md newuser newuser
- }
- on 1:dialog:game:sclick:30: {
- if ($did(game,11) == $null) { %err.value = You did not specify a username. | dialog -md errors errors | halt }
- if ($did(game,13) == $null) { %err.value = You did not specify a password. | dialog -md errors errors | halt }
- %login.name = $did(game,11)
- %login.pass = $did(game,13)
- sockopen login 127.0.0.1 27501
- }
- on 1:sockopen:login: {
- sockwrite -n login %login.name %login.pass
- }
- on 1:sockread:login: {
- sockread -f %ld
- ; echo -a %ld
- if ($gettok(%ld,1,32) == err) {
- %err.value = $right(%ld,$calc($len(%ld) - 3))
- dialog -md errors errors
- halt
- }
- if ($gettok(%ld,1,32) == win) {
- dialog -md chars chars
- getchars
- halt
- }
- if ($gettok(%ld,1,32) == data) {
- if ($gettok(%ld,2,32) == chars) {
- if (!$dialog(chars)) { dialog -md chars chars }
- }
- }
- }
- alias getchars {
- if (!$sock(login)) {
- %err.value = Connection disconnected.
- dialog -md errors errors
- halt
- }
- sockwrite -n login getchars
- }
- dialog chars {
- title "Character Selection"
- size -1 -1 640 480
- option pixels
- text "", 10, 10 10 80 20
- }
- dialog newuser {
- title "New User"
- size -1 -1 360 280
- option pixels
- text "Desired Username:", 10, 20 20 120 20
- edit "", 11, 120 20 120 20
- text "Password:", 12, 20 60 120 20
- edit "", 13, 120 60 120 20, pass
- text "Password again:", 14, 20 100 120 20
- edit "", 15, 120 100 120 20, pass
- text "Email address:", 16, 20 140 120 20
- edit "", 17, 120 140 220 20
- button "Submit", 18, 20 170 80 20
- text "", 20, 20 210 340 200
- }
- on 1:dialog:newuser:sclick:18: {
- if ($did(newuser,13) != $did(newuser,15)) { %err.value = Passwords dont match. | dialog -md errors errors | halt }
- if ($len($did(newuser,13)) < 6) { %err.value = Password too short. (6 chars or more) | dialog -md errors errors | halt }
- if (!$did(newuser,11)) { %err.value = You must specify a username. | dialog -md errors errors | halt }
- if ($len($did(newuser,11)) < 3) { %err.value = User name too short. (3 chars or more) | dialog -md errors errors | halt }
- if ($did(newuser,11) !isalpha) { %err.value = Username must contain only letters. | dialog -md errors errors | halt }
- if (!$did(newuser,17)) { %err.value = You did not specify an email address. | dialog -md errors errors | halt }
- %new.user = $did(newuser,11)
- %new.pass = $did(newuser,13)
- %new.email = $did(newuser,17)
- sockopen newuser 127.0.0.1 27500
- did -a newuser 20 Connecting...
- }
- alias sockcheck {
- if (!$sock(newuser)) { did -a newuser 20 Cannot establish connection. | halt }
- }
- on 1:sockclose:newuser: {
- if ($sockerr != $null) { echo -a Error: $sockerr }
- }
- on 1:sockopen:newuser: {
- did -a newuser 20 Connection established...
- sockwrite -n newuser new %new.user %new.pass %new.email
- }
- on 1:sockread:newuser: {
- sockread -f %new
- if ($gettok(%new,1,32) == err) {
- did -a newuser 20 $right(%new,$calc($len(%new) - 3))
- sockclose newuser
- halt
- }
- did -a newuser 20 %new
- sockclose newuser
- dialog -x newuser
- dialog -md created created
- }
- dialog errors {
- title "Error!"
- size -1 -1 300 200
- option pixels
- text "Error detected:",01, 10 10 80 20
- text "", 02, 10 30 280 120
- button "Okay", 03, 10 90 80 20
- }
- dialog created {
- title "User Created!"
- size -1 -1 300 200
- option pixels
- text "User has been created",01, 10 10 180 20
- text "You may now log in.", 02, 10 30 280 120
- button "Okay", 03, 10 90 80 20
- }
- on 1:dialog:created:sclick:03: {
- dialog -x created
- dialog -v game
- }
- on 1:dialog:errors:init:0: {
- did -a errors 02 %err.value
- }
- on 1:dialog:errors:sclick:03: {
- dialog -x errors
- unset %err.value
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement