block load { //Switches insurance mod on or off es_xset insurance_on 1 //Sets the amount of time in seconds at the beginning of the round where insurance can be taken es_xset insurance_starttime 15 //Sets the command to use to bring up the insurance menu es_xset insurance_command "!insure" //Sets the command to use to bring up the insurance message style option menu es_xset insurance_optcommand "!insureoptions" //Sets the bonus multiplier given for killing a player insured by yourself (percentage (%) of payout) es_xset insurance_bonus 20 //Sets the payout reciprocal for payout against Kills:Deaths difference (low values give very high payouts, high values lower payouts, must be greater than 0) es_xset insurance_payfactor 10 //Sets the minimum payout offset for payout es_xset insurance_payoffset 0.1 //Controls if messages are shown at beginning of round, 1 for on, 0 for off es_xset insurance_messagebeginning 1 //Controls if payments are made to insurers that are dead, 1 for yes, 0 for no es_xset insurance_paytodead 0 //Controls if messages are sent to the insured when someone is chosen to be insured es_xset insurance_messageinsured 1 //Sets the amount of payout returned to the insured if they do not die in round (percentage (%) of payout) es_xset insurance_noclaimsbonus 30 //Do not edit anything below this line es_xmakepublic insurance_on es_xset insurance_exi 0 es_xset insurance_nomore 1 es_xset insurance_p_element 0 es_xset insurance_p_no 0 es_xset insurance_cur_popup 0 es_xset insurance_cur_popup2 0 es_xset insurance_space " " es_xset insurance_tempkey 0 es_xset insurance_tempkeyvalue 0 es_xset insurance_tempkeyvalue2 0 es_xset insurance_usery 0 es_xset insurance_kills 0 es_xset insurance_deaths 0 es_xset insurance_odds 0 es_xset last_death 0 es_xset insurance_currentcash 0 es_xset insurance_cashamount 0 es_xset insurance_name 0 es_xset insurance_attacker 0 es_xset insurance_choice 0 es_xset insurance_choicecontinued 0 es_xset insurance_isdead 0 es_xset insurance_string 0 es_xset insurance_myteamid 0 es_xset insurance_teamid 0 es_xset insurance_average 0 es_xset insurance_ratio 0 es_xset insurance_tempvalue 0 es_xset insurance_oldpopup 0 es_xset insurance_oldcount 0 es_xset insurance_count 0 es_exists insurance_exi saycommand server_var(insurance_command) ifx true(insurance_exi) do { es_unregsaycmd server_var(insurance_command) } es_regsaycmd server_var(insurance_command) insurance/menu "Bring up insurance menu" es_exists insurance_exi saycommand server_var(insurance_optcommand) ifx true(insurance_exi) do { es_unregsaycmd server_var(insurance_optcommand) } es_regsaycmd server_var(insurance_optcommand) insurance/show_options "Bring up insurance message option menu" popup create CashAmounts popup addline CashAmounts "[Insurance]" popup addline CashAmounts " " popup addline CashAmounts "Choose the amount you wish to insure for" popup addline CashAmounts "from the list below." popup addline CashAmounts " " popup addline CashAmounts "->1. $100" popup addline CashAmounts "->2. $250" popup addline CashAmounts "->3. $500" popup addline CashAmounts "->4. $1000" popup addline CashAmounts "->5. $2000" popup addline CashAmounts "->6. $3000" popup addline CashAmounts "->7. $5000" popup addline CashAmounts "->8. $10000" popup addline CashAmounts "->9. ALL" popup addline CashAmounts " " popup addline CashAmounts "0. Cancel" popup menuvalue CashAmounts insurance_cashamount 1 100 popup menuvalue CashAmounts insurance_cashamount 2 250 popup menuvalue CashAmounts insurance_cashamount 3 500 popup menuvalue CashAmounts insurance_cashamount 4 1000 popup menuvalue CashAmounts insurance_cashamount 5 2000 popup menuvalue CashAmounts insurance_cashamount 6 3000 popup menuvalue CashAmounts insurance_cashamount 7 5000 popup menuvalue CashAmounts insurance_cashamount 8 10000 popup menuselect CashAmounts insurance/cash_chosen popup create BugOptions popup addline BugOptions "[Insurance]" popup addline BugOptions " " popup addline BugOptions "You can change how IM interacts with you." popup addline BugOptions "Choose from the options below." popup addline BugOptions " " popup addline BugOptions "->1. Return to full functionality" popup addline BugOptions "->2. No popup at beginning, but remind in chat" popup addline BugOptions "->3. No interactivity with IM" popup addline BugOptions " " popup addline BugOptions "0. Cancel" popup menuselect BugOptions insurance/bugmenot_chosen popup create NoInsurance popup addline NoInsurance "[Insurance]" popup addline NoInsurance " " popup addline NoInsurance "There are no players on the opposite team" popup addline NoInsurance "that can be insured." popup addline NoInsurance " " popup addline NoInsurance "->1. Close Message" popup addline NoInsurance " " popup addline NoInsurance "0. Change Insurance Mod message style" popup menuselect NoInsurance insurance/no_insurance es_keygroupdelete insurance_bugmenot es_keygroupcreate insurance_bugmenot } event round_start { ifx true(insurance_on) do { es_xset insurance_nomore 0 es_xkeygroupdelete insurances es_xkeygroupcreate insurances es_xkeygroupdelete insurance_plist es_xcreateplayerlist insurance_plist es_xforeachkey insurance_tempkey in insurance_plist "es_keysetvalue insurance_plist server_var(insurance_tempkey) insurecount 0" es_xforeachkey insurance_tempkey in insurance_plist "es_keysetvalue insurance_plist server_var(insurance_tempkey) insuretotal 0" es_xforeachkey insurance_tempkey in insurance_plist "es_xdoblock insurance/is_bugging" es_delayed server_var(insurance_starttime) es_xdoblock insurance/no_more } } block no_more { es_xset insurance_nomore 1 popup create Tally popup addline Tally "[Insurance]" popup addline Tally " " popup addline Tally "Below are the players that" popup addline Tally "have been insured for this round." popup addline Tally " " popup timeout Tally view 6 es_xset insurance_count 0 es_xforeachkey insurance_tempkey in insurance_plist "es_xdoblock insurance/tally_insure" if (server_var(insurance_count) equalto 0) do { popup addline Tally "NONE" } foreach player insurance_tempkey #all "es_xdoblock insurance/is_bugging2" es_delayed 0.5 foreach player insurance_tempkey #all "es_xdoblock insurance/is_bugging22" } block tally_insure { es_keygetvalue insurance_tempkeyvalue insurance_plist server_var(insurance_tempkey) insurecount ifx true(insurance_tempkeyvalue) do { es_xmath insurance_count + 1 es_keygetvalue insurance_tempkeyvalue2 insurance_plist server_var(insurance_tempkey) insuretotal es_keygetvalue insurance_name insurance_plist server_var(insurance_tempkey) name es_xformatv insurance_string "%1 [%2 policy @ $%3 total]" insurance_name insurance_tempkeyvalue insurance_tempkeyvalue2 es popup addline Tally server_var(insurance_string) } es popup active insurance_oldpopup insurance_oldcount server_var(insurance_tempkey) ifx true(insurance_oldcount) do { es popup close server_var(insurance_oldpopup) server_var(insurance_tempkey) } } block is_bugging { es_exists insurance_exi key insurance_bugmenot server_var(insurance_tempkey) ifx false(insurance_exi) do { ifx true(insurance_messagebeginning) do { es_tell server_var(insurance_tempkey) #multi #green[Insurance]#default Insurance claims are now open... server_var(insurance_starttime) seconds until close. es_tell server_var(insurance_tempkey) #multi #green[Insurance]#default To bring up the Insurance Menu, type #lightgreen server_var(insurance_command) #default } es_set insurance_usery server_var(insurance_tempkey) es_xdoblock insurance/automenu } else do { es_keygetvalue insurance_tempkeyvalue insurance_bugmenot server_var(insurance_tempkey) mode ifx true(insurance_tempkeyvalue) do { es_tell server_var(insurance_tempkey) #multi #green[Insurance]#default Insurance claims are now open... server_var(insurance_starttime) seconds until close. es_tell server_var(insurance_tempkey) #multi #green[Insurance]#default To bring up the Insurance Menu, type #lightgreen server_var(insurance_command) #default } } } block is_bugging2 { es_exists insurance_exi key insurance_bugmenot server_var(insurance_tempkey) ifx false(insurance_exi) do { es_tell server_var(insurance_tempkey) #multi #green[Insurance]#default Insurance claims have been closed for this round. } else do { es_keygetvalue insurance_tempkeyvalue insurance_bugmenot server_var(insurance_tempkey) mode ifx true(insurance_tempkeyvalue) do { es_tell server_var(insurance_tempkey) #multi #green[Insurance]#default Insurance claims have been closed for this round. } } } block is_bugging22 { es_exists insurance_exi key insurance_bugmenot server_var(insurance_tempkey) ifx false(insurance_exi) do { es popup send Tally server_var(insurance_tempkey) } else do { es_keygetvalue insurance_tempkeyvalue insurance_bugmenot server_var(insurance_tempkey) mode ifx true(insurance_tempkeyvalue) do { es popup send Tally server_var(insurance_tempkey) } } } event player_disconnect { ifx true(insurance_on) do { es_exists insurance_exi key insurance_bugmenot event_var(userid) ifx true(exi) do { es_keydelete insurance_bugmenot event_var(userid) } } } block automenu { ifx true(insurance_on) do { ifx false(insurance_nomore) do { es_xdoblock insurance/list_players if (server_var(insurance_count) > 0) do { es_xformatv insurance_string "%1InsurancePopup1" insurance_usery es popup send server_var(insurance_string) server_var(insurance_usery) } else do { es popup send NoInsurance server_var(insurance_usery) } } else do { es_tell server_var(insurance_usery) #multi #green[Insurance]#default You cannot place any insurance policies until the next round. } } } block menu { ifx true(insurance_on) do { es_xgetcmduserid insurance_usery ifx false(insurance_nomore) do { es_xdoblock insurance/list_players if (server_var(insurance_count) > 0) do { es_xformatv insurance_string "%1InsurancePopup1" insurance_usery es popup send server_var(insurance_string) server_var(insurance_usery) } else do { es popup send NoInsurance server_var(insurance_usery) } } else do { es_tell server_var(insurance_usery) #multi #green[Insurance]#default You cannot place any insurance policies until the next round. } } } block list_players { es_xset insurance_p_no 1 es_xset insurance_p_element 0 es_xset insurance_choice 0 es_keygetvalue insurance_myteamid insurance_plist server_var(insurance_usery) teamid es_xset insurance_count 0 es_xdoblock insurance/start_p_list es_xforeachkey insurance_tempkey in insurance_plist "es_doblock insurance/make_p_list" es_xdoblock insurance/finish_p_list } block start_p_list { es_xformatv insurance_cur_popup "%2InsurancePopup%1" insurance_p_no insurance_usery es popup create server_var(insurance_cur_popup) es popup menuselect server_var(insurance_cur_popup) insurance/p_chosen es popup addline server_var(insurance_cur_popup) "[Insurance]" es popup addline server_var(insurance_cur_popup) server_var(insurance_space) es popup addline server_var(insurance_cur_popup) "These are the current players on the opposite team with a positive KPD." es popup addline server_var(insurance_cur_popup) "To insure a player, choose from the list below." es popup addline server_var(insurance_cur_popup) server_var(insurance_space) } block make_p_list { es_keygetvalue insurance_teamid insurance_plist server_var(insurance_tempkey) teamid ifx parse("insurance_teamid != insurance_myteamid") do { ifx parse("insurance_teamid > 1") do { es_keygetvalue insurance_kills insurance_plist server_var(insurance_tempkey) kills es_keygetvalue insurance_deaths insurance_plist server_var(insurance_tempkey) deaths es_set insurance_odds server_var(insurance_kills) es_math insurance_odds - server_var(insurance_deaths) ifx parse("insurance_odds >= 0") do { es_xmath insurance_count + 1 es_xmath insurance_p_element + 1 ifx parse("insurance_p_element > 6") do { es_set insurance_cur_popup2 server_var(insurance_cur_popup) es_xset insurance_p_element 1 es_xmath insurance_p_no + 1 es_xdoblock insurance/start_p_list ifx parse("insurance_p_no == 2") do { es popup addline server_var(insurance_cur_popup2) server_var(insurance_space) } es popup addline server_var(insurance_cur_popup2) "8. Next Page" es popup addline server_var(insurance_cur_popup) server_var(insurance_space) es popup addline server_var(insurance_cur_popup2) "9. Not this time" es popup addline server_var(insurance_cur_popup2) "0. Change Insurance Mod message style" es popup menuvalue server_var(insurance_cur_popup) insurance_choice 7 0 es popup menuvalue server_var(insurance_cur_popup2) insurance_choice 8 0 es popup menuvalue server_var(insurance_cur_popup2) insurance_choice 9 0 es popup menuvalue server_var(insurance_cur_popup2) insurance_choice 10 0 es popup submenu server_var(insurance_cur_popup2) 8 server_var(insurance_cur_popup) es popup submenu server_var(insurance_cur_popup) 7 server_var(insurance_cur_popup2) es popup addline server_var(insurance_cur_popup) "7. Previous Page" } es_keygetvalue insurance_tempkeyvalue insurance_plist server_var(insurance_tempkey) name es_math insurance_odds / server_var(insurance_payfactor) es_xmath insurance_odds + 1 es_math insurance_odds float es_math insurance_odds + server_var(insurance_payoffset) es_xformatv insurance_cur_line "->%1. %2 (Payout: x%3)" insurance_p_element insurance_tempkeyvalue insurance_odds es_xmath insurance_p_element + 5 es popup insline server_var(insurance_cur_popup) server_var(insurance_p_element) server_var(insurance_cur_line) es_xmath insurance_p_element - 5 es popup menuvalue server_var(insurance_cur_popup) insurance_choice server_var(insurance_p_element) server_var(insurance_tempkey) es_math insurance_odds int } } } } block finish_p_list { es popup addline server_var(insurance_cur_popup) server_var(insurance_space) es popup addline server_var(insurance_cur_popup) "9. Not this time" es popup addline server_var(insurance_cur_popup) "0. Change Insurance Mod message style" es popup menuvalue server_var(insurance_cur_popup) insurance_choice 9 0 es popup menuvalue server_var(insurance_cur_popup) insurance_choice 10 0 } block show_options { ifx true(insurance_on) do { es_xgetcmduserid insurance_usery es popup send BugOptions server_var(insurance_usery) } } block p_chosen { if (server_var(insurance_choice) notequalto 0) do { es_exists insurance_exi key insurances server_var(_popup_userid) ifx false(insurance_exi) do { es_keycreate insurances server_var(_popup_userid) es_keysetvalue insurances server_var(_popup_userid) victim server_var(insurance_choice) es popup send CashAmounts server_var(_popup_userid) } else do { es_tell server_var(_popup_userid) #multi #green[Insurance]#default You cannot place more than 1 insurance policies in a round. } } if (server_var(_popup_choice) equalto 10) do { es popup send BugOptions server_var(_popup_userid) } } block no_insurance { if (server_var(_popup_choice) equalto 10) do { es popup send BugOptions server_var(_popup_userid) } } block bugmenot_chosen { if (server_var(_popup_choice) <= 3) do { if (server_var(_popup_choice) > 1) do { es_keycreate insurance_bugmenot server_var(_popup_userid) if (server_var(_popup_choice) equalto 2) do { es_keysetvalue insurance_bugmenot server_var(_popup_userid) mode 1 es_tell server_var(_popup_userid) #multi #green[Insurance]#default The popup will not appear automatically at the beginning of the round, but you will still be reminded about IM. } if (server_var(_popup_choice) equalto 3) do { es_keysetvalue insurance_bugmenot server_var(_popup_userid) mode 0 es_tell server_var(_popup_userid) #multi #green[Insurance]#default You will no longer receive any messages to do with Insurance Mod. } } else do { es_exists insurance_exi key insurance_bugmenot server_var(_popup_userid) ifx true(insurance_exi) do { es_keydelete insurance_bugmenot server_var(_popup_userid) } es_tell server_var(_popup_userid) #multi #green[Insurance]#default Full functionality has returned, and you will receive popups at the beginning of each round. } } } block cash_chosen { ifx parse("_popup_choice <= 9") do { ifx parse("_popup_choice == 9") do { es playerget cash insurance_cashamount server_var(_popup_userid) } if (server_var(insurance_cashamount) > 0) do { es playerget cash insurance_currentcash server_var(_popup_userid) ifx parse("insurance_currentcash >= insurance_cashamount") do { es_keygetvalue insurance_choicecontinued insurances server_var(_popup_userid) victim es_keygetvalue insurance_kills insurance_plist server_var(insurance_choicecontinued) kills es_keygetvalue insurance_deaths insurance_plist server_var(insurance_choicecontinued) deaths es_set insurance_odds server_var(insurance_kills) es_math insurance_odds - server_var(insurance_deaths) ifx parse("insurance_odds < 0") do { es_xset insurance_odds 0 } es_math insurance_odds / server_var(insurance_payfactor) es_xmath insurance_odds + 1 es_math insurance_odds float es_math insurance_odds + server_var(insurance_payoffset) es_math insurance_odds * server_var(insurance_cashamount) es_math insurance_currentcash - server_var(insurance_cashamount) es playerset cash server_var(_popup_userid) server_var(insurance_currentcash) es_keysetvalue insurances server_var(_popup_userid) payout server_var(insurance_odds) es_getplayername insurance_name server_var(insurance_choicecontinued) es_xformatv insurance_string "$%1" insurance_cashamount es_tell server_var(_popup_userid) #multi #green[Insurance]#default You have placed an insurance policy for #lightgreen server_var(insurance_string) #default on the death of #lightgreen server_var(insurance_name) es_keygetvalue insurance_tempvalue insurance_plist server_var(insurance_choicecontinued) insurecount es_xmath insurance_tempvalue + 1 es_keysetvalue insurance_plist server_var(insurance_choicecontinued) insurecount server_var(insurance_tempvalue) es_keygetvalue insurance_tempvalue insurance_plist server_var(insurance_choicecontinued) insuretotal es_math insurance_tempvalue + server_var(insurance_cashamount) es_keysetvalue insurance_plist server_var(insurance_choicecontinued) insuretotal server_var(insurance_tempvalue) ifx true(insurance_messageinsured) do { es_getplayername insurance_name server_var(_popup_userid) es_tell server_var(insurance_choicecontinued) #multi #green[Insurance]#default You have been insured by #lightgreen server_var(insurance_name) #default for #lightgreen server_var(insurance_string) } es_math insurance_odds int } else do { es_xformatv insurance_string "$%1" insurance_cashamount es_tell server_var(_popup_userid) #multi #green[Insurance]#default You do not have enough money to insure for #lightgreen server_var(insurance_string) es_keydelete insurances server_var(_popup_userid) } } else do { es_tell server_var(_popup_userid) #multi #green[Insurance]#default You cannot insure for $0! es_keydelete insurances server_var(_popup_userid) } } else do { es_keydelete insurances server_var(_popup_userid) } } event player_death { ifx true(insurance_on) do { es_set last_death event_var(userid) es_set insurance_attacker event_var(attacker) es_set insurance_name event_var(es_username) es_xforeachkey insurance_tempkey in insurances "es_xdoblock insurance/is_insured" } } block is_insured { es_keygetvalue insurance_tempkeyvalue insurances server_var(insurance_tempkey) victim ifx parse("insurance_tempkeyvalue == last_death") do { ifx parse("insurance_paytodead == 1") do { es_keygetvalue insurance_odds insurances server_var(insurance_tempkey) payout es playerget cash insurance_currentcash server_var(insurance_tempkey) es_math insurance_odds int es_mathparse insurance_average "rint(insurance_odds)" es_math insurance_currentcash + server_var(insurance_average) es_xformatv insurance_string "$%1" insurance_average es_tell server_var(insurance_tempkey) #multi #green[Insurance]#default Your insurance policy is paying out #lightgreen server_var(insurance_string) #default for the death of #lightgreen server_var(insurance_name) ifx parse("insurance_attacker == insurance_tempkey") do { es_math insurance_odds * server_var(insurance_bonus) es_xmath insurance_odds / 100 es_mathparse insurance_average "rint(insurance_odds)" es_math insurance_currentcash + server_var(insurance_average) es_xformatv insurance_string "$%1" insurance_average es_tell server_var(insurance_tempkey) #multi #green[Insurance]#default You get a bonus of #lightgreen server_var(insurance_string) #default for killing your insured player! } es playerset cash server_var(insurance_tempkey) server_var(insurance_currentcash) es_keydelete insurances server_var(insurance_tempkey) } else do { es playerget isdead insurance_isdead server_var(insurance_tempkey) ifx parse("insurance_isdead == 0") do { es_keygetvalue insurance_odds insurances server_var(insurance_tempkey) payout es playerget cash insurance_currentcash server_var(insurance_tempkey) es_math insurance_odds int es_mathparse insurance_average "rint(insurance_odds)" es_math insurance_currentcash + server_var(insurance_average) es_xformatv insurance_string "$%1" insurance_average es_tell server_var(insurance_tempkey) #multi #green[Insurance]#default Your insurance policy is paying out #lightgreen server_var(insurance_string) #default for the death of #lightgreen server_var(insurance_name) ifx parse("insurance_attacker == insurance_tempkey") do { es_math insurance_odds * server_var(insurance_bonus) es_xmath insurance_odds / 100 es_mathparse insurance_average "rint(insurance_odds)" es_math insurance_currentcash + server_var(insurance_average) es_xformatv insurance_string "$%1" insurance_average es_tell server_var(insurance_tempkey) #multi #green[Insurance]#default You get a bonus of #lightgreen server_var(insurance_string) #default for killing your insured player! } if (server_var(insurance_currentcash) > 16000) do { es_xset insurance_currentcash 16000 } es playerset cash server_var(insurance_tempkey) server_var(insurance_currentcash) es_keydelete insurances server_var(insurance_tempkey) } } } ifx parse("insurance_tempkey == last_death") do { ifx parse("insurance_paytodead == 1") do { es_tell server_var(insurance_tempkey) #multi #green[Insurance]#default You have died, but your insurance policy is still valid until the end of the round. } else do { es_tell server_var(insurance_tempkey) #multi #green[Insurance]#default You have died, and you have lost your insurance policy. } } } event round_end { es_foreachkey insurance_tempkey in insurance_plist "es_xdoblock insurance/no_claim" } block no_claim { es_keygetvalue insurance_tempkeyvalue insurance_plist server_var(insurance_tempkey) insurecount es playerget isdead insurance_isdead server_var(insurance_tempkey) ifx false(insurance_isdead) do { ifx true(insurance_tempkeyvalue) do { es_tell server_var(insurance_tempkey) #multi #green[Insurance]#default There are un-claimed policies with you as the insured!! es_keygetvalue insurance_odds insurance_plist server_var(insurance_tempkey) insuretotal es_math insurance_odds * server_var(insurance_noclaimsbonus) es_xmath insurance_odds / 100 es_mathparse insurance_average "rint(insurance_odds)" es_xformatv insurance_string "$%1" insurance_average es_tell server_var(insurance_tempkey) #multi #green[Insurance]#default You receive a bonus of #lightgreen server_var(insurance_string) #default from un-claimed policies!! es playerget cash insurance_currentcash server_var(insurance_tempkey) es_math insurance_currentcash + server_var(insurance_average) if (server_var(insurance_currentcash) > 16000) do { es_xset insurance_currentcash 16000 } es playerset cash server_var(insurance_tempkey) server_var(insurance_currentcash) } } } block unload { es_unregsaycmd server_var(insurance_command) es_xset insurance_on 0 }