;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;[mIRC PuzzLe / Yapboz ] by jeun;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;; irc.geveze.org #mIRCHelp ;;;;;;;;;
menu * {
sclick:{
if ($active == @
[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]) {
if ($mouse.x isnum %puzz_x_click && $mouse.y isnum %puzz_y_click) {
drawpic -s @
[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] 1 1 $calc($window(@
[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]).bw / 2) $calc($window(@
[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]).bh -55) $qt($msfile($msfile(.,Picture Upload,Load)))
set %puzz_pixel_x $calc($window(@
[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]).bw / 2)
set %puzz_pixel_y $calc($window(@
[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]).bh -55)
puzzle_data_clear
}
if ($mouse.x isnum %puzz_xx_click && $mouse.y isnum %puzz_yy_click) {
if (%puzz_game_started) { return }
;clears all writing data in text files for tile location on puzzle
puzzle_data_clear
var %puz_yat = $puzzle_the_pic_line_yatay($int(%puzz_pixel_y),$int(%puzz_pixel_x))
var %puz_dik = $puzzle_the_pic_line_dikey($int(%puzz_pixel_x),$int(%puzz_pixel_y))
var %k_ = 1, %l_ = 0, %m_ = 1, %n_ = 0
var %puz_top_kare_ = $calc(%puzz_diff * %puzz_diff)
while (%k_ <= %puz_top_kare_) {
write puzzle.txt %l_ %n_ %puz_dik %puz_yat
write puzzle2.txt $calc(($window(@
[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]).bw / 2) + %l_) %n_
if (%puzz_diff // %m_) { var %l_ = 0 | inc %n_ %puz_yat | goto x }
inc %l_ %puz_dik
:x
inc %m_
inc %k_
}
rand_load_from_txt_file
drawrect -f @
[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] 0 1 1 1 $calc($window(@
[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]).bw / 2) $calc($window(@
[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]).bh -55)
noop $puzzle_the_pic_line_yatay($int(%puzz_pixel_y),$int(%puzz_pixel_x))
noop $puzzle_the_pic_line_dikey($int(%puzz_pixel_x),$int(%puzz_pixel_y))
}
;SCLICK on the SECOND puzzle
if ($mouse.x isnum $+($calc($window(@
[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]).bw / 2),-,$window(@
[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]).bw) && $mouse.y isnum $+(1,-,$calc($window(@
[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]).bh - 70))) {
if ($puzzle_second_kontrol($mouse.x,$mouse.y) == OK) { return }
var %cccc_ = %puzz_second_tile_location
$select_tile_from_location_puzzle($mouse.x,$mouse.y,2)
if (%cccc_ != %puzz_second_tile_location) { set %puzz_second_picture_sclicked OK }
;;;;SOMETIMES WHY??????
if (%cccc_ == %puzz_second_tile_location) { unset %puzz_second_tile_location }
}
;SCLICK on the FIRST puzzle
if ($mouse.x isnum $+(1,-,$calc($window(@
[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]).bw / 2)) && $mouse.y isnum $+(1,-,$calc($window(@
[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]).bh - 70))) {
if (%puzz_first_picture_sclicked && %puzz_yy_click) {
;1. resimde degisiklik yapinca
var %mmm_ = %puzz_first_tile_location
$select_tile_from_location_puzzle($mouse.x,$mouse.y,1)
;kendi kendine kare tasimasini engeller
if (%mmm_ == %puzz_first_tile_location) {
unset %puzz_first_picture_sclicked
unset %puzz_second_picture_sclicked
goto fin
}
if !$read(puzzle_first.txt,w,%puzz_first_tile_location) {
drawcopy @
[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] $gettok(%mmm_,1-4,32) @
[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] $gettok(%puzz_first_tile_location,1-2,32)
write $+(-dw,$qt($+($gettok(%mmm_,1-4,32),*))) puzzle_first.txt
write $+(-w,$qt(%puzz_first_tile_location)) puzzle_first.txt %puzz_first_tile_location
drawrect -f @
[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] 0 1 $gettok(%mmm_,1-4,32)
drawrect -c @
[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] 1 1 $gettok(%mmm_,1-4,32)
unset %puzz_first_picture_sclicked
unset %puzz_second_picture_sclicked
goto fin
}
}
if (%puzz_second_picture_sclicked && %puzz_yy_click && !%puzz_first_picture_sclicked) {
;COPIES TILE TO FIRST PUZZLE FROM SECOND PUZZLE By Drawcopy
$select_tile_from_location_puzzle($mouse.x,$mouse.y,1)
if !$read(puzzle_first.txt,w,%puzz_first_tile_location) {
drawcopy @
[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] $gettok(%puzz_second_tile_location,5-6,32) $gettok(%puzz_second_tile_location,3-4,32) @
[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] $gettok(%puzz_first_tile_location,1-2,32)
write $+(-w,$qt(%puzz_first_tile_location)) puzzle_first.txt %puzz_first_tile_location
drawrect -f @
[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] 0 1 $gettok(%puzz_second_tile_location,5-6,32) $gettok(%puzz_second_tile_location,3-4,32)
drawrect -d @
[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] 1 1 $gettok(%puzz_second_tile_location,5-6,32) $gettok(%puzz_second_tile_location,3-4,32)
write puzzle2.txt $gettok(%puzz_second_tile_location,5-6,32)
if (!%puzz_game_started) { set %puzz_game_started OK }
unset %puzz_second_picture_sclicked
goto fin
}
}
$select_tile_from_location_puzzle($mouse.x,$mouse.y,1)
if $read(puzzle_first.txt,w,%puzz_first_tile_location) { set %puzz_first_picture_sclicked OK }
}
:fin
}
}
Puzzle:{
var %p = @
[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]
if ($window(%p)) { window -c %p }
window -p %p
set %puzz_diff 5
dialog -m puzzle puzzle
var %txt_ = Click Here For Load Picture
var %gen_ = $calc($width(%txt_,verdana,20) / 2 )
drawtext -b @
[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] $color(info) verdana $calc(($window(%p).bw /4) - $int(%gen_)) $calc($window(%p).bh - 50) %txt_
set %puzz_x_click $calc(($window(%p).bw / 4) - $int(%gen_)) $+ - $+ $calc(($window(%p).bw / 4) + $int(%gen_))
set %puzz_y_click $calc(($window(%p).bh - 50) - 5) $+ - $+ $calc(($window(%p).bh - 50) + 20)
;;;
var %txt_ = Click Here For To Start Puzzle
var %gen_ = $calc($width(%txt_,verdana,20) / 2 )
drawtext -b @
[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] $color(info) verdana $calc(($window(%p).bw /2) + $int(%gen_)) $calc($window(%p).bh - 50) %txt_
set %puzz_xx_click $calc(($window(%p).bw / 2) + $int(%gen_)) $+ - $+ $calc(($window(%p).bw) - $int(%gen_))
set %puzz_yy_click $calc(($window(%p).bh - 50) - 5) $+ - $+ $calc(($window(%p).bh - 50) + 20)
}
}
;HORIZONTAL LINES TO MAKE TILE
alias -l puzzle_the_pic_line_yatay {
var %m_ = 0
var %n_ = $int($calc($1 / %puzz_diff))
set %puzzle_yatay %n_
while (%m_ <= $1) {
drawline -i @
[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] 1 1 1 %m_ $2 %m_
inc %m_ %n_
}
return $int($calc($1 / %puzz_diff))
}
;VERTICAL LINES TO MAKE TILE
alias -l puzzle_the_pic_line_dikey {
var %m_ = 0
var %n_ = $int($calc($1 / %puzz_diff))
set %puzzle_dikey %n_
while (%m_ <= $1) {
drawline -i @
[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] 1 1 %m_ 1 %m_ $2
inc %m_ %n_
}
return $int($calc($1 / %puzz_diff))
}
;RANDOM PICTURE TILES
alias -l rand_load_from_txt_file {
var %j_ = 1
while (%j_ <= $calc(%puzz_diff * %puzz_diff)) {
var %t_ = $read(puzzle.txt)
write $+(-dl,$readn) puzzle.txt
var %n_ = $read(puzzle2.txt)
write puzzle_r.txt %t_ %n_
write $+(-dl,$readn) puzzle2.txt
inc %j_
}
var %j_ = 1
while (%j_ <= $calc(%puzz_diff * %puzz_diff)) {
drawcopy @
[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] $gettok($read(puzzle_r.txt,%j_),1-4,32) @
[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] $gettok($read(puzzle_r.txt,%j_),5-,32)
inc %j_
}
}
alias -l select_tile_from_location_puzzle {
var %x_ = 1, %c_ = $lines(puzzle_r.txt), %puz_x = $1, %puz_y = $2, %puzz_no = $3
while (%x_ <= %c_) {
tokenize 32 $read(puzzle_r.txt,%x_)
if (%puzz_no == 2) {
if (%puz_x isnum $+($5,-,$calc($5 + %puzzle_dikey)) && %puz_y isnum $+($6,-,$calc($6 + %puzzle_yatay))) { set %puzz_second_tile_location $$1- | goto ok }
}
if (%puzz_no == 1) {
if (%puz_x isnum $+($1,-,$calc($1 + %puzzle_dikey)) && %puz_y isnum $+($2,-,$calc($2 + %puzzle_yatay))) { set %puzz_first_tile_location $$1- | goto ok }
}
inc %x_
}
:ok
}
alias -l puzzle_second_kontrol {
var %x_ = 1, %c_ = $lines(puzzle2.txt), %puz_x = $1, %puz_y = $2
while (%x_ <= %c_) {
tokenize 32 $read(puzzle2.txt,%x_)
if (%puz_x isnum $+($1,-,$calc($1 + %puzzle_dikey)) && %puz_y isnum $+($2,-,$calc($2 + %puzzle_yatay))) { return OK | break }
inc %x_
}
}
alias puzzle_data_clear {
write -c puzzle.txt
write -c puzzle2.txt
write -c puzzle_r.txt
write -c puzzle_first.txt
}
on 1:CLOSE:@
[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]:{
unset %puzz*
puzzle_data_clear
}
dialog puzzle {
title "Choice Difficulty for Puzzle"
size -1 -1 103 55
option dbu
button "Easy", 1, 26 6 54 12
button "Medium", 2, 26 21 54 12
button "Hard", 3, 26 36 54 12
}
on 1:dialog:puzzle:sclick:*: {
if ($did == 1) { set %puzz_diff 5 }
if ($did == 2) { set %puzz_diff 7 }
if ($did == 3) { set %puzz_diff 9 }
dialog -x puzzle
}