]> jfr.im git - irc/kvirc/kvirc-scripts.git/commitdiff
initial port of forza4/connect4 script
authorFabio Bas <redacted>
Fri, 19 Mar 2010 16:11:15 +0000 (16:11 +0000)
committerFabio Bas <redacted>
Fri, 19 Mar 2010 16:11:15 +0000 (16:11 +0000)
Forza4/files/Forza4.kvs
Forza4/files/Forza4events.kvs
Forza4/install.kvs

index acd532fbd25066eb7fd6d7e7e073387959ed0c8c..45d9177ab47b7bc1e2289bbc60eb92a97b2ec1ee 100644 (file)
-alias(Forza4_classesdefinitions)
+#Name:Forza4
+#Version:1.9
+#By:Noldor-Grifisx-Pragma
+#KVIrcwrapper:version1.0 byGrifisx/Noldor
+
+class(connect4,widget)
 {
-       #Name:Forza4
-       #Version:1.9
-       #By:Noldor-Grifisx-Pragma
-       #KVIrcwrapper:version1.0 byGrifisx/Noldor
-       
-       class(forzaquattro,widget)
+       constructor()
        {
-               constructor()
+               $$->%m_pForza4Handler=$2
+               #initturn'svariables
+               $$->%isMyTurn=$0
+               $$->%myEnemy=$1
+               $$->%id=$config.open($file.localdir(config/Forza4/Forza4.conf))
+               config.setsection $$->%id Prefs
+               if(!$config.read($$->%id,Player1))
                {
-                       $$->%m_pForza4Handler=$2
-                       #initturn'svariables
-                       $$->%isMyTurn=$0
-                       $$->%myEnemy=$1
-                       $$->%id=$config.open($file.localdir(config/Forza4/Forza4.conf))
-                       config.setsection $$->%id Prefs
-                       if(!$config.read($$->%id,Player1))
-                       {
-                               %pixplayer1=blue
-                               %pixplayer2=purple
-                       }
-                       else
-                       {
-                               %tbl[]=$array(blue,purple,pink,red,green,orange)
-                               %i=0
-                               %pl1=$config.read($$->%id,Player1)
-                               while(%pl1!=%tbl[%i]) %i++
-                               %pixplayer1=%tbl[%i]
-                               %i=0
-                               %pl2=$config.read($$->%id,Player2)
-                               while(%pl2!=%tbl[%i]) %i++      
-                               %pixplayer2=%tbl[%i]
-                       }
-                       #init all the pixmaps
-                       $$->%chips_layer=$new(pixmap)
-                       $$->%chips_layer->$resize(314,262)
-                       $$->%frontgrid=$new(pixmap)
-                       $$->%frontgrid->$load($file.localdir("pics/Forza4/frontgrid.png"))
-                       #blue0
-                       %tbl[]=$array(f4blue,f4purple,f4pink,f4red,f4green,f4orange)
-                       $$->%pixmap_pl1=$new(pixmap)
-                       %file=%pixplayer1\.png
-                       $$->%pixmap_pl1->$load($file.localdir("pics/Forza4/%file"))
-                       #purple1
-                       $$->%pixmap_pl2=$new(pixmap)
-                       %file=%pixplayer2\.png
-                       $$->%pixmap_pl2->$load($file.localdir("pics/Forza4/%file"))
-                       #init the cache pixmap:we use it to save last frame of the chip animations and use it next repainting
-                       $$->%cache=$new(pixmap)
-                       $$->%cache->$resize(314,262)
-                       #let's resize and show our game'swidget
-                       $$->$resize(314,262)
-                       #setting keyboard focus
-                       $$->$setFocusPolicy(StrongFocus)
-                       #initgamesvariiable
-                       $$->$init()
-                       $$->$show()
+                       %pixplayer1=blue
+                       %pixplayer2=purple
                }
-               destructor()
+               else
                {
-                       #free memory allocations
-                       delete $$->%cache
+                       %tbl[]=$array(blue,purple,pink,red,green,orange)
+                       %i=0
+                       %pl1=$config.read($$->%id,Player1)
+                       while(%pl1!=%tbl[%i]) %i++
+                       %pixplayer1=%tbl[%i]
                        %i=0
-                       for (%i=0;$$->%pixmap[%i]!="";%i++)delete $$->%pixmap[%i]
-                       delete $$->%frontgrid
-                       delete $$->%chips_layer
+                       %pl2=$config.read($$->%id,Player2)
+                       while(%pl2!=%tbl[%i]) %i++
+                       %pixplayer2=%tbl[%i]
                }
-               keyPressEvent()
+               #init all the pixmaps
+               $$->%chips_layer=$new(pixmap)
+               $$->%chips_layer->$resize(314,262)
+               $$->%frontgrid=$new(pixmap)
+               $$->%frontgrid->$load($file.localdir("pics/Forza4/frontgrid.png"))
+               #blue0
+               %tbl[]=$array(f4blue,f4purple,f4pink,f4red,f4green,f4orange)
+               $$->%pixmap_pl1=$new(pixmap)
+               %file=%pixplayer1\.png
+               $$->%pixmap_pl1->$load($file.localdir("pics/Forza4/%file"))
+               #purple1
+               $$->%pixmap_pl2=$new(pixmap)
+               %file=%pixplayer2\.png
+               $$->%pixmap_pl2->$load($file.localdir("pics/Forza4/%file"))
+               #init the cache pixmap:we use it to save last frame of the chip animations and use it next repainting
+               $$->%cache=$new(pixmap)
+               $$->%cache->$resize(314,262)
+               #let's resize and show our game'swidget
+               $$->$resize(314,262)
+               #setting keyboard focus
+               $$->$setFocusPolicy(StrongFocus)
+               #initgamesvariiable
+               $$->$init()
+               $$->$show()
+       }
+       destructor()
+       {
+               #free memory allocations
+               delete $$->%cache
+               %i=0
+               for (%i=0;$$->%pixmap[%i]!="";%i++)delete $$->%pixmap[%i]
+               delete $$->%frontgrid
+               delete $$->%chips_layer
+       }
+       keyPressEvent()
+       {
+               if(!$$->%keysON)return
+               %key=$str.lowcase($0)
+               if(%key=="y")
                {
-                       if(!$$->%keysON)return
-                       %key=$str.lowcase($0)
-                       if(%key=="y")
-                       {
-                               # if Y(es) ask enemy player for a new game
-                               ctcp $$->%myEnemy FORZA4 RESTART
-                               $$->%keysON=0
-                       }
-                       if(%key=="n")
-                       {
-                               ctcp    $$->%myEnemy FORZA4 RESTARTDENIED
-                               $$->%m_pForza4Handler->$forza4DeleteInstance($$->%myEnemy)
-                       }
+                       # if Y(es) ask enemy player for a new game
+                       ctcp $$->%myEnemy CONNECT4 RESTART
+                       $$->%keysON=0
                }
-               mouseReleaseEvent()
+               if(%key=="n")
                {
-                       # if is not my turn or the game is over or anim in progress do nothing
-                       if(!$$->%isMyTurn||$$->%endgame||$$->%movelock)return
-                       # get player input
-                       %c=$1
-                       %a=$(%c-25)
-                       %b=40
-                       if($$->$dropChips($(%a/%b))==69)return
-                       $$->%movelock=$true
-                       $$->$starttimer(35)
+                       ctcp    $$->%myEnemy CONNECT4 RESTARTDENIED
+                       $$->%m_pForza4Handler->$deleteInstance($$->%myEnemy)
                }
-               init()
+       }
+       mouseReleaseEvent()
+       {
+               # if is not my turn or the game is over or anim in progress do nothing
+               if(!$$->%isMyTurn||$$->%endgame||$$->%movelock)return
+               # get player input
+               %c=$1
+               %a=$(%c-25)
+               %b=40
+               if($$->$dropChips($(%a/%b))==69)return
+               $$->%movelock=$true
+               $$->$starttimer(35)
+       }
+       init()
+       {
+               #init the game's tbl with a matrix of 6x7
+               %y=0
+               while(%y!=6)
                {
-                       #init the game's tbl with a matrix of 6x7
-                       %y=0
-                       while(%y!=6)
-                       {
-                               for(%x=0;%x<7;%x++) $$->%tbl{%x,%y}=$false
-                               %y++;
-                       }
-                       #loadthebackground
-                       $$->%cache->$load($file.localdir(pics/forza4/backgrid.png))
-                       #initstartpositionofthechipandmaxycoordinate
-                       $$->%ymoneta=0
-                       $$->%ymax=217
-                       #gameisover
-                       $$->%endgame=0
-                       #lockmouseeventifisn'tourturn
-                       $$->%movelock=0
-                       #checkifboardisfull
-                       $$->%total=0
-                       #unlockkeyboardwhenwelost
-                       $$->%keysON=0
-                       #init player andpixmap
-                       $$->%player=1
-                       $$->%chip=$$->%pixmap_pl1;
-                       objects.bitBlt $$->%chips_layer 0 0 $$->%cache 0 0 314 262
+                       for(%x=0;%x<7;%x++) $$->%tbl{%x,%y}=$false
+                       %y++;
                }
-               #Forza4graphiccore:
-               timerEvent()
+               #loadthebackground
+               $$->%cache->$load($file.localdir(pics/Forza4/backgrid.png))
+               #initstartpositionofthechipandmaxycoordinate
+               $$->%ymoneta=0
+               $$->%ymax=217
+               #gameisover
+               $$->%endgame=0
+               #lockmouseeventifisn'tourturn
+               $$->%movelock=0
+               #checkifboardisfull
+               $$->%total=0
+               #unlockkeyboardwhenwelost
+               $$->%keysON=0
+               #init player andpixmap
+               $$->%player=1
+               $$->%chip=$$->%pixmap_pl1;
+               %b=$new(painter)
+               %b->$begin($$->%chips_layer)
+               %b->$drawPixmap(0, 0, $$->%cache, 0, 0, 314, 262)
+               %b->$end
+       }
+       #Forza4graphiccore:
+       timerEvent()
+       {
+               %id=$0
+               objects.bitBlt $$->%chips_layer 0 0 $$->%cache 0 0 314 262
+               objects.bitBlt $$->%chips_layer $$->%moncolx $$->%ymoneta $$->%chip 0 0 29 30;
+               #chipgoesdown:-D
+               $$->%ymoneta+=5;
+               #checkifmychipareplacetothemaxyposition
+               if($$->%ymoneta>=$$->%ymax)
                {
-                       %id=$0
-                       objects.bitBlt $$->%chips_layer 0 0 $$->%cache 0 0 314 262
-                       objects.bitBlt $$->%chips_layer $$->%moncolx $$->%ymoneta $$->%chip 0 0 29 30;
-                       #chipgoesdown:-D
-                       $$->%ymoneta+=5;
-                       #checkifmychipareplacetothemaxyposition
-                       if($$->%ymoneta>=$$->%ymax)
+                       #lockpainting
+                       $$->%anim=0
+                       #initycoordinate
+                       $$->%ymoneta=0
+                       #markstblwithactualplayer
+                       $$->%tbl{$$->%moncol,$$->%monrow}=$$->%player
+                       #checkvictory
+                       %vict=$$->$checkVictory($$->%moncol,$$->%monrow)
+                       #ifvictorymanagingstatusmessages
+                       if(%vict==1)
                        {
-                               #lockpainting
-                               $$->%anim=0
-                               #initycoordinate
-                               $$->%ymoneta=0
-                               #markstblwithactualplayer
-                               $$->%tbl{$$->%moncol,$$->%monrow}=$$->%player
-                               #checkvictory
-                               %vict=$$->$checkVictory($$->%moncol,$$->%monrow)
-                               #ifvictorymanagingstatusmessages
-                               if(%vict==1)
-                               {
-                                       if($$->%isMyTurn)%msg="YouWin!" 
-                                       else
-                                       {
-                                               %msg="Youlose!|AnotherChallenge?|(Y/N)"
-                                               #setkeyboardfocustothiswidget
-                                               $$->$setFocus();
-                                               #unlockkeys
-                                               $$->%keysON=1
-                                       }
-                                       #writemsgtoscreen
-                                       $$->%write=$true
-                                       #gameover
-                                       $$->%endgame=$true
-                               }
+                               if($$->%isMyTurn)%msg="YouWin!"
                                else
                                {
-                                       $$->%total++;
-                                       #check"board'sfull"
-                                       if($$->%total==42)
-                                       {
-                                               %msg="GameOver|AnotherChallenge?|(Y/N)"
-                                               $$->%write=$true
-                                               $$->%endgame=$true
-                                               $$->%keysON=$true
-                                       }
-                                       #managing players turn's
-                                       if($$->%isMyTurn) $$->%isMyTurn=$false
-                                       else $$->%isMyTurn=$true
-                                       if ($$->%player==1) {$$->%player=2;$$->%chip=$$->%pixmap_pl2;}
-                                       else {$$->%player=1;$$->%chip=$$->%pixmap_pl1;}
-                                       #unlock mouse release event
-                                       $$->%movelock=$false()
-                                       #save frame to cache
-                                       objects.bitBlt $$->%cache 0 0 $$->%chips_layer 0 0 314 262
+                                       %msg="Youlose!|AnotherChallenge?|(Y/N)"
+                                       #setkeyboardfocustothiswidget
+                                       $$->$setFocus();
+                                       #unlockkeys
+                                       $$->%keysON=1
                                }
-                               $$->$killtimer(%id)
-                       }
-                       objects.bitBlt $$->%chips_layer 0 0 $$->%frontgrid 0 0 314 262
-                       if ($$-%write) $$->$writeToPixmap(%msg,$$->%chips_layer)
-                       $$->%write=0
-                       $$->$repaint(0)
-               }
-               paintEvent()
-               {
-                       objects.bitBlt $$ 0 0 $$->%chips_layer 0 0 314 262
-               }
-               writeToPixmap()
-               {
-                       #split the string
-                       %str[]=$str.split("|",$0)
-                       %p=$new(painter)
-                       %p->$begin($1)
-                       %i=0
-                       # set font
-                       %p->$setFont(18,"times",bold);
-                       # read the max height of the fonts to avoid centering string on the widget
-                       %descent=%p->$fontmetricsHeight();
-                       # starty=lenghtofthewidget-(maxheight*nroftherows)/2<----centering the output
-                       %starty=$((262-(%descent*%str[]#))/2)
-                       while(%i!=%str[]#)
-                       {
-                       #read the amount of pixels of our string
-                               %metricx=%p->$fontMetricsWidth(%str[%i])
-                               #centering on x
-                               %x=$((314-%metricx)/2)
-                               #set the shadow pen
-                               %p->$setPen(0,255,170);
-                               #draw the shadow text
-                               %p->$drawText(%x,%starty,%str[%i],-1,Auto)
-                               #set pen
-                               %p->$setPen(40,255,227,Hsv);
-                               #draw the text
-                               %p->$drawText($(%x+1),$(%starty+1),%str[%i],-1,Auto)
-                               #movetothenextycoordinate
-                               %starty+=%descent;
-                               #nextstr
-                               %i++
-                       }
-       
-               }
-               #managingnewsessiongame
-               restart()
-               {
-                       $$->%isMyTurn=$0
-                       $$->$init()
-               }
-               #managingkeyboardY/Nevents
-               checkVictory()
-               {
-                       #wecheck
-                       #orizzontalcontrol
-                       %i=0
-                       %x=$0
-                       %y=$1
-                       %count=0
-                       while(%i!=7)
-                       {
-                               if(($$->%tbl{$(%x+%i-3),%y}==$$->%player)) %count++
-                               else if(%count)%count--;
-                               if ((!%count&&%i==3) || %count==4)break;
-                               %i++;
-                       }
-                       if(%count>=4) return $true
-                       %i=0
-                       %count=0
-                       while(%i!=7)
-                       {
-                               if(($$->%tbl{%x,$(%y+%i-3)}==$$->%player))%count++
-                               else if(%count)%count--;
-                               if ((!%count&&%i==3)||%count==4)break;
-                               %i++;
-                       }
-                       if(%count==4) return $true
-                       %i=0
-                       %count=0
-                       while(%i!=7)
-                       {
-                               if(($$->%tbl{$(%x+(%i-3)),$(%y+(%i-3))}==$$->%player))%count++
-                               else if(%count)%count--;
-                               if ((!%count && %i==3) || %count==4)break;
-                               %i++;
+                               #writemsgtoscreen
+                               $$->%write=$true
+                               #gameover
+                               $$->%endgame=$true
                        }
-                       if(%count==4) return $true
-                       %i=0
-                       %count=0
-                       while(%i!=7)
-                       {
-                               if(($$->%tbl{$(%x+(%i-3)),$(%y-(%i-3))} == $$->%player)) %count++
-                               else if (%count) %count--;
-                               if((!%count && %i==3) || %count==4) break;
-                               %i++;
-                       }
-                       if(%count==4) return $true
-                       return $false
-               }
-               #set the max coordinates of the chip
-               setYmax()
-               {
-                       %y=5
-                       %x=$0
-                       $$->%ymax=217
-                       while(%y)
+                       else
                        {
-                               if($$->%tbl{%x,%y}=="0")return%y;
-                               $$->%ymax-=40;
-                               %y--;
+                               $$->%total++;
+                               #check"board'sfull"
+                               if($$->%total==42)
+                               {
+                                       %msg="GameOver|AnotherChallenge?|(Y/N)"
+                                       $$->%write=$true
+                                       $$->%endgame=$true
+                                       $$->%keysON=$true
+                               }
+                               #managing players turn's
+                               if($$->%isMyTurn) $$->%isMyTurn=$false
+                               else $$->%isMyTurn=$true
+                               if ($$->%player==1) {$$->%player=2;$$->%chip=$$->%pixmap_pl2;}
+                               else {$$->%player=1;$$->%chip=$$->%pixmap_pl1;}
+                               #unlock mouse release event
+                               $$->%movelock=$false()
+                               #save frame to cache
+                               objects.bitBlt $$->%cache 0 0 $$->%chips_layer 0 0 314 262
                        }
-                       if($$->%tbl{%x,%y}=="0")return%y
-                       else return 69
-               }
-               dropChips()
-               {
-                       #initchipanim
-                       if($$->$refreshChips($0)==69) return 69
-                       ctcp $$->%myEnemy FORZA4 SENDMOVE $$->%moncol
-                       return 0
-               }
-               dropEnemyChips()
-               {
-                       $$->$refreshChips($0)
-                       $$->$starttimer(35)
-               }
-               refreshChips()
-               {
-                       #calculate
-                       $$->%moncol=$0
-                       $$->%monrow=$$->$setYmax($$->%moncol)
-                       if($$->%monrow==69) return 69
-                       $$->%moncolx=$(($$->%moncol*40)+25)
-                       $$->%pixmap=$$->%player
-                       $$->%flagRefresh=$true
-                       return $true
+                       $$->$killtimer(%id)
                }
+               objects.bitBlt $$->%chips_layer 0 0 $$->%frontgrid 0 0 314 262
+               if ($$-%write) $$->$writeToPixmap(%msg,$$->%chips_layer)
+               $$->%write=0
+               $$->$repaint(0)
+       }
+       paintEvent()
+       {
+               %b=$new(painter)
+               %b->$begin($$)
+               %b->$drawPixmap(0, 0, $$->%chips_layer, 0, 0, 314, 262)
+               %b->$end
        }
-       class(forza4handler,object)
+       writeToPixmap()
        {
-               constructor
+               #split the string
+               %str[]=$str.split("|",$0)
+               %p=$new(painter)
+               %p->$begin($1)
+               %i=0
+               # set font
+               %p->$setFont(18,"times",bold);
+               # read the max height of the fonts to avoid centering string on the widget
+               %descent=%p->$fontmetricsHeight();
+               # starty=lenghtofthewidget-(maxheight*nroftherows)/2<----centering the output
+               %starty=$((262-(%descent*%str[]#))/2)
+               while(%i!=%str[]#)
                {
-                       $$->%users[]=""
-                       $$->%m_pHook=$new(hookKVIrc)
-                       $$->%users=0
-                       $$->%instance{}=""
-                       $$->%hook{}=""
+               #read the amount of pixels of our string
+                       %metricx=%p->$fontMetricsWidth(%str[%i])
+                       #centering on x
+                       %x=$((314-%metricx)/2)
+                       #set the shadow pen
+                       %p->$setPen(0,255,170);
+                       #draw the shadow text
+                       %p->$drawText(%x,%starty,%str[%i],-1,Auto)
+                       #set pen
+                       %p->$setPen(40,255,227,Hsv);
+                       #draw the text
+                       %p->$drawText($(%x+1),$(%starty+1),%str[%i],-1,Auto)
+                       #movetothenextycoordinate
+                       %starty+=%descent;
+                       #nextstr
+                       %i++
                }
-               forza4CreateInstance(flag,nick,windowId)
+
+       }
+       #managingnewsessiongame
+       restart()
+       {
+               $$->%isMyTurn=$0
+               $$->$init()
+       }
+       #managingkeyboardY/Nevents
+       checkVictory()
+       {
+               #wecheck
+               #orizzontalcontrol
+               %i=0
+               %x=$0
+               %y=$1
+               %count=0
+               while(%i!=7)
                {
-                       %flag=$0
-                       %nick=$1
-                       $$->%hook{$2}=$new(wrapper,0,"a",WinId::$2,QSplitter::main_splitter)
-                       $$->%users[%users]=$2
-                       $$->%instance{$2}=$new(forzaquattro,$$->%hook{$2},,%flag,%nick,$$)
-                       $$->%users++;
+                       if(($$->%tbl{$(%x+%i-3),%y}==$$->%player)) %count++
+                       else if(%count)%count--;
+                       if ((!%count&&%i==3) || %count==4)break;
+                       %i++;
                }
-               dropEnemyChips(move,windid)
+               if(%count>=4) return $true
+               %i=0
+               %count=0
+               while(%i!=7)
                {
-                       $$->%instance{$1}->$dropEnemyChips($0)
+                       if(($$->%tbl{%x,$(%y+%i-3)}==$$->%player))%count++
+                       else if(%count)%count--;
+                       if ((!%count&&%i==3)||%count==4)break;
+                       %i++;
                }
-               restart(flag,winid)
+               if(%count==4) return $true
+               %i=0
+               %count=0
+               while(%i!=7)
                {
-                       $$->%instance{$1}->$restart($0)
+                       if(($$->%tbl{$(%x+(%i-3)),$(%y+(%i-3))}==$$->%player))%count++
+                       else if(%count)%count--;
+                       if ((!%count && %i==3) || %count==4)break;
+                       %i++;
                }
-               forza4deleteInstance
+               if(%count==4) return $true
+               %i=0
+               %count=0
+               while(%i!=7)
                {
-                       $$->%users--;
-                       %id=$0
-                       delete $$->%instance{%id};
-                       delete $$->%hook{%id};
+                       if(($$->%tbl{$(%x+(%i-3)),$(%y-(%i-3))} == $$->%player)) %count++
+                       else if (%count) %count--;
+                       if((!%count && %i==3) || %count==4) break;
+                       %i++;
                }
-               instanceExists()
+               if(%count==4) return $true
+               return $false
+       }
+       #set the max coordinates of the chip
+       setYmax()
+       {
+               %y=5
+               %x=$0
+               $$->%ymax=217
+               while(%y)
                {
-                       return $objects.exists($$->%instance{$0})
+                       if($$->%tbl{%x,%y}=="0")return%y;
+                       $$->%ymax-=40;
+                       %y--;
                }
-               forza4DeleteAllInstances()
-               {
-                       %i=0
-                       while(%i!=$$->%users[]#)
-                       {
-                               delete $$->%instance{$$->%users[%i]}
-                               delete $$->%hook{$$->%users[%i]}
-                               %i++;   
-                       }
-               }
-               instance()
+               if($$->%tbl{%x,%y}=="0")return%y
+               else return 69
+       }
+       dropChips()
+       {
+               #initchipanim
+               if($$->$refreshChips($0)==69) return 69
+               ctcp $$->%myEnemy CONNECT4 SENDMOVE $$->%moncol
+               return 0
+       }
+       dropEnemyChips()
+       {
+               $$->$refreshChips($0)
+               $$->$starttimer(35)
+       }
+       refreshChips()
+       {
+               #calculate
+               $$->%moncol=$0
+               $$->%monrow=$$->$setYmax($$->%moncol)
+               if($$->%monrow==69) return 69
+               $$->%moncolx=$(($$->%moncol*40)+25)
+               $$->%pixmap=$$->%player
+               $$->%flagRefresh=$true
+               return $true
+       }
+}
+class(connect4handler,object)
+{
+       constructor
+       {
+               wrapKVIrc
+               $$->%users[]=""
+               $$->%m_pHook=$new(hookKVIrc)
+               $$->%nusers=0
+               $$->%instance{}=""
+               $$->%hook{}=""
+       }
+       createInstance(flag,nick,windowId)
+       {
+               %flag=$0
+               %nick=$1
+               $$->%hook{$2}=$new(wrapper,0,"a",WinId::$2,KviTalSplitter::main_splitter)
+               $$->%users[$$->%nusers]=$2
+               $$->%instance{$2}=$new(connect4,$$->%hook{$2},,%flag,%nick,$$)
+               $$->%nusers++;
+       }
+       dropEnemyChips(move,windid)
+       {
+               $$->%instance{$1}->$dropEnemyChips($0)
+       }
+       restart(flag,winid)
+       {
+               $$->%instance{$1}->$restart($0)
+       }
+       deleteInstance
+       {
+               $$->%nusers--;
+               %id=$0
+               delete $$->%instance{%id};
+               delete $$->%hook{%id};
+       }
+       instanceExists()
+       {
+               return $objects.exists($$->%instance{$0})
+       }
+       deleteAllInstances()
+       {
+               %i=0
+               while(%i!=$$->%users[]#)
                {
-                       return $$->%instance{$0}
+                       delete $$->%instance{$$->%users[%i]}
+                       delete $$->%hook{$$->%users[%i]}
+                       %i++;
                }
        }
-       return
-       wrapKVIrc
+       instance()
+       {
+               return $$->%instance{$0}
+       }
 }
 
-
-alias(Forza4_config)
+alias(Connect4_config)
 {
        #Name:Forza4
        #Version:1.9
@@ -397,13 +398,11 @@ alias(Forza4_config)
                                        config.flush $$->%id
                                }
                
-       
-                               $$->$setMaximumHeight(100)
-                               $$->$setCaption("Forza 4 "$tr("Preferences"))
+
+                               $$->$setWindowTitle("Forza 4 "$tr("Preferences"))
                                
                                $$->%combo_choose_color_P1=$new(combobox,$$)
                                $$->%combo_choose_color_P2=$new(combobox,$$)
-                               #$$->%combo_choose_color_P1->$setMaximumWidth(57)
                
        
                                %btn_save=$new(button,$$)
@@ -414,7 +413,6 @@ alias(Forza4_config)
                
                                %lbl_choose_color_P1=$new(label,$$)
                                %lbl_choose_color_P1->$settext($tr("Player one color\:"))
-                               %lbl_choose_color_P1->$setMaximumHeight(10)
                                
                           #     $$->%check_preview=$new(checkbox,$$)
                           #     $$->%check_preview->$setText($tr("Enable Preview"))
@@ -423,11 +421,9 @@ alias(Forza4_config)
                                
                                %lbl_choose_color_P2=$new(label,$$)
                                %lbl_choose_color_P2->$settext($tr("Player two color\:"))
-                               %lbl_choose_color_P2->$setMaximumHeight(10)
                
                                %lbl_choose_color_title=$new(label,$$)
                                %lbl_choose_color_title->$settext($tr("<b>\-Forza 4\- Preferences<\b>"))
-                               %lbl_choose_color_title->$setMaximumHeight(10)
                                %lbl_choose_color_title->$setAlignment(Center)
                
                                $$->%lbl_error=$new(label,$$)
index b8c6daabfd1884e7d575a83a1ba745437f7c6c8c..845f09390a1153c8b7d20d50462d5aaeb3cc4c7d 100644 (file)
@@ -1,31 +1,30 @@
-event(OnCTCPRequest,Forza4)
+event(OnCTCPRequest,Connect4)
 {
 # - Forza4 - #
 # by Noldor & Grifisx & Pragma 2005
 #
-if($4 != "FORZA4")return
+if($4 != "CONNECT4")return
 
 switch($str.section($5," ",0,0))
 {
        case("NEWGAMEREQUEST")
         {
-               if (!$classDefined(connect4))
+               if ($isEmpty(%Connect4Handler))
                {
-                       Connect4
-                       %Connect4Handler=$new(connect4::handler)
+                       %Connect4Handler=$new(connect4handler)
                }
-               if (%Connect4Handler->$InstanceExists($query($0)))
+               if (%Connect4Handler->$instanceExists($query($0)))
                {
-                       dialog.message("Connect4",$tr("<b>$0 :<\b><br>Warning, another game session is active. Do you want to drop it and open a new game?"),"","Yes","No","",$0)
-                       {
+                       dialog.message("Connect4",$tr("<b>$0 :<\b><br>Warning, another game session is active. Do you want to drop it and open a new game?"),"","Yes","No","",$0)
+                       {
                                if ($0==0)
                                {
                                        %Connect4Handler->$deleteInstance($query($1))
                                        query $1
                                        %Connect4Handler->$createInstance("0",$1,$query($1))
-                                       ctcp $1 FORZA4 NEWGAMEREQUESTACCEPT
-                               }                
-                               else ctcp $1 FORZA4 NEWGAMEREQUESTDROP
+                                       ctcp $1 CONNECT4 NEWGAMEREQUESTACCEPT
+                               }
+                               else ctcp $1 CONNECT4 NEWGAMEREQUESTDROP
                        }
                }
                else            
@@ -35,11 +34,11 @@ switch($str.section($5," ",0,0))
                        {
                                query $1
                                %Connect4Handler->$createInstance("0",$1,$query($1))
-                               ctcp $1 FORZA4 NEWGAMEREQUESTACCEPT                
+                               ctcp $1 CONNECT4 NEWGAMEREQUESTACCEPT
                        }
                        else
                        {
-                               ctcp $1 FORZA4 NEWGAMEREQUESTDROP
+                               ctcp $1 CONNECT4 NEWGAMEREQUESTDROP
                        }
                }
                break;
@@ -56,19 +55,19 @@ switch($str.section($5," ",0,0))
         }
         case("NEWGAMEREQUESTDROP")
         {  
-        break;
+               break;
         }
         case("NEWGAMEREQUESTACCEPT")
         {
        if (!%Connect4Handler->$instanceExists($query($0)))
        {
                %Connect4Handler->$createInstance("1",$0,$query($0))
-       }                
+       }
        else
        {
        %Connect4Handler->$deleteInstance($query($0))
                                query $0
-                               %Connect4Handler->$cCreateInstance("1",$0,$query($0))
+                               %Connect4Handler->$createInstance("1",$0,$query($0))
        }               
 }
         case("RESTART")
@@ -78,11 +77,11 @@ switch($str.section($5," ",0,0))
                        if($0==0)
                        {
                                %Connect4Handler->$restart(0,$query($1));
-                               ctcp $1 FORZA4 RESTARTCONFIRM  1              
+                               ctcp $1 CONNECT4 RESTARTCONFIRM  1
                        }
                        else
                        {
-                               ctcp $1 FORZA4 RESTARTDENIED
+                               ctcp $1 CONNECT4 RESTARTDENIED
                                %Connect4Handler->$deleteInstance($1)
                        }
                }
@@ -98,7 +97,7 @@ switch($str.section($5," ",0,0))
         {
                dialog.message("Connect4",$tr("<b>$0 <\b><br> have denied your request"),"","OK","","",$0)
                {
-                       %Connect4Handler->$forza4DeleteInstance($1);
+                       %Connect4Handler->$deleteInstance($1);
         }
                break;
         }
index 785cec52a1c05aad5766b067a69fb61dfe8806ca..70b9c5723cc6b5c4644af7e59bea25fadb6577ad 100644 (file)
@@ -1,14 +1,15 @@
-       addon.register("Forza4","0.9",$tr("Forza 4","F4"),$tr("A simple one o one game","F4"),"3.2.0","F4/F4_32.png")
+       addon.register("Connect4","0.9",$tr("Connect 4","F4"),$tr("A simple one o one game","F4"),"3.2.0","F4/F4_32.png")
        {
                # This is our uninstall callback: it will be called by KVIrc when addon.uninstall is invoked
                
                # This is an automatically generated alias that will erase the installed files
                Forza4_uninstallfiles
-               alias(Forza4_classesdefinitions){}
-               #alias(Forza4_uninstallfiles){}
-               alias(Forza4_config){}
-               event(onCTCPRequest,forza4){}
-               defpopup("forza4"){}
+               objects.killclass connect4handler
+               objects.killclass connect4
+               alias(Forza4_uninstallfiles){}
+               alias(Connect4_config){}
+               event(onCTCPRequest,connect4){}
+               defpopup("connect4"){}
                delpopupitem -d -q querytextview 696900
                delpopupitem -d -q querytextview 696901
                delpopupitem -d -q querytextview 696902         
@@ -56,7 +57,7 @@ defpopup -m ("querytextview")
 {
        separator("696900")
        
-       extpopup("$tr("Connect4")","forza4","269","696901")
+       extpopup("$tr("Connect4")","connect4","269","696901")
        
        separator("696902")
 }
@@ -69,18 +70,17 @@ defpopup("connect4")
        
        item("$tr("Configure Connect4")","269")
        {
-               //forza4_config
+               connect4_config
        }
        
-       item("$tr("Invite $0 to play Forza4")","269")
+       item("$tr("Invite $0 to play Connect4")","269")
        {
 
-       if (!$classDefined(connect4::handler))
+       if ($isEmpty(%Connect4Handler))
                {
-                       connect4
-                       %ConnectHandler=$new(connect4::handler)
+                       %Connect4Handler=$new(connect4handler)
                }
-        ctcp $0 FORZA4 NEWGAMEREQUEST
+               ctcp $0 CONNECT4 NEWGAMEREQUEST
        }
 }