// SCRIPT HEADER ***************************************************************** // DESCRIPTION: Abstract class for handling duels // CALLED BY: spellimpact // PARAMS: t: target, i: origin // TYPE: Server-Side // ************************************************************* SCRIPT HEADER END // * // * // SCRIPT INIT ******************************************************************* @INIT if [scr_debug == 1] goto DEBUG goto SCRIPT // *************************************************************** SCRIPT INIT END // * // * // SCRIPT DEBUG ****************************************************************** @DEBUG Echo #scr_debug_prefix#"Calling script _DUEL" goto SCRIPT // ************************************************************** SCRIPT DEBUG END // * // * // SCRIPT CODE ******************************************************************* @SCRIPT if [scr_debug == 1] Echo #scr_debug_prefix#"Calling method _DUEL::"#GetScriptParam(::)# goto #GetScriptParam(::)# goto EOF // *** // * Requests a duel with another player // * @param int t target index // * @param int i origin index // *** @REQUEST Set scr_duelr_tid #GetClientNumFromIndex(|#GetScriptParam(t)|#)# Set scr_duelr_iid #GetClientNumFromIndex(|#GetScriptParam(i)|#)# Set scr_duelr_istat #scr_cl|#scr_duelr_iid|#_duel# Set scr_duelr_tstat #scr_cl|#scr_duelr_istat|#_duel# if [scr_duelr_tstat == scr_duelr_istat] "if [scr_duelr_istat != -1] goto REQUEST_SELFINPROGRESS" Set scr_duelr_tstat #scr_cl|#scr_duelr_tid|#_duel# Set scr_duelr_istat #scr_cl|#scr_duelr_tstat|#_duel# if [scr_duelr_istat == scr_duelr_tid] "if [scr_duelr_tstat != -1] goto REQUEST_INPROGRESS" Set scr_duelr_tstat #scr_cl|#scr_duelr_tid|#_duel# Set scr_duelr_istat #scr_cl|#scr_duelr_iid|#_duel# if [scr_duelr_istat == scr_duelr_tid] goto REQUEST_ALREADYSENT Set scr_cl#scr_duelr_iid#_duel #scr_duelr_tid# if [scr_duelr_tstat == scr_duelr_iid] goto REQUEST_ACCEPTED // Send duel request Set scr_duelr_type #GetType(|#GetScriptParam(i)|#)# Set scr_duelr_img #|#scr_duelr_type|#_IconPath# Set scr_duelr_h "Incoming duel request" Set scr_duelr_c "^y"#GetClientNameFromClientNum(|#scr_duelr_iid|#)#"^* is requesting a duel! Select your duel skill and use it on him to accept." StartEffectOnObject #GetScriptParam(i)# #scr_duel_requestfx1# StartEffectOnObject #GetScriptParam(t)# #scr_duel_requestfx2# ClientExecScript #scr_duelr_tid# _CL_PLAYER :: DUELPOP_REQUEST h #scr_duelr_h# c #scr_duelr_c# img #scr_duelr_img# goto EOF @REQUEST_ACCEPTED ExecScript _DUEL :: START t #GetScriptParam(t)# i #GetScriptParam(i)# goto EOF @REQUEST_SELFINPROGRESS Set scr_duelr_img "/npcs/chiprell/icon.tga" Set scr_duelr_h "Why u doing this?" Set scr_duelr_c "You are already in a duel." ClientExecScript #scr_duelr_iid# _CL_PLAYER :: DUELPOP_INFO h #scr_duelr_h# c #scr_duelr_c# img #scr_duelr_img# goto EOF @REQUEST_INPROGRESS Set scr_duelr_img "/npcs/chiprell/icon.tga" Set scr_duelr_h "Why u doing this?" Set scr_duelr_c "^y"#GetClientNameFromClientNum(|#scr_duelr_tid|#)#"^* is already in a duel." ClientExecScript #scr_duelr_iid# _CL_PLAYER :: DUELPOP_INFO h #scr_duelr_h# c #scr_duelr_c# img #scr_duelr_img# goto EOF @REQUEST_ALREADYSENT Set scr_duelr_img "/npcs/chiprell/icon.tga" Set scr_duelr_h "Why u doing this?" Set scr_duelr_c "You have already challenged ^y"#GetClientNameFromClientNum(|#scr_duelr_tid|#)#"^* to a duel." ClientExecScript #scr_duelr_iid# _CL_PLAYER :: DUELPOP_INFO h #scr_duelr_h# c #scr_duelr_c# img #scr_duelr_img# goto EOF // *** // * Starts a duel between 2 players // * @param int t target index // * @param int i origin index // *** @START Set scr_duels_tid #GetClientNumFromIndex(|#GetScriptParam(t)|#)# Set scr_duels_iid #GetClientNumFromIndex(|#GetScriptParam(i)|#)# // Send a confirmation message to both players Set scr_duels_img "/ui/commander/attack_down.tga" Set scr_duels_h "Duel accepted" Set scr_duels_c "^y"#GetClientNameFromClientNum(|#scr_duels_iid|#)#"^* has accepted your challenge!" ClientExecScript #scr_duels_tid# _CL_PLAYER :: DUELPOP_REQUEST h #scr_duels_h# c #scr_duels_c# img #scr_duels_img# Set scr_duels_c "You have accepted ^y"#GetClientNameFromClientNum(|#scr_duels_tid|#)#" challenge!" ClientExecScript #scr_duels_iid# _CL_PLAYER :: DUELPOP_REQUEST h #scr_duels_h# c #scr_duels_c# img #scr_duels_img# // Renew players ExecScript _SVR_PLAYER :: RENEW i #GetScriptParam(t)# ExecScript _SVR_PLAYER :: RENEW i #GetScriptParam(i)# // Start delay if [scr_duel_usedelay == 1] Sleep #scr_duel_startdelay# // Remove ally status RemoveAlliedTeam #GetTeam(|#GetScriptParam(i)|#)# #GetTeam(|#GetScriptParam(t)|#)# RemoveAlliedTeam #GetTeam(|#GetScriptParam(t)|#)# #GetTeam(|#GetScriptParam(i)|#)# // Play duel effect StartEffectOnObject #GetScriptParam(t)# #scr_duel_startfx# StartEffectOnObject #GetScriptParam(i)# #scr_duel_startfx# goto EOF // *************************************************************** SCRIPT CODE END // * // * // SCRIPT EOF ******************************************************************** @EOF // *****************************************************************SCRIPT EOF END