Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Dialog System v1.0 for Vice City Multiplayer.
- Scripter: Seby
- Special credits goes to shadow.heekz,Knucis and Gudio because I learnt new squirrel stuff from them.
- ---------------------------------------------------------------------------------------------
- Add this in the top of you script:
- ---------------------------------------------------------------------------------------------
- dialogoptionchoosen <- array(GetMaxPlayers(), null);
- dialogidonscreen <- array(GetMaxPlayers(), null);
- subdialogonscreen <- array(GetMaxPlayers(), null);
- subdialogoptionchoosen <- array(GetMaxPlayers(), null);
- dialogcount <- 0;
- dialog <- array(255, null);
- ---------------------------------------------------------------------------------------------
- Add this to onServerStart
- ---------------------------------------------------------------------------------------------
- // Bind Keys ==========================================================
- UP_ARROW <- BindKey(true, 0x26, 0, 0);
- DOWN_ARROW <- BindKey(true, 0x28, 0, 0);
- SPACEBAR <- BindKey(true, 0x20, 0, 0);
- BACKSPACE <- BindKey(true, 0x08, 0, 0);
- CTRL <- BindKey(true, 0x11, 0, 0);
- // ====================================================================
- ---------------------------------------------------------------------------------------------
- Add this to onKeyDown
- ---------------------------------------------------------------------------------------------
- function onKeyDown( player, bind )
- {
- switch(bind)
- {
- case UP_ARROW:
- if(dialogidonscreen[player.ID] > -1) KeyBindDialog(player, UP_ARROW);
- break;
- case DOWN_ARROW:
- if(dialogidonscreen[player.ID] > -1) KeyBindDialog(player, DOWN_ARROW);
- break;
- case SPACEBAR:
- if(dialogidonscreen[player.ID] > -1) KeyBindDialog(player, SPACEBAR);
- break;
- case BACKSPACE:
- if(dialogidonscreen[player.ID] > -1) KeyBindDialog(player, BACKSPACE);
- break;
- default: break;
- }
- }
- ---------------------------------------------------------------------------------------------
- Add this at the end of your script
- ---------------------------------------------------------------------------------------------
- class ClassForDialog
- {
- // textdraws
- t = null;
- tt = null;
- // end of textdraws
- // sprites
- s = null;
- // end of sprites
- numberofparams = null;
- numberofparamssub = null;
- optionhassubdialog = null;
- ID = null;
- optionname = null;
- suboption = null;
- x = null;
- y = null;
- optionx = null;
- titlecol = null;
- unselectedcol = null;
- selectedcol = null;
- spritex = null;
- spritey = null;
- constructor(dialogid,thetitle, ...)
- {
- if ( vargv.len() > 1 || vargv.len() > 8)
- {
- x = 80;
- y = 310;
- optionx = x+50;
- titlecol = 0xFF00FFFF;
- unselectedcol = 0xFFAAAAAA;
- selectedcol = 0xFFFFFFFF;
- spritex = x-10;
- spritey = y-10;
- t = array(9,null);
- tt = array(9,null);
- s = array(9,null);
- suboption = array(9,null);
- for(local i = 0; i < t.len(); i++)
- {
- t[i] = array(9,null);
- tt[i] = array(9,null);
- s[i] = array(9,null);
- suboption[i] = array(9,null);
- }
- optionname = array(9,null);
- numberofparamssub = array(9,null);
- optionhassubdialog = array(9, null);
- for(local i = 0; i < optionhassubdialog.len(); i++) optionhassubdialog[i] = 0;
- ID = dialogid;
- local title = thetitle.tostring();
- //==================================================================================
- // Index options' names
- for(local so = 0; so <= vargv.len(); so++)
- {
- if(so)
- {
- optionname[so] = vargv[so-1];
- }
- }
- // Textdraws
- t[0][0] = ::CreateTextdraw(title,x,y,titlecol);
- tt[0][1] = ::CreateTextdraw(":: " + vargv[0],optionx,y+15,selectedcol);
- t[0][2] = ::CreateTextdraw(":: " + vargv[1],optionx,y+30,unselectedcol);
- t[0][1] = ::CreateTextdraw(":: " + vargv[0],optionx,y+15,unselectedcol);
- tt[0][2] = ::CreateTextdraw(":: " + vargv[1],optionx,y+30,selectedcol);
- // Sprites
- s[0][0] = ::CreateSprite("dialogbackground.png",spritex,spritey,0,0,0,200);
- s[0][1] = ::CreateSprite("dialogbackground.png",spritex,spritey+18,0,0,0,200);
- s[0][2] = ::CreateSprite("dialogbackground.png",spritex,spritey+36,0,0,0,200);
- s[0][3] = ::CreateSprite("dialogbackground.png",spritex,spritey+54,0,0,0,200);
- numberofparams = vargv.len();
- //==================================================================================
- switch(vargv.len())
- {
- case 8:
- t[0][8] = ::CreateTextdraw(":: " + vargv[7],optionx,y+120,unselectedcol);
- tt[0][8] = ::CreateTextdraw(":: " + vargv[7],optionx,y+120,selectedcol);
- t[0][7] = ::CreateTextdraw(":: " + vargv[6],optionx,y+105,unselectedcol);
- tt[0][7] = ::CreateTextdraw(":: " + vargv[6],optionx,y+105,selectedcol);
- t[0][6] = ::CreateTextdraw(":: " + vargv[5],optionx,y+90,unselectedcol);
- tt[0][6] = ::CreateTextdraw(":: " + vargv[5],optionx,y+90,selectedcol);
- CreateAllToFive(vargv[2],vargv[3],vargv[4],optionx,y,unselectedcol,selectedcol,spritex,spritey);
- s[0][8] = ::CreateSprite("dialogbackground.png",spritex,spritey+144,0,0,0,200);
- s[0][7] = ::CreateSprite("dialogbackground.png",spritex,spritey+126,0,0,0,200);
- break;
- case 7:
- t[0][7] = ::CreateTextdraw(":: " + vargv[6],optionx,y+105,unselectedcol);
- tt[0][7] = ::CreateTextdraw(":: " + vargv[6],optionx,y+105,selectedcol);
- t[0][6] = ::CreateTextdraw(":: " + vargv[5],optionx,y+90,unselectedcol);
- tt[0][6] = ::CreateTextdraw(":: " + vargv[5],optionx,y+90,selectedcol);
- CreateAllToFive(vargv[2],vargv[3],vargv[4],optionx,y,unselectedcol,selectedcol,spritex,spritey);
- s[0][7] = ::CreateSprite("dialogbackground.png",spritex,spritey+126,0,0,0,200);
- break;
- case 6:
- t[0][6] = ::CreateTextdraw(":: " + vargv[5],optionx,y+90,unselectedcol);
- tt[0][6] = ::CreateTextdraw(":: " + vargv[5],optionx,y+90,selectedcol);
- CreateAllToFive(vargv[2],vargv[3],vargv[4],optionx,y,unselectedcol,selectedcol,spritex,spritey);
- s[0][7] = ::CreateSprite("dialogbackground.png",spritex,spritey+126,0,0,0,200);
- break;
- case 5:
- CreateAllToFive(vargv[2],vargv[3],vargv[4],optionx,y,unselectedcol,selectedcol,spritex,spritey);
- case 4:
- t[0][4] = ::CreateTextdraw(":: " + vargv[3],optionx,y+60,unselectedcol);
- tt[0][4] = ::CreateTextdraw(":: " + vargv[3],optionx,y+60,selectedcol);
- t[0][3] = ::CreateTextdraw(":: " + vargv[2],optionx,y+45,unselectedcol);
- tt[0][3] = ::CreateTextdraw(":: " + vargv[2],optionx,y+45,selectedcol);
- s[0][5] = ::CreateSprite("dialogbackground.png",spritex,spritey+90,0,0,0,200);
- s[0][4] = ::CreateSprite("dialogbackground.png",spritex,spritey+72,0,0,0,200);
- break;
- case 3:
- t[0][3] = ::CreateTextdraw(":: " + vargv[2],optionx,y+45,unselectedcol);
- tt[0][3] = ::CreateTextdraw(":: " + vargv[2],optionx,y+45,selectedcol);
- s[0][4] = ::CreateSprite("dialogbackground.png",spritex,spritey+72,0,0,0,200);
- break;
- default: break;
- }
- } else ::print("Error in Dialog System - You can add min 2 options, and max 8 options !");
- }
- function CreateAllToFive(param1,param2,param3,optionx,y,unselectedcol,selectedcol,spritex,spritey)
- {
- t[0][5] = ::CreateTextdraw(":: " + param3,optionx,y+75,unselectedcol);
- tt[0][5] = ::CreateTextdraw(":: " + param3,optionx,y+75,selectedcol);
- t[0][4] = ::CreateTextdraw(":: " + param2,optionx,y+60,unselectedcol);
- tt[0][4] = ::CreateTextdraw(":: " + param2,optionx,y+60,selectedcol);
- t[0][3] = ::CreateTextdraw(":: " + param1,optionx,y+45,unselectedcol);
- tt[0][3] = ::CreateTextdraw(":: " + param1,optionx,y+45,selectedcol);
- s[0][6] = ::CreateSprite("dialogbackground.png",spritex,spritey+108,0,0,0,200);
- s[0][5] = ::CreateSprite("dialogbackground.png",spritex,spritey+90,0,0,0,200);
- s[0][4] = ::CreateSprite("dialogbackground.png",spritex,spritey+72,0,0,0,200);
- }
- function AddSubDialog(option, ...)
- {
- if ( vargv.len() > 1 || vargv.len() < 9)
- {
- numberofparamssub[option] = vargv.len();
- for(local so = 1; so <= vargv.len(); so++)
- {
- if(so)
- {
- suboption[option][so] = vargv[so-1];
- }
- }
- for(local so = vargv.len(); so < 9; so++)
- {
- if(so)
- {
- if(so != vargv.len())
- suboption[option][so] = 0;
- }
- }
- StuffForSubDialog(option,numberofparamssub[option],suboption[option][1],suboption[option][2],suboption[option][3],suboption[option][4],suboption[option][5],suboption[option][6],suboption[option][7],suboption[option][8]);
- } else ::print("Error in Dialog System - You can add min 2 suboptions, and max 8 suboptions !");
- }
- function StuffForSubDialog(option,params,name1,name2,name3,name4,name5,name6,name7,name8)
- {
- local title = optionname[option];
- optionhassubdialog[option] = 1;
- t[option][0] = ::CreateTextdraw(title,x,y,titlecol);
- tt[option][1] = ::CreateTextdraw(":: " + name1,optionx,y+15,selectedcol);
- t[option][2] = ::CreateTextdraw(":: " + name2,optionx,y+30,unselectedcol);
- t[option][1] = ::CreateTextdraw(":: " + name1,optionx,y+15,unselectedcol);
- tt[option][2] = ::CreateTextdraw(":: " + name2,optionx,y+30,selectedcol);
- s[option][0] = ::CreateSprite("dialogbackground.png",spritex,spritey,0,0,0,200);
- s[option][1] = ::CreateSprite("dialogbackground.png",spritex,spritey+18,0,0,0,200);
- s[option][2] = ::CreateSprite("dialogbackground.png",spritex,spritey+36,0,0,0,200);
- s[option][3] = ::CreateSprite("dialogbackground.png",spritex,spritey+54,0,0,0,200);
- if(name3 != null)
- {
- t[option][3] = ::CreateTextdraw(":: " + name3,optionx,y+45,unselectedcol);
- tt[option][3] = ::CreateTextdraw(":: " + name3,optionx,y+45,selectedcol);
- s[option][4] = ::CreateSprite("dialogbackground.png",spritex,spritey+72,0,0,0,200);
- }
- if(name4 != null)
- {
- t[option][4] = ::CreateTextdraw(":: " + name4,optionx,y+60,unselectedcol);
- tt[option][4] = ::CreateTextdraw(":: " + name4,optionx,y+60,selectedcol);
- s[option][5] = ::CreateSprite("dialogbackground.png",spritex,spritey+90,0,0,0,200);
- }
- if(name5 != null)
- {
- t[option][5] = ::CreateTextdraw(":: " + name5,optionx,y+75,unselectedcol);
- tt[option][5] = ::CreateTextdraw(":: " + name5,optionx,y+75,selectedcol);
- s[option][6] = ::CreateSprite("dialogbackground.png",spritex,spritey+108,0,0,0,200);
- }
- if(name6 != null)
- {
- t[option][6] = ::CreateTextdraw(":: " + name6,optionx,y+90,unselectedcol);
- tt[option][6] = ::CreateTextdraw(":: " + name6,optionx,y+90,selectedcol);
- s[option][7] = ::CreateSprite("dialogbackground.png",spritex,spritey+126,0,0,0,200);
- }
- if(name7 != null)
- {
- t[option][7] = ::CreateTextdraw(":: " + name7,optionx,y+105,unselectedcol);
- tt[option][7] = ::CreateTextdraw(":: " + name7,optionx,y+105,selectedcol);
- }
- if(name8 != null)
- {
- t[option][8] = ::CreateTextdraw(":: " + name8,optionx,y+120,unselectedcol);
- tt[option][8] = ::CreateTextdraw(":: " + name8,optionx,y+120,selectedcol);
- s[option][8] = ::CreateSprite("dialogbackground.png",spritex,spritey+144,0,0,0,200);
- }
- }
- function ShowSubDialogForPlayer(player,option)
- {
- local params = numberofparamssub[option];
- t[option][0].ShowForPlayer(player);
- tt[option][1].ShowForPlayer(player);
- t[option][2].ShowForPlayer(player);
- for(local soo = 0; soo < 4; soo++)
- if(s[option][soo]) s[option][soo].ShowForPlayer(player);
- switch(params)
- {
- case 8:
- for(local soo = 2; soo < 9; soo++)
- if(t[option][soo]) t[option][soo].ShowForPlayer(player);
- for(local soo = 4; soo < 9; soo++)
- if(s[option][soo]) s[option][soo].ShowForPlayer(player);
- case 7:
- for(local soo = 2; soo < 8; soo++)
- if(t[option][soo]) t[option][soo].ShowForPlayer(player);
- for(local soo = 4; soo < 8; soo++)
- if(s[option][soo]) s[option][soo].ShowForPlayer(player);
- case 6:
- for(local soo = 2; soo < 7; soo++)
- if(t[option][soo]) t[option][soo].ShowForPlayer(player);
- for(local soo = 4; soo < 7; soo++)
- if(s[option][soo]) s[option][soo].ShowForPlayer(player);
- case 5:
- for(local soo = 2; soo < 6; soo++)
- if(t[option][soo]) t[option][soo].ShowForPlayer(player);
- for(local soo = 4; soo < 6; soo++)
- if(s[option][soo]) s[option][soo].ShowForPlayer(player);
- case 4:
- for(local soo = 2; soo < 5; soo++)
- if(t[option][soo]) t[option][soo].ShowForPlayer(player);
- for(local soo = 4; soo < 5; soo++)
- if(s[option][soo]) s[option][soo].ShowForPlayer(player);
- break;
- case 3:
- t[option][3].ShowForPlayer(player);
- s[option][4].ShowForPlayer(player);
- break;
- default: break;
- }
- ::subdialogoptionchoosen[player.ID] = 1;
- }
- function HideSubDialogForPlayer(player,option)
- {
- local params = numberofparamssub[option];
- t[option][0].HideFromPlayer(player);
- t[option][1].HideFromPlayer(player);
- tt[option][1].HideFromPlayer(player);
- t[option][2].HideFromPlayer(player);
- tt[option][2].HideFromPlayer(player);
- for(local soo = 0; soo < 4; soo++)
- if(s[option][soo]) s[option][soo].HideFromPlayer(player);
- switch(params)
- {
- case 8:
- for(local soo = 2; soo < 9; soo++)
- if(t[option][soo]) t[option][soo].HideFromPlayer(player);
- for(local tee = 2; tee < 9; tee++)
- if(tt[option][tee]) tt[option][tee].HideFromPlayer(player);
- for(local soo = 4; soo < 9; soo++)
- if(s[option][soo]) s[option][soo].HideFromPlayer(player);
- case 7:
- for(local soo = 2; soo < 8; soo++)
- if(t[option][soo]) t[option][soo].HideFromPlayer(player);
- for(local tee = 2; tee < 8; tee++)
- if(tt[option][tee]) tt[option][tee].HideFromPlayer(player);
- for(local soo = 4; soo < 8; soo++)
- if(s[option][soo]) s[option][soo].HideFromPlayer(player);
- case 6:
- for(local soo = 2; soo < 7; soo++)
- if(t[option][soo]) t[option][soo].HideFromPlayer(player);
- for(local tee = 2; tee < 7; tee++)
- if(tt[option][tee]) tt[option][tee].HideFromPlayer(player);
- for(local soo = 4; soo < 7; soo++)
- if(s[option][soo]) s[option][soo].HideFromPlayer(player);
- case 5:
- for(local soo = 2; soo < 6; soo++)
- if(t[option][soo]) t[option][soo].HideFromPlayer(player);
- for(local tee = 2; tee < 6; tee++)
- if(tt[option][tee]) tt[option][tee].HideFromPlayer(player);
- for(local soo = 4; soo < 6; soo++)
- if(s[option][soo]) s[option][soo].HideFromPlayer(player);
- case 4:
- for(local soo = 2; soo < 5; soo++)
- if(t[option][soo]) t[option][soo].HideFromPlayer(player);
- for(local tee = 2; tee < 5; tee++)
- if(tt[option][tee]) tt[option][tee].HideFromPlayer(player);
- for(local soo = 4; soo < 5; soo++)
- if(s[option][soo]) s[option][soo].HideFromPlayer(player);
- break;
- case 3:
- t[option][3].HideFromPlayer(player);
- tt[option][3].HideFromPlayer(player);
- s[option][4].HideFromPlayer(player);
- break;
- default: break;
- }
- ::subdialogoptionchoosen[player.ID] = 0;
- }
- function ShowForPlayer(player)
- {
- t[0][0].ShowForPlayer(player);
- tt[0][1].ShowForPlayer(player);
- t[0][2].ShowForPlayer(player);
- s[0][0].ShowForPlayer(player);
- s[0][1].ShowForPlayer(player);
- s[0][2].ShowForPlayer(player);
- s[0][3].ShowForPlayer(player);
- switch(numberofparams)
- {
- case 8:
- for(local sp = 4; sp < 9; sp++)
- if(s[0][sp]) s[0][sp].ShowForPlayer(player);
- for(local te = 2; te < 9; te++)
- if(t[0][te]) t[0][te].ShowForPlayer(player);
- break;
- case 7:
- for(local sp = 4; sp < 8; sp++)
- if(s[0][sp]) s[0][sp].ShowForPlayer(player);
- for(local te = 2; te < 8; te++)
- if(t[0][te]) t[0][te].ShowForPlayer(player);
- break;
- case 6:
- for(local sp = 4; sp < 7; sp++)
- if(s[0][sp]) s[0][sp].ShowForPlayer(player);
- for(local te = 2; te < 7; te++)
- if(t[0][te]) t[0][te].ShowForPlayer(player);
- break;
- case 5:
- for(local sp = 4; sp < 6; sp++)
- if(s[0][sp]) s[0][sp].ShowForPlayer(player);
- for(local te = 2; te < 6; te++)
- if(t[0][te]) t[0][te].ShowForPlayer(player);
- break;
- case 4:
- for(local sp = 4; sp < 5; sp++)
- if(s[0][sp]) s[0][sp].ShowForPlayer(player);
- for(local te = 2; te < 5; te++)
- if(t[0][te]) t[0][te].ShowForPlayer(player);
- break;
- case 3:
- t[0][3].ShowForPlayer(player);
- s[0][4].ShowForPlayer(player);
- break;
- default: break;
- } // end of switch
- player.IsFrozen = true;
- dialogoptionchoosen[player.ID] = 1;
- dialogidonscreen[player.ID] = ID;
- }
- function HideFromPlayer(player, type)
- {
- t[0][0].HideFromPlayer(player);
- t[0][1].HideFromPlayer(player);
- tt[0][1].HideFromPlayer(player);
- t[0][2].HideFromPlayer(player);
- tt[0][2].HideFromPlayer(player);
- s[0][0].HideFromPlayer(player);
- s[0][1].HideFromPlayer(player);
- s[0][2].HideFromPlayer(player);
- s[0][3].HideFromPlayer(player);
- switch(numberofparams)
- {
- case 8:
- for(local sp = 4; sp < 9; sp++)
- if(s[0][sp]) s[0][sp].HideFromPlayer(player);
- for(local te = 2; te < 9; te++)
- if(t[0][te]) t[0][te].HideFromPlayer(player);
- for(local tee = 2; tee < 9; tee++)
- if(tt[0][tee]) tt[0][tee].HideFromPlayer(player);
- break;
- case 7:
- for(local sp = 4; sp < 8; sp++)
- if(s[0][sp]) s[0][sp].HideFromPlayer(player);
- for(local te = 2; te < 8; te++)
- if(t[0][te]) t[0][te].HideFromPlayer(player);
- for(local tee = 2; tee < 8; tee++)
- if(tt[0][tee]) tt[0][tee].HideFromPlayer(player);
- break;
- case 6:
- for(local sp = 4; sp < 8; sp++)
- if(s[0][sp]) s[0][sp].HideFromPlayer(player);
- for(local te = 2; te < 7; te++)
- if(t[0][te]) t[0][te].HideFromPlayer(player);
- for(local tee = 2; tee < 7; tee++)
- if(tt[0][tee]) tt[0][tee].HideFromPlayer(player);
- break;
- case 5:
- for(local sp = 4; sp < 7; sp++)
- if(s[0][sp]) s[0][sp].HideFromPlayer(player);
- for(local te = 2; te < 6; te++)
- if(t[0][te]) t[0][te].HideFromPlayer(player);
- for(local tee = 2; tee < 6; tee++)
- if(tt[0][tee]) tt[0][tee].HideFromPlayer(player);
- break;
- case 4:
- for(local sp = 4; sp < 6; sp++)
- if(s[0][sp]) s[0][sp].HideFromPlayer(player);
- for(local te = 2; te < 5; te++)
- if(t[0][te]) t[0][te].HideFromPlayer(player);
- for(local tee = 2; tee < 5; tee++)
- if(tt[0][tee]) tt[0][tee].HideFromPlayer(player);
- break;
- case 3:
- t[0][3].HideFromPlayer(player);
- tt[0][3].HideFromPlayer(player);
- s[0][4].HideFromPlayer(player);
- break;
- default: break;
- } // end of switch
- switch(type)
- {
- case 0:
- player.IsFrozen = false;
- dialogoptionchoosen[player.ID] = 0;
- dialogidonscreen[player.ID] = -1;
- break;
- case 1:
- break;
- default: break;
- } // end of switch
- }
- thetitle = "Dialog System v1.0 (by Seby)";
- }
- function CreateDialog(thetitle, ...)
- {
- if ( vargv.len() > 1 || vargv.len() > 8)
- {
- switch(vargv.len())
- {
- case 2:
- dialog[dialogcount] = ClassForDialog(dialogcount,thetitle,vargv[0],vargv[1]);
- dialogcount++;
- return dialog[dialogcount];
- case 3:
- dialog[dialogcount] = ClassForDialog(dialogcount,thetitle,vargv[0],vargv[1],vargv[2]);
- dialogcount++;
- return dialog[dialogcount];
- case 4:
- dialog[dialogcount] = ClassForDialog(dialogcount,thetitle,vargv[0],vargv[1],vargv[2],vargv[3]);
- dialogcount++;
- return dialog[dialogcount];
- case 5:
- dialog[dialogcount] = ClassForDialog(dialogcount,thetitle,vargv[0],vargv[1],vargv[2],vargv[3],vargv[4]);
- dialogcount++;
- return dialog[dialogcount];
- case 6:
- dialog[dialogcount] = ClassForDialog(dialogcount,thetitle,vargv[0],vargv[1],vargv[2],vargv[3],vargv[4],vargv[5]);
- dialogcount++;
- return dialog[dialogcount];
- case 7:
- dialog[dialogcount] = ClassForDialog(dialogcount,thetitle,vargv[0],vargv[1],vargv[2],vargv[3],vargv[4],vargv[5],vargv[6]);
- dialogcount++;
- return dialog[dialogcount];
- case 8:
- dialog[dialogcount] = ClassForDialog(dialogcount,thetitle,vargv[0],vargv[1],vargv[2],vargv[3],vargv[4],vargv[5],vargv[6],vargv[7]);
- dialogcount++;
- return dialog[dialogcount];
- default: break;
- }
- } else ::print("Error in Dialog System - You can add min 2 options, and max 8 options !");
- }
- function KeyBindDialog(player, bind)
- {
- local dialogid = dialogidonscreen[player.ID],
- thedialog = dialog[dialogid],
- newoption = dialogoptionchoosen[player.ID] + 1,
- newoptionup = dialogoptionchoosen[player.ID] - 1,
- subnewoption = subdialogoptionchoosen[player.ID] + 1,
- subnewoptionup = subdialogoptionchoosen[player.ID] - 1,
- option = dialogoptionchoosen[player.ID],
- suboptionchoosen = subdialogoptionchoosen[player.ID],
- maxparams = thedialog.numberofparams,
- submaxparams = thedialog.numberofparamssub[dialogoptionchoosen[player.ID]];
- switch(bind)
- {
- case UP_ARROW:
- if(subdialogonscreen[player.ID] == 0)
- {
- if(option != 1)
- {
- thedialog.tt[0][option].HideFromPlayer(player);
- thedialog.t[0][option].ShowForPlayer(player);
- thedialog.t[0][newoptionup].HideFromPlayer(player);
- thedialog.tt[0][newoptionup].ShowForPlayer(player);
- dialogoptionchoosen[player.ID]--;
- }
- else
- {
- thedialog.tt[0][option].HideFromPlayer(player);
- thedialog.t[0][option].ShowForPlayer(player);
- thedialog.t[0][maxparams].HideFromPlayer(player);
- thedialog.tt[0][maxparams].ShowForPlayer(player);
- dialogoptionchoosen[player.ID] = maxparams;
- }
- }
- else
- {
- if(suboptionchoosen != 1)
- {
- thedialog.tt[option][suboptionchoosen].HideFromPlayer(player);
- thedialog.t[option][suboptionchoosen].ShowForPlayer(player);
- thedialog.t[option][subnewoptionup].HideFromPlayer(player);
- thedialog.tt[option][subnewoptionup].ShowForPlayer(player);
- subdialogoptionchoosen[player.ID]--;
- }
- else
- {
- thedialog.tt[option][suboptionchoosen].HideFromPlayer(player);
- thedialog.t[option][suboptionchoosen].ShowForPlayer(player);
- thedialog.t[option][submaxparams].HideFromPlayer(player);
- thedialog.tt[option][submaxparams].ShowForPlayer(player);
- subdialogoptionchoosen[player.ID] = submaxparams;
- }
- }
- break;
- case DOWN_ARROW:
- if(subdialogonscreen[player.ID] == 0)
- {
- if(option != maxparams)
- {
- thedialog.tt[0][option].HideFromPlayer(player);
- thedialog.t[0][option].ShowForPlayer(player);
- thedialog.t[0][newoption].HideFromPlayer(player);
- thedialog.tt[0][newoption].ShowForPlayer(player);
- dialogoptionchoosen[player.ID]++;
- }
- else
- {
- thedialog.tt[0][option].HideFromPlayer(player);
- thedialog.t[0][option].ShowForPlayer(player);
- thedialog.t[0][1].HideFromPlayer(player);
- thedialog.tt[0][1].ShowForPlayer(player);
- dialogoptionchoosen[player.ID] = 1;
- }
- }
- else
- {
- if(suboptionchoosen != submaxparams)
- {
- thedialog.tt[option][suboptionchoosen].HideFromPlayer(player);
- thedialog.t[option][suboptionchoosen].ShowForPlayer(player);
- thedialog.t[option][subnewoption].HideFromPlayer(player);
- thedialog.tt[option][subnewoption].ShowForPlayer(player);
- subdialogoptionchoosen[player.ID]++;
- }
- else
- {
- thedialog.tt[option][suboptionchoosen].HideFromPlayer(player);
- thedialog.t[option][suboptionchoosen].ShowForPlayer(player);
- thedialog.t[option][1].HideFromPlayer(player);
- thedialog.tt[option][1].ShowForPlayer(player);
- subdialogoptionchoosen[player.ID] = 1;
- }
- }
- break;
- case SPACEBAR:
- if(thedialog.optionhassubdialog[option] == 0) onPlayerDialog(player, dialogid, option);
- else
- {
- if(subdialogonscreen[player.ID] == 0)
- {
- thedialog.HideFromPlayer(player,1);
- thedialog.ShowSubDialogForPlayer(player,option);
- subdialogonscreen[player.ID] = 1;
- }
- onPlayerSubDialog(player, option, suboptionchoosen);
- }
- break;
- case BACKSPACE:
- if(subdialogonscreen[player.ID] == 0)
- {
- thedialog.HideFromPlayer(player,0);
- dialogidonscreen[player.ID] = -1;
- dialogoptionchoosen[player.ID] = 0;
- }
- else
- {
- subdialogoptionchoosen[player.ID] = 0;
- subdialogonscreen[player.ID] = 0;
- dialogoptionchoosen[player.ID] = 1;
- thedialog.HideSubDialogForPlayer(player,option);
- thedialog.ShowForPlayer(player);
- }
- break;
- default: break;
- }
- }
- function onPlayerDialog(player, dialogid, option)
- {
- switch(dialogid)
- {
- case 0:
- switch(option)
- {
- case 1:
- // code here for option 1
- break;
- default: break;
- }
- break;
- default: break;
- }
- }
- function onPlayerSubDialog(player, subdialogid, option)
- {
- switch(subdialogid)
- {
- case 1:
- switch(option)
- {
- case 1:
- if(player.Vehicle) player.Vehicle.Colour1 = 0;
- break;
- case 2:
- if(player.Vehicle) player.Vehicle.Colour2 = 1;
- break;
- default: break;
- }
- break;
- default: break;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement