Files
_haks
_module
_removed files
are
dlg
fac
gic
git
ifo
itp
jrl
ncs
nss
1stkeycheck.nss
2ndkeycheck.nss
3rdkey1.nss
4soulcheck.nss
4thkeycheck.nss
4toothcheck.nss
5minlock.nss
5minlock2.nss
_clone_.nss
_clone_1.nss
_clone_2.nss
_clone_3.nss
_clone_4.nss
_clone_5.nss
_clone_6.nss
_clone_7.nss
_clone_8.nss
_clone_9.nss
_clone_info_list.nss
_inc_color_text_.nss
_start_clone_cnv.nss
abysstorm.nss
ac_armageddonsta.nss
ac_arthxbow.nss
ac_artifactlbow.nss
ac_artifactsbow.nss
ac_artifactsling.nss
ac_artlxbow.nss
ac_autofollow.nss
ac_bannisher.nss
ac_boulder.nss
ac_colorwand.nss
ac_crystalball.nss
ac_dmhand.nss
ac_dmjail.nss
ac_dmkey.nss
ac_dmreward.nss
ac_druidtool.nss
ac_dyekit.nss
ac_elixirofimmor.nss
ac_emotewand.nss
ac_fieldtent.nss
ac_gemofteleport.nss
ac_guildsbow.nss
ac_guildstone.nss
ac_ibag.nss
ac_infoassistant.nss
ac_itemchanger.nss
ac_itemseller.nss
ac_itool.nss
ac_legendaryaxes.nss
ac_legendarybow.nss
ac_legendarydart.nss
ac_legendaryslin.nss
ac_legendarystar.nss
ac_legendaryxbow.nss
ac_mordenkainens.nss
ac_namingtool.nss
ac_pccheck.nss
ac_piperspipe.nss
ac_rodofthenamel.nss
ac_siempre.nss
ac_ssring.nss
ac_stoneofrecall.nss
ac_teleportation.nss
ac_thehandofgod.nss
ac_timecrystal.nss
ac_weaponchanger.nss
addfeatjournal.nss
addjournals.nss
addjournalsnf.nss
addlegendjournal.nss
addspellentry.nss
afx_area_exit.nss
afx_entearcane.nss
afx_enterdrow1.nss
afx_enterdrow2.nss
afx_enterrest.nss
afx_entersouldev.nss
afx_mod_spawn.nss
afx_sfunc.nss
ag_area_clean.nss
alchem.nss
allowcleric2open.nss
allowpaladinonly.nss
altar1_yes.nss
altar2_use.nss
altar2_yes.nss
altar_use.nss
altardeath.nss
altardeath2.nss
alterofchaos1.nss
alteroflaw.nss
alwarden_yes.nss
always_true.nss
ambush.nss
anduin_use.nss
anduinstaffcheck.nss
animaldeath.nss
announce_start.nss
aps_include.nss
aq_banned.nss
aq_death.nss
aq_guildstone.nss
aq_immortalcrown.nss
aq_immotoken.nss
aq_ssring.nss
arcanedrain.nss
archery2.nss
archiespawn.nss
area_clean_horse.nss
arena.nss
arenadoor.nss
arenatoken.nss
armageddonstaff.nss
arrowhead.nss
arthxbow.nss
artifact.nss
artifactlbow.nss
artifactsbow.nss
artifactsling.nss
artlxbow.nss
asimathasexit.nss
assadeath.nss
assassinpercieve.nss
at_andghost001.nss
auto_door_key.nss
autofollow.nss
awkeycheck.nss
bam.nss
banditdeath.nss
banditpercieve.nss
banned.nss
bannisher.nss
barred_message.nss
barrelcheck.nss
barrelcheck2.nss
bartender.nss
basin_use.nss
bastard.nss
bathleveruse.nss
bathtileuse.nss
bbs_scribe_conv.nss
bbs_scribe_give.nss
bbs_scribe_m_get.nss
bbs_scribe_m_yes.nss
bbs_scribe_spawn.nss
bbs_scribe_start.nss
bbs_scribe_stop.nss
bbs_scribe_t_yes.nss
betlecolectrewar.nss
bladespawn.nss
blastpc.nss
blind.nss
blindingbelt.nss
bling.nss
bookscheck.nss
boom.nss
boom2.nss
boot_nonmages.nss
bootnonguild.nss
bootnonmember1.nss
bootnonmember2.nss
bottlecheck.nss
bottlecheck2.nss
boulder.nss
broken.nss
brothertakesgold.nss
brutedeath.nss
brutepercieve.nss
budge.nss
buffme.nss
bugbearlair.nss
bugbearstrong.nss
burn.nss
buryhero.nss
calllightningtri.nss
cam_emotewand.nss
cannot_relevel.nss
chain_use.nss
chain_yes.nss
chair2.nss
chamber_use.nss
change2chaotic.nss
change2evil.nss
change2good.nss
change2lawful.nss
changeportrait.nss
cheat_config.nss
cheatercheck1.nss
cheatercheck2.nss
cheatercheck3.nss
cheatercheck4.nss
cheatercheck5.nss
cheatpot23.nss
check_color_ok.nss
checkarea1.nss
checkarea2.nss
checkimmortal.nss
checkpalerddclas.nss
chk_ilrvaliditem.nss
chk_not1item.nss
cleanarea.nss
cleandrac.nss
cleanfloor.nss
cleantavern.nss
clearmerchant.nss
cleartown.nss
clericonly.nss
clericsecret.nss
climb_yes.nss
climb_yes2.nss
clone_hb.nss
close_door.nss
close_n_lock.nss
closedoor.nss
closenlock.nss
clothesmerchant.nss
color_chat_off.nss
color_chat_on.nss
color_mod_load.nss
color_off.nss
color_pc_enter.nss
coloritemagenta.nss
coloritemblue.nss
coloritembrown.nss
coloritembrtblue.nss
coloritemcyan.nss
coloritemgreen.nss
coloritemgrey.nss
coloritemltpurpl.nss
coloritemneongrn.nss
coloritemorange.nss
coloritemplum.nss
coloritemrandom.nss
coloritemred.nss
coloritemtan.nss
coloritemteal.nss
coloritemwhite.nss
coloritemyellow.nss
colorwand.nss
conditional.nss
confusetrigger.nss
counterrod.nss
counterspawns.nss
create_listner.nss
create_messstone.nss
crowncheck.nss
crypt2door.nss
cryptdoor.nss
cryptdooruse.nss
crypttrigger.nss
crystalball.nss
culttakegold.nss
culttakegold1.nss
cursetrigger.nss
dancingbowruns.nss
danger.nss
darkdeath.nss
darkspell.nss
darktrigger.nss
darktrigger2a.nss
database_setup.nss
day_night_check.nss
deadjump.nss
deadjump2.nss
deadjump3.nss
death.nss
deathport.nss
deathstart.nss
deaththrone.nss
defenderhit.nss
defenderhit2.nss
delchar_include.nss
delete_toon.nss
deletecharacter.nss
delevelpc1.nss
denatheck.nss
destroyclone.nss
devildie.nss
devilspawn.nss
dexcheck.nss
dexcheck1.nss
divideloot.nss
divideloot2.nss
dividepartyloot1.nss
dividepartyloot2.nss
dm_anti_cheat.nss
dm_anti_cheat2.nss
dm_base_ac.nss
dm_baseability.nss
dm_baseattack.nss
dm_basedmgresist.nss
dm_basedr.nss
dm_basefeat.nss
dm_baseimmunity.nss
dm_basemisc.nss
dm_baseregen.nss
dm_basesavthr.nss
dm_baseskill1.nss
dm_baseskill2.nss
dm_baseskill3.nss
dm_basevisual.nss
dm_calc.nss
dm_calc_remove.nss
dm_calc_spell.nss
dm_chat_control.nss
dm_chat_inc.nss
dm_color_off.nss
dm_color_on.nss
dm_cost.nss
dm_dambase.nss
dm_does_reset.nss
dm_domods.nss
dm_domodsfree.nss
dm_donomods.nss
dm_doremoval.nss
dm_enh1.nss
dm_enh10.nss
dm_enh11.nss
dm_enh2.nss
dm_enh21.nss
dm_enh3.nss
dm_enh31.nss
dm_enh4.nss
dm_enh41.nss
dm_enh5.nss
dm_enh51.nss
dm_enh6.nss
dm_enh61.nss
dm_enh7.nss
dm_enh71.nss
dm_enh8.nss
dm_enh81.nss
dm_enh9.nss
dm_enhbase.nss
dm_enhmighty.nss
dm_enhplus1.nss
dm_enhplus2.nss
dm_enhplus3.nss
dm_enhplus4.nss
dm_enhplus5.nss
dm_enhplus6.nss
dm_enhplus7.nss
dm_enhplus8.nss
dm_enhplus9.nss
dm_enhreset.nss
dm_forg_ondist.nss
dm_forge_chk.nss
dm_forge_chk2.nss
dm_forge_chk3.nss
dm_forge_chk4.nss
dm_forge_config.nss
dm_forge_readme.nss
dm_ilr_appraise.nss
dm_inc_forge.nss
dm_inc_remove.nss
dm_iscurly.nss
dm_islarry.nss
dm_ismelee.nss
dm_ismoe.nss
dm_isnotweap.nss
dm_isranged.nss
dm_isweapon.nss
dm_isweapon1.nss
dm_isweapon2.nss
dm_mpool_chk.nss
dm_nocost.nss
dm_only.nss
dm_reads_line.nss
dm_reset.nss
dm_set_blue.nss
dm_set_blue17.nss
dm_set_cyan.nss
dm_set_drk_cyan.nss
dm_set_gold.nss
dm_set_green.nss
dm_set_grey.nss
dm_set_ice.nss
dm_set_magenta.nss
dm_set_neongrn.nss
dm_set_olive.nss
dm_set_party_ran.nss
dm_set_partychat.nss
dm_set_pink.nss
dm_set_purple.nss
dm_set_rainbow.nss
dm_set_red.nss
dm_set_shout_ran.nss
dm_set_shoutchat.nss
dm_set_silver.nss
dm_set_skyblue.nss
dm_set_talk_ran.nss
dm_set_talkchat.nss
dm_set_tan.nss
dm_set_tan16.nss
dm_spell0.nss
dm_spell1.nss
dm_spell2.nss
dm_spell3.nss
dm_spell4.nss
dm_spell5.nss
dm_spell6.nss
dm_spell7.nss
dm_spell8.nss
dm_spell9.nss
dm_splv_chk.nss
dm_splv_chk10.nss
dm_splv_chk11.nss
dm_splv_chk12.nss
dm_splv_chk13.nss
dm_splv_chk2.nss
dm_splv_chk3.nss
dm_splv_chk4.nss
dm_splv_chk5.nss
dm_splv_chk6.nss
dm_splv_chk7.nss
dm_splv_chk8.nss
dm_splv_chk9.nss
dm_timestop_chk.nss
dm_uses_chk.nss
dmdoor.nss
dmdoorports.nss
dmhand.nss
dmjail.nss
dmjailtorture.nss
dmkey.nss
dmreward.nss
dmsecret.nss
dmthrone.nss
dmtorture.nss
do_bench_vfx.nss
do_goodaura.nss
do_partyroll.nss
do_partyroll2.nss
do_storm.nss
do_vfx_lightning.nss
doby_no_pc_chest.nss
dodragon.nss
doh.nss
door_lock_night.nss
door_teleport.nss
dospasm.nss
drac_use.nss
dracodead.nss
dracospawn.nss
dragondeath.nss
dragonlever_use.nss
dragonspawn.nss
dragonstop2.nss
drain_yes.nss
dreamweaver23.nss
drowattack.nss
drowbeat.nss
drowbossdeath.nss
drowbosspercieve.nss
drowspawn.nss
druidtool.nss
dtrig1.nss
dtrig2.nss
dtrig3.nss
dtrig4.nss
dummy2.nss
dummydead.nss
dummykilled.nss
dummyspawn.nss
dummyspell.nss
dye_cloth1.nss
dye_cloth2.nss
dye_color0.nss
dye_color1.nss
dye_color2.nss
dye_color3.nss
dye_color4.nss
dye_color5.nss
dye_color6.nss
dye_color7.nss
dye_dyeitem.nss
dye_group0.nss
dye_group1.nss
dye_group10.nss
dye_group11.nss
dye_group12.nss
dye_group13.nss
dye_group14.nss
dye_group15.nss
dye_group16.nss
dye_group17.nss
dye_group18.nss
dye_group19.nss
dye_group2.nss
dye_group20.nss
dye_group21.nss
dye_group3.nss
dye_group4.nss
dye_group5.nss
dye_group6.nss
dye_group7.nss
dye_group8.nss
dye_group9.nss
dye_itemchest.nss
dye_itemcloak.nss
dye_itemhead.nss
dye_leather1.nss
dye_leather2.nss
dye_metal1.nss
dye_metal2.nss
dyekit.nss
elementalbeat.nss
elemtflamedamage.nss
elfrangerattack.nss
elixirofimmort.nss
emotewand.nss
emptybottle.nss
end_announcement.nss
end_dm_area_msg.nss
end_dm_npc_chat.nss
end_dm_serv_msg.nss
enter_arena.nss
enteremporium.nss
enterguild.nss
enterthedragon.nss
entertown2.nss
epicdc_inc.nss
eq_arena.nss
eq_arthxbow.nss
eq_artifact.nss
eq_artifactlbow.nss
eq_artifactsbow.nss
eq_artifactsling.nss
eq_artlxbow.nss
eq_blindingbelt.nss
eq_immortalcrown.nss
eq_legend.nss
eq_legendaryaxes.nss
eq_legendarybow.nss
eq_legendarydart.nss
eq_legendaryslin.nss
eq_legendarystar.nss
eq_legendaryxbow.nss
eq_ranger.nss
everactivateitem.nss
everaquire.nss
evilkey.nss
ew_act_drunk.nss
ew_ani_armsup.nss
ew_ani_bowdown.nss
ew_ani_crouch.nss
ew_ani_kneelout.nss
ew_ani_kneelup.nss
ew_ani_reset.nss
ew_back.nss
ew_bluffchecko.nss
ew_chachecko.nss
ew_cheer1.nss
ew_cheer2.nss
ew_cheer3.nss
ew_concchecko.nss
ew_conchecko.nss
ew_d100roll.nss
ew_d10roll.nss
ew_d12roll.nss
ew_d20roll.nss
ew_d4roll.nss
ew_d6roll.nss
ew_d8roll.nss
ew_dance.nss
ew_dexchecko.nss
ew_discchecko.nss
ew_drunk.nss
ew_dtchecko.nss
ew_fast_spasm.nss
ew_follow.nss
ew_fortchecko.nss
ew_getclose.nss
ew_getlow.nss
ew_getmid.nss
ew_hidechecko.nss
ew_intchecko.nss
ew_intimchecko.nss
ew_lapsit0.nss
ew_lapsit180.nss
ew_lapsit270.nss
ew_lapsit90.nss
ew_listchecko.nss
ew_lorechecko.nss
ew_meditate.nss
ew_nap.nss
ew_norm_spasm.nss
ew_olockchecko.nss
ew_perschecko.nss
ew_ppchecko.nss
ew_read.nss
ew_reflchecko.nss
ew_rest.nss
ew_searchchecko.nss
ew_sit.nss
ew_slow_spasm.nss
ew_spellchecko.nss
ew_spotchecko.nss
ew_strchecko.nss
ew_talkforce.nss
ew_talklaugh.nss
ew_talkplead.nss
ew_tumblechecko.nss
ew_willchecko.nss
ew_wischecko.nss
ew_worship.nss
exc_speedcast.nss
exitarena.nss
exitdeathcheat.nss
exitguild.nss
exitjail.nss
exitoverspwnjail.nss
exmplonclientent.nss
exploitfix.nss
expstatuedeath.nss
expstatuedeath2.nss
expstatuedeath3.nss
expstatuedmged.nss
fake_conditional.nss
fbi_npc_drinkale.nss
fbi_npc_drinkchk.nss
fbi_npc_drinklos.nss
fbi_npc_drinkstp.nss
fbi_npc_drinkwin.nss
fbi_npc_drinkzzz.nss
fenceshop.nss
fenliascheck.nss
fertilecheck.nss
feyland.nss
fieldtent.nss
firedamage1.nss
firedeath.nss
fireenergy.nss
firegem.nss
firepercieve.nss
fky_chat.nss
fky_chat_clenter.nss
fky_chat_clexit.nss
fky_chat_cn_act.nss
fky_chat_cn_cond.nss
fky_chat_command.nss
fky_chat_config.nss
fky_chat_const.nss
fky_chat_dm_comm.nss
fky_chat_dmfi.nss
fky_chat_event.nss
fky_chat_fr_lang.nss
fky_chat_inc.nss
fky_chat_instant.nss
fky_chat_levelup.nss
fky_chat_misc.nss
fky_chat_modload.nss
fky_chat_newlang.nss
fky_chat_srv.nss
fky_chat_target.nss
fky_chat_ventril.nss
fky_chat_vfx.nss
flameheartbeat.nss
floorsafe.nss
forestgarnet3.nss
forestgarnet4.nss
forestgem001.nss
forestgem1.nss
forestgem2.nss
forgeused.nss
foundstaff1.nss
fountain2_use.nss
fuguepercieved.nss
fuguespawn.nss
garnetcheck1.nss
garnetcheck2.nss
garnetcheck3.nss
garnetcheck4.nss
gc_ac_is_ok.nss
gc_add_ability.nss
gc_add_ac.nss
gc_add_attk_bon.nss
gc_add_bon_spell.nss
gc_add_dmg_bonus.nss
gc_add_dmg_imm.nss
gc_add_dmg_red.nss
gc_add_ench_bon.nss
gc_add_evade.nss
gc_add_feat.nss
gc_add_freedom.nss
gc_add_haste.nss
gc_add_immunity.nss
gc_add_keen.nss
gc_add_massv_crt.nss
gc_add_mighty.nss
gc_add_regen.nss
gc_add_resist.nss
gc_add_save.nss
gc_add_skills.nss
gc_add_sr.nss
gc_add_true_see.nss
gc_add_vamp_regn.nss
gc_check_legal.nss
gc_check_legit.nss
gc_count_cost.nss
gc_di_item_ok.nss
gc_dmg_bonus_ok.nss
gc_dmg_ok.nss
gc_dr_item_ok.nss
gc_gaunt_props.nss
gc_haircolr_next.nss
gc_haircolr_prev.nss
gc_has_ammy.nss
gc_has_armor.nss
gc_has_arrow.nss
gc_has_belt.nss
gc_has_bolts.nss
gc_has_boots.nss
gc_has_bracer.nss
gc_has_bullets.nss
gc_has_cloak.nss
gc_has_gauntlets.nss
gc_has_helm.nss
gc_has_leftring.nss
gc_has_masscrit.nss
gc_has_rightring.nss
gc_has_shield.nss
gc_has_wpn.nss
gc_is_a_wpn.nss
gc_is_ab_ok.nss
gc_is_ammy.nss
gc_is_bard.nss
gc_is_belt.nss
gc_is_broke.nss
gc_is_cleric.nss
gc_is_cloak.nss
gc_is_druid.nss
gc_is_meleewpn.nss
gc_is_paladin.nss
gc_is_plotitem.nss
gc_is_ranged_wpn.nss
gc_is_ranger.nss
gc_is_sorcerer.nss
gc_is_wizard.nss
gc_mascrits_ok.nss
gc_new_crafter.nss
gc_prop_inc.nss
gc_regen_ok.nss
gc_set_2d10.nss
gc_set_2d12.nss
gc_set_2d4.nss
gc_set_2d6.nss
gc_set_2d8.nss
gc_set_acid.nss
gc_set_alertness.nss
gc_set_ambidex.nss
gc_set_ammy.nss
gc_set_animal_em.nss
gc_set_appraise.nss
gc_set_armor.nss
gc_set_arms.nss
gc_set_arrows.nss
gc_set_belt.nss
gc_set_bluff.nss
gc_set_bolts.nss
gc_set_bonus0.nss
gc_set_bonus1.nss
gc_set_bonus10.nss
gc_set_bonus12.nss
gc_set_bonus2.nss
gc_set_bonus3.nss
gc_set_bonus4.nss
gc_set_bonus5.nss
gc_set_bonus6.nss
gc_set_bonus7.nss
gc_set_bonus8.nss
gc_set_bonus9.nss
gc_set_boots.nss
gc_set_bullets.nss
gc_set_cha.nss
gc_set_cleave.nss
gc_set_cloak.nss
gc_set_comb_cast.nss
gc_set_con.nss
gc_set_concentrt.nss
gc_set_craft_wpn.nss
gc_set_craftarmr.nss
gc_set_crafttrap.nss
gc_set_d10.nss
gc_set_d12.nss
gc_set_d4.nss
gc_set_d6.nss
gc_set_d8.nss
gc_set_dex.nss
gc_set_dis_traps.nss
gc_set_disciplin.nss
gc_set_dmg_im_10.nss
gc_set_dmg_im_15.nss
gc_set_dmg_im_25.nss
gc_set_dmg_imm_5.nss
gc_set_dodge.nss
gc_set_dr_1.nss
gc_set_dr_10.nss
gc_set_dr_2.nss
gc_set_dr_3.nss
gc_set_dr_4.nss
gc_set_dr_5.nss
gc_set_dr_6.nss
gc_set_dr_7.nss
gc_set_dr_8.nss
gc_set_dr_9.nss
gc_set_dr_a_10.nss
gc_set_dr_a_15.nss
gc_set_dr_a_20.nss
gc_set_dr_a_25.nss
gc_set_dr_a_30.nss
gc_set_dr_a_5.nss
gc_set_dr_t_10.nss
gc_set_dr_t_15.nss
gc_set_dr_t_20.nss
gc_set_dr_t_25.nss
gc_set_dr_t_30.nss
gc_set_dr_t_5.nss
gc_set_exot_wpn.nss
gc_set_foc_abjur.nss
gc_set_foc_evoca.nss
gc_set_foc_necro.nss
gc_set_freedom.nss
gc_set_haste.nss
gc_set_heal_skil.nss
gc_set_heavyarmr.nss
gc_set_helm.nss
gc_set_hide_skil.nss
gc_set_hips.nss
gc_set_imm_crits.nss
gc_set_imm_death.nss
gc_set_imm_disea.nss
gc_set_imm_fear.nss
gc_set_imm_kd.nss
gc_set_imm_lvlab.nss
gc_set_imm_mind.nss
gc_set_imm_paral.nss
gc_set_imm_pois.nss
gc_set_imm_sneak.nss
gc_set_imp_evade.nss
gc_set_impcr_una.nss
gc_set_int.nss
gc_set_intimidat.nss
gc_set_is_bard.nss
gc_set_is_cleric.nss
gc_set_is_druid.nss
gc_set_is_paladn.nss
gc_set_is_ranger.nss
gc_set_is_sorcer.nss
gc_set_is_wizard.nss
gc_set_keen.nss
gc_set_knockdown.nss
gc_set_lefthand.nss
gc_set_lefttring.nss
gc_set_lightarmr.nss
gc_set_listen.nss
gc_set_lore.nss
gc_set_mart_wpn.nss
gc_set_medarmor.nss
gc_set_move_sile.nss
gc_set_old_pc.nss
gc_set_open_lock.nss
gc_set_parry.nss
gc_set_perform.nss
gc_set_persuade.nss
gc_set_pick_pock.nss
gc_set_pointblan.nss
gc_set_pwrattack.nss
gc_set_rapidshot.nss
gc_set_regen_1.nss
gc_set_regen_10.nss
gc_set_regen_12.nss
gc_set_regen_2.nss
gc_set_regen_3.nss
gc_set_regen_4.nss
gc_set_regen_5.nss
gc_set_regen_6.nss
gc_set_regen_7.nss
gc_set_regen_8.nss
gc_set_regen_9.nss
gc_set_righthand.nss
gc_set_rightring.nss
gc_set_save_all.nss
gc_set_save_fort.nss
gc_set_save_refl.nss
gc_set_save_will.nss
gc_set_search.nss
gc_set_skill_umd.nss
gc_set_sneakatk1.nss
gc_set_sneakatk2.nss
gc_set_sneakatk3.nss
gc_set_sneakatk5.nss
gc_set_spec_uarm.nss
gc_set_spell_pen.nss
gc_set_spellcraf.nss
gc_set_spot.nss
gc_set_sr_10.nss
gc_set_sr_12.nss
gc_set_sr_14.nss
gc_set_sr_16.nss
gc_set_sr_18.nss
gc_set_sr_20.nss
gc_set_sr_22.nss
gc_set_sr_24.nss
gc_set_sr_26.nss
gc_set_sr_28.nss
gc_set_sr_30.nss
gc_set_sr_32.nss
gc_set_str.nss
gc_set_taunt.nss
gc_set_traps.nss
gc_set_truesee.nss
gc_set_tumble.nss
gc_set_two_wpn.nss
gc_set_useshield.nss
gc_set_wep_fines.nss
gc_set_wis.nss
gc_set_xtra_turn.nss
gc_skillpts_10.nss
gc_skillpts_12.nss
gc_skillpts_14.nss
gc_skillpts_16.nss
gc_skillpts_2.nss
gc_skillpts_4.nss
gc_skillpts_6.nss
gc_skillpts_8.nss
gc_skincolr_next.nss
gc_skincolr_prev.nss
gc_tat1colr_next.nss
gc_tat1colr_prev.nss
gc_tat2colr_next.nss
gc_tat2colr_prev.nss
gc_vamp_regn_ok.nss
gc_wpn_props.nss
gemofteleportati.nss
gemspawn1.nss
gemspawn2.nss
gemspawn3.nss
gemspawn4.nss
gen_chat_inc.nss
gen_color_test.nss
gen_craft_wand.nss
gen_forge_config.nss
gen_inc_color.nss
gen_invalid.nss
gen_set_acid.nss
gen_set_blungeon.nss
gen_set_cold.nss
gen_set_divine.nss
gen_set_electric.nss
gen_set_fire.nss
gen_set_magical.nss
gen_set_negative.nss
gen_set_piercing.nss
gen_set_positive.nss
gen_set_slashing.nss
gen_set_sonic.nss
gen_spec_unique.nss
gen_xp.nss
genchat_inc.nss
genisys.nss
getaway.nss
getoil.nss
getrope.nss
ghosteffect.nss
give_inventory.nss
giveanduinstaff.nss
givearenatoken.nss
givedarts.nss
giveguilehis.nss
givelegaxes.nss
givemaxgold.nss
givemaxp.nss
givepass.nss
giveplotitems.nss
givestars.nss
glowmebaby.nss
goblindeath.nss
goblindoor.nss
goblinkey.nss
goblinpercieve.nss
godlipot.nss
godlyitem23.nss
golemtrap.nss
gong.nss
good_by.nss
gossip1.nss
gossip1a.nss
gossip1b.nss
gotcrowncheck.nss
greaterdevildie.nss
greaterdevilspaw.nss
gsloot_lib.nss
guardian1.nss
guardian2.nss
guardkey.nss
guido.nss
guild_door.nss
guildbootspc.nss
guildsbow.nss
guildstone.nss
guilesecret.nss
guilestatuescrpt.nss
guilesway.nss
guilezrod.nss
guratzcheck.nss
gypsy.nss
hag_yes.nss
has100gp.nss
has10kgp.nss
has1kgp.nss
has500gp.nss
has5kgp.nss
has_1stsecret.nss
has_2ndsecret.nss
has_5k_xp.nss
has_guild_pass.nss
has_loki_gem.nss
has_xp.nss
hasafixedalign.nss
hascrown.nss
hasenoughgold.nss
hasguildstone.nss
hasitoken.nss
hasntcrown.nss
hauntkill.nss
headmasterdeath.nss
headstone1_use.nss
headstone2_use.nss
headstone_yes2.nss
headstone_yes3.nss
headstone_yes4.nss
healer.nss
healme.nss
healworshiper.nss
heartdammaged.nss
hellfog.nss
hellfogspawn.nss
hellrod.nss
helltrap.nss
helltrigger1.nss
hermitshop.nss
hierarchydrow.nss
home.nss
horjump1.nss
horjump2.nss
horrordeath.nss
horrordying.nss
horrorpercieve.nss
horsecrettrig1.nss
horsecrettrig2.nss
horsekey.nss
horsekey2.nss
horsekey3.nss
horsekey4.nss
horsekey5.nss
horsekey6.nss
hp.nss
humsac.nss
iaquireitem.nss
iautokill.nss
ibag.nss
iceicebaby.nss
icheat.nss
icontain.nss
id_const.nss
idallitemsofpc.nss
idcust_acolor1.nss
idcust_acolor2.nss
idcust_acolor3.nss
idcust_acolor4.nss
idcust_acolor5.nss
idcust_acolor6.nss
idcust_ifempty.nss
idcust_inititem.nss
idcust_initmods.nss
idcust_lefthand.nss
idcust_modbelt.nss
idcust_modcloak.nss
idcust_modfeet.nss
idcust_modhelmet.nss
idcust_modlbicep.nss
idcust_modlforar.nss
idcust_modlhand.nss
idcust_modlshoul.nss
idcust_modneck.nss
idcust_modpelvis.nss
idcust_modrbicep.nss
idcust_modrforar.nss
idcust_modrhand.nss
idcust_modrobes.nss
idcust_modrshoul.nss
idcust_modshin.nss
idcust_modthigh.nss
idcust_modtorso.nss
idcust_modweapa.nss
idcust_modweapb.nss
idcust_modweapc.nss
idcust_prevbelt.nss
idcust_prevfeet.nss
idcust_prevlhand.nss
idcust_prevlshld.nss
idcust_prevneck.nss
idcust_prevpelvs.nss
idcust_prevrhand.nss
idcust_prevrobes.nss
idcust_prevrshdr.nss
idcust_prevshin.nss
idcust_prevthigh.nss
idcust_prevtorso.nss
idcust_prvhelmet.nss
idcust_prvlbicep.nss
idcust_prvlforar.nss
idcust_prvrbicep.nss
idcust_prvrforar.nss
idcust_prvweapa.nss
idcust_prvweapb.nss
idcust_prvweapc.nss
idcust_rem_robe.nss
idcust_righthand.nss
idcust_setbody.nss
idcust_sethead.nss
idcust_setrighth.nss
idcust_showstyle.nss
idcust_wcolora.nss
idcust_wcolorb.nss
idcust_wcolorc.nss
idcust_weap_idex.nss
immortalattack.nss
immortalcrown2.nss
immortaldeath.nss
immortalgear.nss
immortaljail.nss
immortalspawn.nss
immortaltalk.nss
immotoken.nss
impbeat.nss
inc_camera.nss
inc_emotewand.nss
inc_sqlite_time.nss
infoassistant.nss
intcheck1.nss
inv_system3_ou.nss
inv_system_new.nss
inv_system_old.nss
inv_system_ou.nss
invalidate1.nss
invalidate2.nss
invroom_exit.nss
invroom_onenter.nss
invroom_onexit.nss
invroom_ou.nss
invroom_teleport.nss
iorganize.nss
is_bard.nss
is_epic.nss
is_guild.nss
is_level_12.nss
is_lvl12_orless.nss
is_lvl_14.nss
is_wizard.nss
isanewgambler.nss
isaspellcaster.nss
ischaotic.nss
isdmplayer.nss
iselfdestruct.nss
iseperate.nss
isevil.nss
isgodly.nss
isgood.nss
isholy.nss
islawful.nss
islegendary.nss
islevel7.nss
islvl10.nss
islvl20.nss
islvl30.nss
ismember.nss
isoldgambler.nss
ispalemaster.nss
ispeak.nss
isrdd.nss
istoohigh.nss
istoopoor.nss
isunholy.nss
isuser.nss
itake_include.nss
itemchanger.nss
itemseller.nss
itm_emotewand.nss
itool.nss
iunaquireitem.nss
jade1_use.nss
jade2_use.nss
jadecheck.nss
jadeentrance_yes.nss
jadexit_yes.nss
jail_yes.nss
jailbreak.nss
jailmessage.nss
jailpunishment.nss
jailpunishment2.nss
jimijimi.nss
journalspawn3.nss
jumpstart.nss
keepopen.nss
khuraanchec.nss
kill_npcs.nss
killscribe.nss
kopcwand.nss
krenshar2.nss
krenshar_yes.nss
krensharcheck.nss
krensharuse.nss
lavastatue1.nss
lavastatue2.nss
ledge4.nss
ledge_use.nss
ledge_use3.nss
leetdeath.nss
leetentrance.nss
leetpercieve.nss
leetportal.nss
legend.nss
legendaryaxes.nss
legendarybow.nss
legendarydarts.nss
legendarysling.nss
legendarystar.nss
legendarystars.nss
legendaryxbow.nss
lesserdevildie.nss
lesserdevilspawn.nss
level1.nss
level10script.nss
level20script.nss
level30script.nss
levelertalks.nss
leveltrigger.nss
levelupshout.nss
lichtrigger1.nss
lichtrigger3.nss
lightningguide.nss
listen_activate.nss
listen_converse.nss
listen_heartbeat.nss
livingstatue37.nss
lizardescapes.nss
lizardlevers.nss
lizardoortimer.nss
loki1_use.nss
loki2_use.nss
loki2_yes.nss
lokikeycheck.nss
lokikeyspawn.nss
lokishaft_yes.nss
lokitheft.nss
lowkicheck.nss
lowloot3.nss
madrun.nss
mage_door_chk.nss
mageonly.nss
mageonly2.nss
mainload.nss
makechaotic.nss
makeevil.nss
makegood.nss
makelawful.nss
makelevel002.nss
membercheck1.nss
membercheck2.nss
membercheck3.nss
membercheck4.nss
membersonly.nss
membersonly2.nss
mercarmor.nss
mercrainbow.nss
meremtalks.nss
messstone_erase.nss
messtone1_start.nss
messtone2_start.nss
messtone3_start.nss
mind.nss
mindfogdammaged.nss
mindheartbeat.nss
mindoor.nss
minlever_use1.nss
minlever_use2.nss
minlever_use3.nss
minlever_use4.nss
minlever_use5.nss
minlever_use6.nss
minotaurdeth.nss
minotaurpercive.nss
missiledoor.nss
missileson.nss
moad_spawn.nss
moadstop.nss
mod_hook_load.nss
mod_ondeath.nss
mod_scoreboard.nss
mod_shielda.nss
modaquired.nss
modspawn.nss
mordenkainensrin.nss
motherdoor.nss
motherdoor12.nss
motherender.nss
motherglyph.nss
motherlever.nss
murkypot.nss
murkytrigger.nss
my_sign1_vfxs.nss
my_sign2_vfxs.nss
my_sign_vfxs.nss
myhook.nss
myrnaspawn.nss
namingtool.nss
napper.nss
naptime.nss
netherdoor.nss
newchest.nss
nightfogdammaged.nss
nightheartbeat.nss
nightspawn.nss
no_cloak_on.nss
nocastingnarea.nss
noclonecheat.nss
nope.nss
noreturn.nss
nospells.nss
notdm.nss
notrespassing.nss
npcattack.nss
npcattackspc.nss
npcdeath1.nss
npcdeath10.nss
npcdeath2.nss
npcdeath5.nss
npcspellattack.nss
nw_c2_default1.nss
nw_c2_default2.nss
nw_c2_default3.nss
nw_c2_default4.nss
nw_c2_default5.nss
nw_c2_default6.nss
nw_c2_default8.nss
nw_c2_defaulta.nss
nw_c2_defaultb.nss
nw_c2_defaulte.nss
nw_o2_boss.nss
nw_o2_classhig.nss
nw_o2_classlow.nss
nw_o2_classmed.nss
nw_o2_classweap.nss
nw_t0_walk.nss
nwnx.nss
nwnx_admin.nss
nwnx_appearance.nss
nwnx_area.nss
nwnx_chat.nss
nwnx_consts.nss
nwnx_creature.nss
nwnx_damage.nss
nwnx_data.nss
nwnx_dialog.nss
nwnx_effect.nss
nwnx_elc.nss
nwnx_encounter.nss
nwnx_events.nss
nwnx_feat.nss
nwnx_feedback.nss
nwnx_item.nss
nwnx_itemprop.nss
nwnx_lua.nss
nwnx_nostack.nss
nwnx_object.nss
nwnx_player.nss
nwnx_player_qbs.nss
nwnx_profiler.nss
nwnx_race.nss
nwnx_race_2da.nss
nwnx_redis.nss
nwnx_redis_lib.nss
nwnx_redis_ps.nss
nwnx_redis_short.nss
nwnx_regex.nss
nwnx_regex_t.nss
nwnx_rename.nss
nwnx_reveal.nss
nwnx_ruby.nss
nwnx_skillrank_t.nss
nwnx_skillranks.nss
nwnx_spellcheck.nss
nwnx_sql.nss
nwnx_system.nss
nwnx_tests.nss
nwnx_tileset.nss
nwnx_time.nss
nwnx_time_t.nss
nwnx_util.nss
nwnx_util_t.nss
nwnx_visibilit_t.nss
nwnx_visibility.nss
nwnx_weapon.nss
nwnx_webhook.nss
nwnx_webhook_rch.nss
objectattack.nss
objectkillspc.nss
objectspellattak.nss
ogredeath.nss
ogrelair.nss
ogrelordpercieve.nss
on_chat_mod_load.nss
on_client_enter.nss
on_module_load.nss
on_player_chat.nss
on_pubsub.nss
onactivateitem.nss
onaquireditem.nss
oncliententer.nss
onclientexit.nss
onconv_rowan.nss
onheartbeat.nss
onmoduleload.nss
onpclevelup.nss
onplayerdeath.nss
onplayerdying.nss
onplayerequipted.nss
onplayerlevelup.nss
onplayerrespawn.nss
onplayerrest.nss
onunaquireitem.nss
onunequipitem.nss
open_clothing.nss
open_helm_shield.nss
open_jewelry.nss
open_stables.nss
open_travelstore.nss
openammostore.nss
openarenastore.nss
openarenawpns.nss
openarmorstore.nss
openartwpns.nss
openaxesnpoles.nss
openbardstore.nss
openbasicmstore.nss
openblades.nss
openexotic.nss
openexoticwpns.nss
openfinestore.nss
openfinewpns.nss
opengenpots.nss
openguildstore.nss
openlegwpns.nss
openmagestore.nss
openmagicitems.nss
openmainclothes.nss
openmwpnstore.nss
openrangedwpns.nss
openrarewpns.nss
openscrolls.nss
opensesame.nss
openstore001.nss
openstore002.nss
openstore003.nss
openstore004.nss
openstore006.nss
openstore007.nss
openstore008.nss
openstore009.nss
openstore010.nss
opentavernstore.nss
orcbanitattack.nss
orcdoor.nss
overspawnmsg.nss
p_aura_rainbow.nss
p_f.nss
p_kaleidoscope.nss
p_open_rainbow.nss
pa_bossdrain.nss
pa_bossdrain2.nss
partyonly.nss
partyonly1.nss
partyroomport1.nss
partyroomport2.nss
pc_chat_control.nss
pc_export_inc.nss
pc_wand_mod_load.nss
pc_wand_rest_sys.nss
pccheck.nss
pcdeath.nss
pcdeathport.nss
pipe_use.nss
pipe_yes.nss
piperspipe.nss
pitentrance3.nss
pooleffect.nss
port2bermuda.nss
port2guild1.nss
port_pc_2_lokidg.nss
portguild2aduin.nss
portguild2dracs.nss
portguild2mana.nss
portguild2thief.nss
portguild2woods.nss
portguildhome.nss
portmemberout.nss
portmemberout2.nss
portpartyhome.nss
portpc2guild.nss
portpctodeath.nss
portrait_back.nss
powerimmortal.nss
practicedeath.nss
prc_pwondeath.nss
prc_pwonspawn.nss
pressureplate.nss
prev_shielda.nss
prevappearance1.nss
prevappearance2.nss
prevent_cheat.nss
priestgoldcheck.nss
priestgoldcheck2.nss
priesttakegold.nss
private_conv_ou.nss
punkrod.nss
puzzle.nss
puzzle2.nss
puzzle3.nss
puzzle4.nss
puzzlestart.nss
queendammaged.nss
queendeath.nss
queendeath2.nss
queendoor.nss
queenexit.nss
queenpercieve.nss
queenrender.nss
queentriggeer.nss
quick_lock.nss
quicklingdeath.nss
quicklingheart.nss
quicklingspawn.nss
qvar1.nss
racksecret_use.nss
rainbow2_yes.nss
rainbow_yes.nss
rainbowspawn.nss
rainmerc.nss
raise_immo.nss
rak1.nss
rak2.nss
rak3.nss
rakopen.nss
rakshashaloot.nss
rakshashaunklo.nss
ranger.nss
rangersarrowhead.nss
rangersecret.nss
ratcheck.nss
rd_level.nss
rearm_trap.nss
rearm_trap1.nss
rearm_trap2.nss
rearm_trap3.nss
regenerateme.nss
rejump.nss
relevel10.nss
relevel5.nss
relevelpc1lvl.nss
relevelscript.nss
relevelthepc.nss
reload.nss
relock_me.nss
remove_items.nss
removekey.nss
removeparkey1.nss
removeparkey2.nss
removewpnevis.nss
renderdammaged.nss
renderdeath.nss
renderpercieve.nss
researchtime.nss
respawnchest16.nss
respawnchest45.nss
respawnchest46.nss
respawnme.nss
respawnself.nss
respawnthrone.nss
resref.nss
restrict_door.nss
return_ammo.nss
reward_unlocker.nss
rhazhid_beat.nss
rhazhid_beat_bos.nss
rhazhiddeath.nss
rhazhidpercieve.nss
rhazhidspawn2.nss
rodfastcast.nss
rodofthenameless.nss
roguecheck.nss
roguespawn.nss
rope.nss
rope_yes.nss
rowanbeat.nss
royalroguesecret.nss
rr_debug.nss
rr_loops.nss
rr_tagbased.nss
ruinrod.nss
run_announcement.nss
rustlever_use.nss
s_arcanegolem.nss
s_cleartrash.nss
s_cleartrashencu.nss
s_duergar.nss
s_t_pocket.nss
s_trafrost.nss
s_trashearthuge.nss
s_trashettin.nss
s_trashhillgiant.nss
s_trashminstrong.nss
s_trashncat.nss
s_trashncatacomb.nss
s_trashnrender.nss
s_trashnrender2.nss
s_trashnrestband.nss
s_trashnrestbear.nss
s_trashnrestbeel.nss
s_trashnrestbeet.nss
s_trashnrestctr.nss
s_trashnrestgob.nss
s_trashnrestgobh.nss
s_trashnresthor.nss
s_trashnresthorr.nss
s_trashnrestkobo.nss
s_trashnrestliz.nss
s_trashnrestmin.nss
s_trashnrestogre.nss
s_trashnrestorc1.nss
s_trashnrestorc2.nss
s_trashnrestske2.nss
s_trashnrestskel.nss
s_trashnrestspid.nss
s_trashnresttemp.nss
s_trashnresttrol.nss
s_trashnrestzero.nss
s_trashnstatue.nss
s_trashntown.nss
s_trashyaunti.nss
s_umberhulk.nss
sageanduinpart1.nss
sageanduinpart2.nss
sageanduinpart3.nss
sageanduinpart4.nss
sageanduinpart5.nss
sageanduionsstaf.nss
sagebeetlefire.nss
sagebottle.nss
sagebreaker.nss
sagebrokenstaff.nss
sagecats.nss
sagedenat.nss
sagefenlis.nss
sagefertile.nss
sageforest1.nss
sageforest2.nss
sageforest3.nss
sageforest4.nss
sagegemoftravel.nss
sageghuratsz.nss
sageheartstone.nss
sagehero.nss
sagehuman.nss
sagekhurann.nss
sagemerc.nss
sagenether.nss
sageoil.nss
sagerainbow.nss
sagerope.nss
sagesave.nss
sagescry.nss
sagesecret.nss
sageseed.nss
sageshovel.nss
sagesoul.nss
sagetele.nss
sagetelepathy.nss
sagetooth.nss
sagewizsorc.nss
satanbeat.nss
savecharacters.nss
savecharacters2.nss
savepcinfo.nss
sc_001.nss
scan_pc_items.nss
scan_rings.nss
scanitems.nss
scanswitch.nss
scoreboard_ou.nss
scribelistens.nss
scribesetname.nss
scribespawn.nss
scry_afk_clear.nss
scry_afk_set.nss
scry_anon_clear.nss
scry_anon_set.nss
scry_isafk.nss
scry_isanon.nss
scry_islfg.nss
scry_isnoafk.nss
scry_isnoanon.nss
scry_isnolfg.nss
scry_lfg_clear.nss
scry_lfg_set.nss
scry_list.nss
scry_start.nss
scry_teleport.nss
se_inc_reset.nss
se_inc_reset3.nss
seal_use.nss
sealcheack.nss
searchcheck.nss
secret1_yes.nss
secret3check.nss
secret_yes3.nss
secreta1_yes.nss
secretbathtrigge.nss
secretbathyes.nss
secretcrack.nss
secretcrack2.nss
secretcrackknob.nss
secrettrigger.nss
secrettrigger2.nss
secrettrigger3.nss
securedoorscript.nss
secureport.nss
secureport2.nss
seedcheck.nss
seedswitch.nss
selfdestruct.nss
sendpctotown.nss
sendpestaway.nss
sendtoabyss.nss
server_reset3.nss
set_bann_dm_chat.nss
set_bann_shout.nss
set_cloak_invis.nss
set_cloak_next.nss
set_cloak_prev.nss
set_dm_area_msg.nss
set_dm_msg_1.nss
set_dm_msg_2.nss
set_dm_msg_3.nss
set_dm_msg_4.nss
set_dm_msg_5.nss
set_dm_msg_6.nss
set_dm_msg_7.nss
set_dm_msg_8.nss
set_dm_msg_9.nss
set_dm_npc_chat.nss
set_dm_pcolor.nss
set_dm_scolor.nss
set_dm_tcolor.nss
set_mon_port.nss
set_rainbow_item.nss
set_text_blue.nss
set_text_brown.nss
set_text_cyan.nss
set_text_gold.nss
set_text_green.nss
set_text_icyblue.nss
set_text_lcyan.nss
set_text_lgreen.nss
set_text_lrose.nss
set_text_ltgreen.nss
set_text_magenta.nss
set_text_pink.nss
set_text_purple.nss
set_text_rainbow.nss
set_text_random.nss
set_text_red.nss
set_text_silver.nss
set_text_skyblue.nss
set_text_tan.nss
set_text_turquoi.nss
set_xp_amnt.nss
setappearance1.nss
setappearance2.nss
setbaseappearanc.nss
sethasgambled.nss
setmonsterpic.nss
setmulticolor.nss
setnextportrait.nss
setplotcolor.nss
setrandomcolor.nss
setxp_inc.nss
setxpbank.nss
setxpbank2.nss
sf_bonearm.nss
sf_green_eyes.nss
sf_h_next.nss
sf_h_prev.nss
sf_noeyes.nss
sf_normalarm.nss
sf_notail.nss
sf_notattoo.nss
sf_nowings.nss
sf_red_eyes.nss
sf_t_next.nss
sf_t_prev.nss
sf_tattoo.nss
sf_w_next.nss
sf_w_prev.nss
sf_wingwand.nss
sf_xp.nss
sf_yellow_eyes.nss
sfpb_amount.nss
sfpb_anti_cheat.nss
sfpb_balance.nss
sfpb_close.nss
sfpb_config.nss
sfpb_conv.nss
sfpb_d_fail.nss
sfpb_deposit.nss
sfpb_invalid.nss
sfpb_listen.nss
sfpb_open.nss
sfpb_used.nss
sfpb_w_fail.nss
sfpb_withdraw.nss
shadow_port.nss
shopdoor.nss
shopdoor2.nss
shopdoor3.nss
shopdoorquick.nss
shovelcheck.nss
shutguilddoor.nss
siempre.nss
silenttrigger.nss
silenttrigger2.nss
skeletondeath.nss
sleepenter.nss
sleeping.nss
sleepspawn.nss
slithexit.nss
slithslayer.nss
slumdoor.nss
smack.nss
smack2.nss
soilcheck.nss
soulcheck.nss
spawn1stguard.nss
spawn_horses.nss
spawn_npc_vfx_oe.nss
spawn_tailors.nss
spawnalchemist.nss
spawnarmorshop.nss
spawnartifact.nss
spawnbanker.nss
spawnbartender.nss
spawnbeetlesmith.nss
spawncaptain.nss
spawnclone.nss
spawnclothingmer.nss
spawncrazywitch.nss
spawndoby.nss
spawnelfbardstor.nss
spawnemporium.nss
spawnfarmerbob.nss
spawnforesthag.nss
spawngateguard.nss
spawngossipnpc.nss
spawngypsy.nss
spawnhazel.nss
spawnhazelwitch.nss
spawnhermit.nss
spawnjailguard1.nss
spawnlegend.nss
spawnlokiseye.nss
spawnloremaster.nss
spawnmagestore.nss
spawnmeremnpc.nss
spawnmultiplenpc.nss
spawnnpc.nss
spawnoldmadman.nss
spawnomegaforge.nss
spawnplaceables.nss
spawnpracticeorc.nss
spawnpriestnpc.nss
spawnrareshpnpc.nss
spawnrowennpc.nss
spawnsage.nss
spawnsatan.nss
spawnwarden.nss
spawnweaponshop.nss
spawnwizard1.nss
spawnwonditems.nss
speedcast.nss
speedcaster.nss
speedcaster_oc.nss
spelkill.nss
spelldefender.nss
spellfunc_inc.nss
ssecretlock1.nss
ssring.nss
staff002.nss
staffcheck1.nss
staffcheck2.nss
staffcheck3.nss
staffcheck4.nss
staffcheck5.nss
staffspawn1.nss
staffspawn2.nss
staffspawn3.nss
staffspawn4.nss
staffspawn5.nss
start_convo.nss
start_pit_conv.nss
startarenaconv.nss
startarmorshop.nss
startcloneconv.nss
startcon.nss
startconv.nss
startdmconv.nss
startidconv.nss
startingmessage.nss
startmercrare.nss
startmercweap.nss
startmercwondrou.nss
startoutletarmor.nss
startresting.nss
startthebling.nss
startweap1merc.nss
startwondmerc2.nss
statueheals.nss
steepclimb.nss
steepclimb2.nss
stonecheck.nss
stoneofrecall.nss
stoneport2guild.nss
stoneportshome.nss
stonerecallspc.nss
stonestoresloc.nss
stopbarrelthief.nss
stopbarrelthief2.nss
strcheck.nss
strcheck1.nss
strcheck2.nss
streamed.nss
streetsign2.nss
string_inc.nss
strip_guild_oe.nss
striptease1.nss
stupid.nss
sucked2.nss
suckedtodrow.nss
summon1.nss
summon10.nss
summon11.nss
summon12.nss
summon2.nss
summon3.nss
summon4.nss
summon5.nss
summon6.nss
summon7.nss
summon8.nss
summon9.nss
summon_balor.nss
sundial.nss
swim.nss
take10000gold.nss
take1gp.nss
take200.nss
take20gold.nss
take400.nss
take_pc_effects.nss
takealterkey.nss
takeandiunstaff.nss
takearenatoken.nss
takebottlegivepo.nss
takedrowkey.nss
takesecret.nss
taketest.nss
talkingnpc.nss
tamper.nss
tavernport.nss
taxcheat.nss
taxes.nss
teleffect.nss
teleffectbob.nss
teleffectfount1.nss
teleffectfount2.nss
teleffectgrave1.nss
teleffectgrave3.nss
teleffecthazel.nss
teleffectimmorta.nss
telegemcheck.nss
teleheal.nss
teleportationgem.nss
telgemspawn1.nss
tell_time_ou.nss
tellwandsystem.nss
tenserkill.nss
tentdoorportspc.nss
tentteleportspc.nss
test.nss
thehandofgod.nss
thiefcheck.nss
thievesgate.nss
thronelever_use.nss
time1.nss
time2.nss
time3.nss
time4.nss
time5.nss
time6.nss
time7.nss
time8.nss
time_keeper.nss
time_template.nss
time_tutorial.nss
timecrystal.nss
timestopaoe.nss
tlr_buycost.nss
tlr_buyoutfit.nss
tlr_cloth1.nss
tlr_cloth2.nss
tlr_color0.nss
tlr_color1.nss
tlr_color2.nss
tlr_color3.nss
tlr_color4.nss
tlr_color5.nss
tlr_color6.nss
tlr_color7.nss
tlr_copycost.nss
tlr_copynpcoutfi.nss
tlr_copypcoutfit.nss
tlr_decreaseitem.nss
tlr_decreasetors.nss
tlr_displayindex.nss
tlr_dyeitem.nss
tlr_fixclothing.nss
tlr_group0.nss
tlr_group1.nss
tlr_group2.nss
tlr_group3.nss
tlr_group4.nss
tlr_group5.nss
tlr_group6.nss
tlr_group7.nss
tlr_include.nss
tlr_increaseitem.nss
tlr_increasetors.nss
tlr_leather1.nss
tlr_leather2.nss
tlr_listenoff.nss
tlr_listenon.nss
tlr_metal1.nss
tlr_metal2.nss
tlr_modbelt.nss
tlr_modeldwarf.nss
tlr_modelelf.nss
tlr_modelgnome.nss
tlr_modelhalfelf.nss
tlr_modelhalflin.nss
tlr_modelhalforc.nss
tlr_modelhuman.nss
tlr_modlbicep.nss
tlr_modlfoot.nss
tlr_modlforearm.nss
tlr_modlhand.nss
tlr_modlshin.nss
tlr_modlshoudler.nss
tlr_modlthigh.nss
tlr_modneck.nss
tlr_modpelvis.nss
tlr_modrbicep.nss
tlr_modrfoot.nss
tlr_modrforearm.nss
tlr_modrhand.nss
tlr_modrobe.nss
tlr_modrshin.nss
tlr_modrshoudler.nss
tlr_modrthigh.nss
tlr_modtorso.nss
tlr_onconv.nss
tlr_removeitem.nss
tlr_rotateclock.nss
tlr_rotatecountr.nss
tlr_setitem.nss
tlr_torso0.nss
tlr_torso1.nss
tlr_torso2.nss
tlr_torso3.nss
tlr_torso4.nss
tlr_torso5.nss
tlr_torso6.nss
tlr_torso7.nss
tlr_torso8.nss
tomecheck.nss
tomespawn.nss
toothchest.nss
tourneydoor.nss
tourneysign.nss
townwatch.nss
townwatch01.nss
townwatch1talks.nss
townwatch3talks.nss
trackstrigger1.nss
transferxpgold.nss
transferxpgold2.nss
transfr100kxp.nss
transfr250kxp.nss
transfr50kxp.nss
trapdoor_no.nss
trapdoor_use.nss
trapdoor_yes.nss
trashbarrel.nss
trashem.nss
trashrestdark.nss
treeattack.nss
treeattack2.nss
treedeath.nss
treeguy.nss
treeonguard.nss
triggerfrost.nss
trolldeath.nss
trollpercieve.nss
trreguy.nss
turn_dm_chat_off.nss
turn_dm_chat_on.nss
turn_party_off.nss
turn_party_on.nss
turn_shout_off.nss
turn_shout_on.nss
ua_arenatoken.nss
udk_clothlist.nss
udk_color_dec_1.nss
udk_color_dec_10.nss
udk_color_inc_1.nss
udk_color_inc_10.nss
udk_include.nss
udk_metallist.nss
udk_setcolor.nss
udk_showstatus.nss
ue_blindingbelt.nss
ue_immortalcrown.nss
unblind.nss
unburdenned.nss
unburdenned2.nss
underdoor.nss
underentrance.nss
unequipallnscan.nss
unnatural.nss
vamp.nss
vandalism.nss
vandalspell.nss
vaultheartbeat.nss
vaultopen.nss
vaultopen2.nss
vaultspiketrigge.nss
vaulttimer1.nss
vaulttimer2.nss
vfx_freedom.nss
vfx_glyphs.nss
vfx_on_enter.nss
voyageskip.nss
vtrig1.nss
vtrig2.nss
wager1a.nss
wager1b.nss
wager1c.nss
wager1d.nss
wager1e.nss
wager1f.nss
wager1g.nss
wager1h.nss
wager2a.nss
wager2b.nss
wager2c.nss
wager2d.nss
wager2e.nss
wager2f.nss
wager2g.nss
wager2h.nss
wager3a.nss
wager3b.nss
wager3c.nss
wager3d.nss
wager3e.nss
wager3f.nss
wager3g.nss
wager3h.nss
wager4a.nss
wager4b.nss
wager4c.nss
wager4d.nss
wager4e.nss
wager4f.nss
wager4g.nss
wager4h.nss
wager5a.nss
wager5b.nss
wager5c.nss
wager5d.nss
wager5e.nss
wager5f.nss
wager5g.nss
wager5h.nss
wardenspawn.nss
wardenwalks.nss
wardenwalks2.nss
weaponchanger.nss
weaponmasterbeat.nss
weapshop.nss
well_use.nss
witchspawn.nss
wizbeetle.nss
wizo6.nss
wizreward.nss
wondmer.nss
wpnvisualacid.nss
wpnvisualcold.nss
wpnvisualelectri.nss
wpnvisualevil.nss
wpnvisualfire.nss
wpnvisualholy.nss
wpnvisualsonic.nss
ws_inc_shifter.nss
ww_goooc.nss
ww_modrest.nss
ww_sit.nss
wyrmling_convo.nss
wyrmling_death.nss
wyrmling_spawn.nss
x2_def_spawn.nss
x_genveryhigh_x4.nss
x_o2_bashed.nss
x_o2_boss_12.nss
x_o2_boss_12x2.nss
x_o2_boss_15.nss
x_o2_boss_18.nss
x_o2_boss_20.nss
x_o2_boss_20_x3.nss
x_o2_boss_4.nss
x_o2_boss_4_x3.nss
x_o2_boss_6.nss
x_o2_boss_7.nss
x_o2_boss_9.nss
x_o2_classhig.nss
x_o2_classhig20.nss
x_o2_classlow_4.nss
x_o2_classlow_l8.nss
x_o2_classmed.nss
x_o2_classwea_12.nss
x_o2_classwea_15.nss
x_o2_classwea_18.nss
x_o2_classweap_4.nss
x_o2_classweap_6.nss
x_o2_coninclude.nss
x_o2_gen_low_x4.nss
x_o2_generalhig.nss
x_o2_generallow.nss
x_o2_generalmed.nss
x_o2_generalmid.nss
x_o2_gengodhig.nss
x_o2_gensuperhig.nss
x_o2_genveryhigh.nss
x_o2_preset.nss
x_o2_preset_dm.nss
x_o2_presetbashe.nss
xmpl_npc_on_spwn.nss
xxuse.nss
yauntdeath.nss
yuantipercieve.nss
zombiedeath.nss
zombiepercieve.nss
utc
utd
ute
uti
utm
utp
utt
utw
Module.Packer.deps.json
Module.Packer.dll
Module.Packer.exe
Module.Packer.pdb
Module.Packer.runtimeconfig.dev.json
Module.Packer.runtimeconfig.json
PackModule.cmd
UnpackModule.cmd
nwn_erf.exe
nwn_gff.exe
pcre64.dll
_notes
_release
.gitignore
LICENSE
README.md
PoA_PRC8/_module/nss/fky_chat_dm_comm.nss

1798 lines
132 KiB
Plaintext
Raw Normal View History

2022-10-07 14:20:31 -04:00
//::////////////////////////////////////////////////////////////////////////:://
//:: SIMTools V3.0 Speech Integration & Management Tools Version 3.0 :://
//:: Created By: FunkySwerve :://
//:: Created On: April 4 2006 :://
//:: Last Updated: March 27 2007 :://
//:: With Thanks To: :://
//:: Dumbo - for his amazing plugin :://
//:: Virusman - for Linux versions, and for the reset plugin, and for :://
//:: his excellent events plugin, without which this update would not :://
//:: be possible :://
//:: Dazzle - for his script samples :://
//:: Butch - for the emote wand scripts :://
//:: The DMFI project - for the languages conversions and many of the emotes:://
//:: Lanessar and the players of the Myth Drannor PW - for the new languages:://
//:: The players and DMs of Higher Ground for their input and playtesting :://
//::////////////////////////////////////////////////////////////////////////:://
#include "fky_chat_inc"
#include "prc_inc_util"
2022-10-07 14:20:31 -04:00
void main ()
{
object oDMPC = OBJECT_SELF;
object oDMTarget = GetLocalObject(oDMPC, "FKY_CHAT_DMSHUNT_TARGET");
string sDMText = GetLocalString(oDMPC, "FKY_CHAT_DMSHUNT_TEXT");
DeleteLocalObject(oDMPC, "FKY_CHAT_DMSHUNT_TARGET");
DeleteLocalString(oDMPC, "FKY_CHAT_DMSHUNT_TEXT");
string sSort, sKey, sUppercase, sStore, sData, sRow, sReturn;
object oNewItem, oStorage;
effect eEffect;
int nText, nLang, nAppear, nColor, nRowCount;
location lLoc;
//this section is now handled earlier, with the other commands and channels
/*if (GetStringLowerCase(GetStringLeft(sDMText, 3)) == "dm_")//dm-only commands using tell targeting
{
if (VerifyDMKey(oDMPC) || VerifyAdminKey(oDMPC))//these commands are for DMs and Admins only
{*/
SetLocalString(oDMPC, "NWNX!CHAT!SUPRESS", "1");//don't want commands to show in text
sUppercase = GetStringRight(sDMText, GetStringLength(sDMText) - 3);
sDMText = GetStringLowerCase(sUppercase); //case insensitive
sSort = GetStringLeft(sDMText, 1);
nText = FindSubString("a b c f g h i j k l p r s t u v", sSort);
switch (nText) //0 2 4 6 8 1012141618202224262830
{
case -1: CommandRedirect(oDMPC, 11); break;
/*a*/ case 0:
if (GetStringLeft(sDMText, 6) == "align_")
{
sDMText = GetStringRight(sDMText, GetStringLength(sDMText) - 6);
if (GetStringLeft(sDMText, 6) == "chaos ")
{
sDMText = GetStringRight(sDMText, GetStringLength(sDMText) - 6);
if (TestStringAgainstPattern("*n", sDMText))
{
oDMTarget = VerifyTarget(oDMTarget, oDMPC, sUppercase);
if (!GetIsObjectValid(oDMTarget)) return;
AdjustAlignment(oDMTarget, ALIGNMENT_CHAOTIC, StringToInt(sDMText));
FloatingTextStringOnCreature(COLOR_RED+ ALIGN1 + GetName(oDMTarget) + " " + sDMText + ALIGN2+COLOR_END, oDMPC);
}
else FloatingTextStringOnCreature(COLOR_RED+REQUIRES_NUMBER+COLOR_END, oDMPC);
}
else if (GetStringLeft(sDMText, 5) == "evil ")
{
sDMText = GetStringRight(sDMText, GetStringLength(sDMText) - 5);
if (TestStringAgainstPattern("*n", sDMText))
{
oDMTarget = VerifyTarget(oDMTarget, oDMPC, sUppercase);
if (!GetIsObjectValid(oDMTarget)) return;
AdjustAlignment(oDMTarget, ALIGNMENT_EVIL, StringToInt(sDMText));
FloatingTextStringOnCreature(COLOR_RED+ ALIGN1 + GetName(oDMTarget) + " " + sDMText + ALIGN3+COLOR_END, oDMPC);
}
else FloatingTextStringOnCreature(COLOR_RED+REQUIRES_NUMBER+COLOR_END, oDMPC);
}
else if (GetStringLeft(sDMText, 5) == "good ")
{
sDMText = GetStringRight(sDMText, GetStringLength(sDMText) - 5);
if (TestStringAgainstPattern("*n", sDMText))
{
oDMTarget = VerifyTarget(oDMTarget, oDMPC, sUppercase);
if (!GetIsObjectValid(oDMTarget)) return;
AdjustAlignment(oDMTarget, ALIGNMENT_GOOD, StringToInt(sDMText));
FloatingTextStringOnCreature(COLOR_RED+ ALIGN1 + GetName(oDMTarget) + " " + sDMText + ALIGN4+COLOR_END, oDMPC);
}
else FloatingTextStringOnCreature(COLOR_RED+REQUIRES_NUMBER+COLOR_END, oDMPC);
}
else if (GetStringLeft(sDMText, 4) == "law ")
{
sDMText = GetStringRight(sDMText, GetStringLength(sDMText) - 4);
if (TestStringAgainstPattern("*n", sDMText))
{
oDMTarget = VerifyTarget(oDMTarget, oDMPC, sUppercase);
if (!GetIsObjectValid(oDMTarget)) return;
AdjustAlignment(oDMTarget, ALIGNMENT_LAWFUL, StringToInt(sDMText));
FloatingTextStringOnCreature(COLOR_RED+ ALIGN1 + GetName(oDMTarget) + " " + sDMText + ALIGN5+COLOR_END, oDMPC);
}
else FloatingTextStringOnCreature(COLOR_RED+REQUIRES_NUMBER+COLOR_END, oDMPC);
}
else CommandRedirect(oDMPC, 14);
}
else if (GetStringLeft(sDMText, 2) == "al") CommandRedirect(oDMPC, 14);
else CommandRedirect(oDMPC, 11);
break;
/*b*/ case 2:
if (GetStringLeft(sDMText, 3) == "ban")
{
if (sDMText == "bandm")
{
oDMTarget = VerifyTarget(oDMTarget, oDMPC, sUppercase);
if (!GetIsObjectValid(oDMTarget)) return;
if ((VerifyDMKey(oDMTarget)) || (VerifyAdminKey(oDMTarget)))//these commands may not be used on dms
{
FloatingTextStringOnCreature(COLOR_RED+NOBANDM+COLOR_END, oDMPC);
return;
}
SetLocalInt(oDMTarget, "FKY_CHT_BANDM", TRUE);//temp ban em
SendMessageToPC(oDMTarget, COLOR_RED+TEMPBANDM1+COLOR_END);//tell em
SendMessageToPC(oDMPC, COLOR_RED+TEMPBANGEN+ GetName(oDMTarget)+TEMPBANDM2+COLOR_END);
}
else if (sDMText == "banplayer_perm")
{
oDMTarget = VerifyTarget(oDMTarget, oDMPC, sUppercase);
if (!GetIsObjectValid(oDMTarget)) return;
if ((VerifyDMKey(oDMTarget)) || (VerifyAdminKey(oDMTarget)))//these commands may not be used on dms
{
FloatingTextStringOnCreature(COLOR_RED+NOBANDM+COLOR_END, oDMPC);
return;
}
sKey = GetPCPublicCDKey(oDMTarget);
SetLocalInt(oDMTarget, "FKY_CHT_BANPLAYER", TRUE);//temp ban em
if (USING_NWNX_DB) SetPersistentInt(GetModule(), "FKY_CHT_BANPLAYER"+ sKey, TRUE);//permaban em
else SetCampaignInt("FKY_CHT", "FKY_CHT_BANPLAYER" + sKey, TRUE); //
FloatingTextStringOnCreature(COLOR_RED+PERMABAN1+COLOR_END, oDMTarget);//tell em
AssignCommand(GetModule(), DelayCommand(6.0, DoBoot(oDMTarget)));//boot em
SendMessageToPC(oDMPC, COLOR_RED+PERMABANGEN+ GetName(oDMTarget) +PERMABAN2+COLOR_END);
}
else if (sDMText == "banplayer_temp")
{
oDMTarget = VerifyTarget(oDMTarget, oDMPC, sUppercase);
if (!GetIsObjectValid(oDMTarget)) return;
if ((VerifyDMKey(oDMTarget)) || (VerifyAdminKey(oDMTarget)))//these commands may not be used on dms
{
FloatingTextStringOnCreature(COLOR_RED+NOBANDM+COLOR_END, oDMPC);
return;
}
SetLocalInt(oDMTarget, "FKY_CHT_BANPLAYER", TRUE);//temp ban em
FloatingTextStringOnCreature(COLOR_RED+TEMPBAN+COLOR_END, oDMTarget);//tell em
AssignCommand(GetModule(), DelayCommand(6.0, DoBoot(oDMTarget)));//boot em
SendMessageToPC(oDMPC, COLOR_RED+TEMPBANGEN+GetName(oDMTarget) +TEMPBAN2+COLOR_END);
}
else if (sDMText == "banshout_temp")
{
oDMTarget = VerifyTarget(oDMTarget, oDMPC, sUppercase);
if (!GetIsObjectValid(oDMTarget)) return;
if ((VerifyDMKey(oDMTarget)) || (VerifyAdminKey(oDMTarget)))//these commands may not be used on dms
{
FloatingTextStringOnCreature(COLOR_RED+NOBANDM+COLOR_END, oDMPC);
return;
}
SetLocalInt(oDMTarget, "FKY_CHT_BANSHOUT", TRUE);//temp ban em
SendMessageToPC(oDMTarget, COLOR_RED+TEMPBANSHT+COLOR_END);//tell em
SendMessageToPC(oDMPC, COLOR_RED+TEMPBANGEN+GetName(oDMTarget) +TEMPBANSHT2+COLOR_END);
if (GetLocalString(oDMTarget, "FKY_CHT_BANREASON") == "") SetLocalString(oDMTarget, "FKY_CHT_BANREASON", BANNEDBY + GetName(oDMPC));
}
else if (sDMText == "banshout_perm")
{
oDMTarget = VerifyTarget(oDMTarget, oDMPC, sUppercase);
if (!GetIsObjectValid(oDMTarget)) return;
if ((VerifyDMKey(oDMTarget)) || (VerifyAdminKey(oDMTarget)))//these commands may not be used on dms
{
FloatingTextStringOnCreature(COLOR_RED+NOBANDM+COLOR_END, oDMPC);
return;
}
sKey = GetPCPublicCDKey(oDMTarget);
SetLocalInt(oDMTarget, "FKY_CHT_BANSHOUT", TRUE);//temp ban em
if (GetLocalString(oDMTarget, "FKY_CHT_BANREASON") == "") SetLocalString(oDMTarget, "FKY_CHT_BANREASON", BANNEDBY + GetName(oDMPC));
//capture the reason they were banned and by whom
if (USING_NWNX_DB) SetPersistentInt(GetModule(), "FKY_CHT_BANSHOUT"+ sKey, TRUE);//permaban em
else SetCampaignInt("FKY_CHT", "FKY_CHT_BANSHOUT" + sKey, TRUE); //
SendMessageToPC(oDMTarget, COLOR_RED+PERMBANSHT1+COLOR_END);//tell em
SendMessageToPC(oDMPC, COLOR_RED+PERMABANGEN+ GetName(oDMTarget) +PERMBANSHT2+COLOR_END);
}
else CommandRedirect(oDMPC, 16);
}
else if (GetStringLeft(sDMText, 2) == "ba") CommandRedirect(oDMPC, 16);
else if (sDMText == "boot")
{
oDMTarget = VerifyTarget(oDMTarget, oDMPC, sUppercase);
if (!GetIsObjectValid(oDMTarget)) return;
if ((VerifyDMKey(oDMTarget)) || (VerifyAdminKey(oDMTarget)))//these commands may not be used on dms
{
FloatingTextStringOnCreature(COLOR_RED+NOBOOTDM+COLOR_END, oDMPC);
return;
}
DoBoot(oDMTarget);
FloatingTextStringOnCreature(COLOR_RED+BOOTED+GetName(oDMTarget)+ "!"+COLOR_END, oDMPC, FALSE);
}
else if (GetStringLeft(sDMText, 2) == "bo") CommandRedirect(oDMPC, 15);
else CommandRedirect(oDMPC, 11);
break;
/*c*/ case 4:
if (GetStringLeft(sDMText, 7) == "create ")
{
sDMText = GetStringRight(sDMText, GetStringLength(sDMText) - 7);
oDMTarget = VerifyTarget(oDMTarget, oDMPC, sUppercase, OBJECT_TARGET, FALSE);
if (!GetIsObjectValid(oDMTarget)) return;
oNewItem = CreateItemOnObject(sDMText, oDMTarget);
if (GetIsObjectValid(oNewItem))
{
if (!GetIsPC(oDMTarget)) SetDroppableFlag(oNewItem, TRUE);//set to droppable so creature drops on death
SendMessageToPC(oDMPC, COLOR_RED+CREATE1+ GetName(oNewItem) +CREATE2+ GetName(oDMTarget) + "!"+COLOR_END);
}
else SendMessageToPC(oDMPC, COLOR_RED+CREATE3+COLOR_END);
}
else if (GetStringLeft(sDMText, 2) == "cr") CommandRedirect(oDMPC, 17);
else if (GetStringLeft(sDMText, 14) == "change_appear ")
{
sDMText = GetStringRight(sDMText, GetStringLength(sDMText) - 14);
oDMTarget = VerifyTarget(oDMTarget, oDMPC, sUppercase, OBJECT_TARGET, FALSE);
if (!GetIsObjectValid(oDMTarget)) return;
if (GetIsPC(oDMTarget))
{
nAppear = GetLocalInt(oDMTarget, "FKY_CHAT_TRUEAPPEAR");
if (!nAppear)//if original appearance has not been stored
{
nAppear = GetAppearanceType(oDMTarget);
if (USING_NWNX_DB)//store the original appearance so it can be restored
{
SetLocalInt(oDMTarget, "FKY_CHAT_TRUEAPPEAR", nAppear);
SetPersistentInt(oDMTarget, "FKY_CHAT_TRUEAPPEAR", nAppear);
}
else if (ENABLE_LANGUAGES)
{
oStorage = GetItemPossessedBy(oDMTarget, TAG_OF_LANGUAGE_STORAGE_OBJECT);
SetLocalInt(oDMTarget, "FKY_CHAT_TRUEAPPEAR", nAppear);
SetLocalInt(oStorage, "FKY_CHAT_TRUEAPPEAR", nAppear);
ExportSingleCharacter(oDMTarget);
}
}
}
if ((VerifyDMKey(oDMTarget) || VerifyAdminKey(oDMTarget))&& (oDMTarget != oDMPC)) FloatingTextStringOnCreature(COLOR_RED+NO_DM_APPEAR+COLOR_END, oDMPC);
else
{
if (sDMText == "base")
{
if (GetIsPC(oDMTarget)) SetCreatureAppearanceType(oDMTarget, nAppear);
else FloatingTextStringOnCreature(COLOR_RED+NO_BASE_NPC+COLOR_END, oDMPC);
}
else
{
if (TestStringAgainstPattern("*n", sDMText))
{
SetCreatureAppearanceType(oDMTarget, StringToInt(sDMText));
FloatingTextStringOnCreature(COLOR_GREEN+APP_CHANGED+COLOR_END, oDMPC);
}
else FloatingTextStringOnCreature(COLOR_RED+REQUIRES_NUMBER+COLOR_END, oDMPC);
}
}
}
else if (GetStringLeft(sDMText, 2) == "ch") CommandRedirect(oDMPC, 13);
else CommandRedirect(oDMPC, 11);
break;
/*f*/ case 6:
if (GetStringLeft(sDMText, 4) == "fac_")
{
sDMText = GetStringRight(sDMText, GetStringLength(sDMText) - 4);
sSort = GetStringLeft(sDMText, 2);
if (sSort == "a_")//area
{
sDMText = GetStringRight(sDMText, GetStringLength(sDMText) - 2);
if (sDMText == "allally") {nText = 100; nLang = 100; nAppear = 100; nColor = 100;}//100 100 100 100
else if (sDMText == "allfoe") {nText = 0; nLang = 0; nAppear = 0; nColor = 0;} //0 0 0 0
else if (sDMText == "peace") {nText = 11; nLang = 50; nAppear = 91; nColor = 100;} //11 50 91 100
else if (sDMText == "reset") {nText = 0; nLang = 50; nAppear = 91; nColor = 100;}//0 50 91 100
else
{
CommandRedirect(oDMPC, 24);
return;
}
oDMTarget = VerifyTarget(oDMTarget, oDMPC, sUppercase, AREA_TARGET_OK);
if (!GetIsObjectValid(oDMTarget)) return;
oNewItem = GetArea(oDMTarget);
oStorage = GetFirstObjectInArea(oNewItem);
while (GetIsObjectValid(oStorage))
{
if (GetObjectType(oStorage) == OBJECT_TYPE_CREATURE)
{
SetStandardFactionReputation(STANDARD_FACTION_HOSTILE, nText, oStorage);
SetStandardFactionReputation(STANDARD_FACTION_MERCHANT, nLang, oStorage);
SetStandardFactionReputation(STANDARD_FACTION_COMMONER, nAppear, oStorage);
SetStandardFactionReputation(STANDARD_FACTION_DEFENDER, nColor, oStorage);
}
oStorage = GetNextObjectInArea(oNewItem);
}
FloatingTextStringOnCreature(COLOR_RED+FACTION_REP+COLOR_END, oDMPC, FALSE);
}
else if (sSort == "c_")//character
{
sDMText = GetStringRight(sDMText, GetStringLength(sDMText) - 2);
if (sDMText == "allally") {nText = 100; nLang = 100; nAppear = 100; nColor = 100;}//100 100 100 100
else if (sDMText == "allfoe") {nText = 0; nLang = 0; nAppear = 0; nColor = 0;} //0 0 0 0
else if (sDMText == "peace") {nText = 11; nLang = 50; nAppear = 91; nColor = 100;} //11 50 91 100
else if (sDMText == "reset") {nText = 0; nLang = 50; nAppear = 91; nColor = 100;}//0 50 91 100
else
{
CommandRedirect(oDMPC, 24);
return;
}
oDMTarget = VerifyTarget(oDMTarget, oDMPC, sUppercase, OBJECT_TARGET, FALSE);
if (!GetIsObjectValid(oDMTarget)) return;
SetStandardFactionReputation(STANDARD_FACTION_HOSTILE, nText, oDMTarget);
SetStandardFactionReputation(STANDARD_FACTION_MERCHANT, nLang, oDMTarget);
SetStandardFactionReputation(STANDARD_FACTION_COMMONER, nAppear, oDMTarget);
SetStandardFactionReputation(STANDARD_FACTION_DEFENDER, nColor, oDMTarget);
FloatingTextStringOnCreature(COLOR_RED+FACTION_REP+COLOR_END, oDMPC, FALSE);
}
else if (sSort == "m_")//monsters (all in area not pc)
{
sDMText = GetStringRight(sDMText, GetStringLength(sDMText) - 2);
if (sDMText == "allally") {nText = 100; nLang = 100; nAppear = 100; nColor = 100;}//100 100 100 100
else if (sDMText == "allfoe") {nText = 0; nLang = 0; nAppear = 0; nColor = 0;} //0 0 0 0
else if (sDMText == "peace") {nText = 11; nLang = 50; nAppear = 91; nColor = 100;} //11 50 91 100
else if (sDMText == "reset") {nText = 0; nLang = 50; nAppear = 91; nColor = 100;}//0 50 91 100
else
{
CommandRedirect(oDMPC, 24);
return;
}
oDMTarget = VerifyTarget(oDMTarget, oDMPC, sUppercase, AREA_TARGET_OK);
if (!GetIsObjectValid(oDMTarget)) return;
oNewItem = GetArea(oDMTarget);
oStorage = GetFirstObjectInArea(oNewItem);
while (GetIsObjectValid(oStorage))
{
if ((GetObjectType(oStorage) == OBJECT_TYPE_CREATURE) && (!GetIsPC(oStorage)))
{
SetStandardFactionReputation(STANDARD_FACTION_HOSTILE, nText, oStorage);
SetStandardFactionReputation(STANDARD_FACTION_MERCHANT, nLang, oStorage);
SetStandardFactionReputation(STANDARD_FACTION_COMMONER, nAppear, oStorage);
SetStandardFactionReputation(STANDARD_FACTION_DEFENDER, nColor, oStorage);
}
oStorage = GetNextObjectInArea(oNewItem);
}
FloatingTextStringOnCreature(COLOR_RED+FACTION_REP+COLOR_END, oDMPC, FALSE);
}
else if (sSort == "p_")//party
{
sDMText = GetStringRight(sDMText, GetStringLength(sDMText) - 2);
if (sDMText == "allally") {nText = 100; nLang = 100; nAppear = 100; nColor = 100;}//100 100 100 100
else if (sDMText == "allfoe") {nText = 0; nLang = 0; nAppear = 0; nColor = 0;} //0 0 0 0
else if (sDMText == "peace") {nText = 11; nLang = 50; nAppear = 91; nColor = 100;} //11 50 91 100
else if (sDMText == "reset") {nText = 0; nLang = 50; nAppear = 91; nColor = 100;}//0 50 91 100
else
{
CommandRedirect(oDMPC, 24);
return;
}
oDMTarget = VerifyTarget(oDMTarget, oDMPC, sUppercase, OBJECT_TARGET, FALSE);
if (!GetIsObjectValid(oDMTarget)) return;
oStorage = GetFirstFactionMember(oDMTarget);
while (GetIsObjectValid(oStorage))
{
SetStandardFactionReputation(STANDARD_FACTION_HOSTILE, nText, oStorage);
SetStandardFactionReputation(STANDARD_FACTION_MERCHANT, nLang, oStorage);
SetStandardFactionReputation(STANDARD_FACTION_COMMONER, nAppear, oStorage);
SetStandardFactionReputation(STANDARD_FACTION_DEFENDER, nColor, oStorage);
oStorage = GetNextFactionMember(oDMTarget);
}
FloatingTextStringOnCreature(COLOR_RED+FACTION_REP+COLOR_END, oDMPC, FALSE);
}
else CommandRedirect(oDMPC, 24);
}
else if (GetStringLeft(sDMText, 2) == "fa") CommandRedirect(oDMPC, 24);
else if (sDMText == "freeze")
{
oDMTarget = VerifyTarget(oDMTarget, oDMPC, sUppercase, OBJECT_TARGET, FALSE);
if (!GetIsObjectValid(oDMTarget)) return;
if ((!VerifyDMKey(oDMTarget)) && (!VerifyAdminKey(oDMTarget)))//these commands may not be used on dms
{
SetCommandable(FALSE, oDMTarget);
SendMessageToPC(oDMTarget, COLOR_RED+FREEZE1+COLOR_END);
SendMessageToPC(oDMPC, COLOR_RED+FREEZE2+ GetName(oDMTarget) + "!"+COLOR_END);
}
else FloatingTextStringOnCreature(COLOR_RED+FREEZE3+COLOR_END, oDMPC);
}
else if (GetStringLeft(sDMText, 2) == "fr") CommandRedirect(oDMPC, 15);
else if (GetStringLeft(sDMText, 2) == "fx")
{
if (GetStringLeft(sDMText, 3) == "fx ")
{
sDMText = GetStringLowerCase(GetStringRight(sDMText, GetStringLength(sDMText) - 3));
oDMTarget = VerifyTarget(oDMTarget, oDMPC, sUppercase, OBJECT_TARGET, FALSE, FALSE);
if (!GetIsObjectValid(oDMTarget)) return;
AssignCommand(oDMPC, DoVFX(oDMPC, sDMText, oDMTarget));//assigncommand ensures DM is creator
}
else if (GetStringLeft(sDMText, 7) == "fx_loc ")
{
lLoc = VerifyLocation(oDMPC, sUppercase);
if (!GetIsObjectValid(GetAreaFromLocation(lLoc))) return;
sDMText = GetStringLowerCase(GetStringRight(sDMText, GetStringLength(sDMText) - 7));
AssignCommand(oDMPC, DoVFX(oDMPC, sDMText, oDMTarget, TRUE));//assigncommand ensures DM is creator
}
else if (sDMText == "fx_rem")
{
oDMTarget = VerifyTarget(oDMTarget, oDMPC, sUppercase, OBJECT_TARGET, FALSE, FALSE);
if (!GetIsObjectValid(oDMTarget)) return;
eEffect = GetFirstEffect(oDMTarget);
while (GetIsEffectValid(eEffect))
{
if (((GetEffectType(eEffect) == EFFECT_TYPE_VISUALEFFECT) || (GetEffectType(eEffect) == EFFECT_TYPE_BEAM)) && (GetEffectCreator(eEffect) == oDMPC))
{
DelayCommand(0.1, RemoveEffect(oDMTarget, eEffect));
}
eEffect = GetNextEffect(oDMTarget);
}
}
else if (GetStringLeft(sDMText, 8) == "fx_list_") // dur, bea, eye, imp, com, fnf
{
sDMText = GetStringLowerCase(GetStringRight(sDMText, GetStringLength(sDMText) - 8));
if (sDMText == "dur" || sDMText == "bea" || sDMText == "eye" || sDMText == "imp" || sDMText == "com" || sDMText == "fnf") ListFX(oDMPC, sDMText);
else CommandRedirect(oDMPC, 25);
}
else CommandRedirect(oDMPC, 25);
}
else CommandRedirect(oDMPC, 11);
break;
/*g*/ case 8:
if (GetStringLeft(sDMText, 6) == "getban")
{
if (sDMText == "getbanlist") GetBanList(oDMPC);
else if (sDMText == "getbanreason")
{
oDMTarget = VerifyTarget(oDMTarget, oDMPC, sUppercase, OBJECT_TARGET);
if (!GetIsObjectValid(oDMTarget)) return;
sKey = GetLocalString(oDMTarget, "FKY_CHT_BANREASON");
if (sKey == "") SendMessageToPC(oDMPC, COLOR_RED+BANREASON1+COLOR_END);
else SendMessageToPC(oDMPC, COLOR_RED+BANREASON2+ sKey + COLOR_END);
}
else CommandRedirect(oDMPC, 16);
}
else if (GetStringLeft(sDMText, 4) == "getb") CommandRedirect(oDMPC, 16);
else if (GetStringLeft(sDMText, 6) == "getvar")
{
sDMText = GetStringRight(sDMText, GetStringLength(sDMText) - 6);
sStore = GetStringRight(sUppercase, GetStringLength(sUppercase) - 6);
if (GetStringLeft(sDMText, 4) == "int ")
{
sDMText = GetStringRight(sDMText, GetStringLength(sDMText) - 4);
sStore = GetStringRight(sStore, GetStringLength(sStore) - 4);
nLang = FindSubString(sDMText, " ");
if (nLang == -1)
{
oDMTarget = VerifyTarget(oDMTarget, oDMPC, sUppercase, AREA_TARGET_OK);
if (!GetIsObjectValid(oDMTarget)) return;
nLang = GetLocalInt(oDMTarget, sStore);
FloatingTextStringOnCreature(COLOR_GREEN+VARINT1+sStore+VARINT2+IntToString(nLang)+COLOR_END, oDMPC);
}
else FloatingTextStringOnCreature(COLOR_RED+NO_VAR_SPACE+COLOR_END, oDMPC);
}
else if (GetStringLeft(sDMText, 6) == "float ")
{
sDMText = GetStringRight(sDMText, GetStringLength(sDMText) - 6);
sStore = GetStringRight(sStore, GetStringLength(sStore) - 6);
nLang = FindSubString(sDMText, " ");
if (nLang == -1)
{
oDMTarget = VerifyTarget(oDMTarget, oDMPC, sUppercase, AREA_TARGET_OK);
if (!GetIsObjectValid(oDMTarget)) return;
FloatingTextStringOnCreature(COLOR_GREEN+VARINT3+sStore+VARINT2+FloatToString(GetLocalFloat(oDMTarget, sStore))+COLOR_END, oDMPC);
}
else FloatingTextStringOnCreature(COLOR_RED+NO_VAR_SPACE+COLOR_END, oDMPC);
}
else if (GetStringLeft(sDMText, 7) == "string ")
{
sDMText = GetStringRight(sDMText, GetStringLength(sDMText) - 7);
sStore = GetStringRight(sStore, GetStringLength(sStore) - 7);
nLang = FindSubString(sDMText, " ");
if (nLang == -1)
{
oDMTarget = VerifyTarget(oDMTarget, oDMPC, sUppercase, AREA_TARGET_OK);
if (!GetIsObjectValid(oDMTarget)) return;
FloatingTextStringOnCreature(COLOR_GREEN+VARINT4+sStore+VARINT2+GetLocalString(oDMTarget, sStore)+COLOR_END, oDMPC);
}
else FloatingTextStringOnCreature(COLOR_RED+NO_VAR_SPACE+COLOR_END, oDMPC);
}
else if (GetStringLeft(sDMText, 3) == "mod")
{
sDMText = GetStringRight(sDMText, GetStringLength(sDMText) - 3);
sStore = GetStringRight(sStore, GetStringLength(sStore) - 3);
if (GetStringLeft(sDMText, 4) == "int ")
{
sDMText = GetStringRight(sDMText, GetStringLength(sDMText) - 4);
sStore = GetStringRight(sStore, GetStringLength(sStore) - 4);
nLang = FindSubString(sDMText, " ");
if (nLang == -1)
{
nLang = GetLocalInt(GetModule(), sStore);
FloatingTextStringOnCreature(COLOR_GREEN+VARINT1+sStore+VARINT2+IntToString(nLang)+COLOR_END, oDMPC);
}
else FloatingTextStringOnCreature(COLOR_RED+NO_VAR_SPACE+COLOR_END, oDMPC);
}
else if (GetStringLeft(sDMText, 6) == "float ")
{
sDMText = GetStringRight(sDMText, GetStringLength(sDMText) - 6);
sStore = GetStringRight(sStore, GetStringLength(sStore) - 6);
nLang = FindSubString(sDMText, " ");
if (nLang == -1)
{
FloatingTextStringOnCreature(COLOR_GREEN+VARINT3+sStore+VARINT2+FloatToString(GetLocalFloat(GetModule(), sStore))+COLOR_END, oDMPC);
}
else FloatingTextStringOnCreature(COLOR_RED+NO_VAR_SPACE+COLOR_END, oDMPC);
}
else if (GetStringLeft(sDMText, 7) == "string ")
{
sDMText = GetStringRight(sDMText, GetStringLength(sDMText) - 7);
sStore = GetStringRight(sStore, GetStringLength(sStore) - 7);
nLang = FindSubString(sDMText, " ");
if (nLang == -1)
{
oDMTarget = VerifyTarget(oDMTarget, oDMPC, sUppercase, AREA_TARGET_OK);
if (!GetIsObjectValid(oDMTarget)) return;
FloatingTextStringOnCreature(COLOR_GREEN+VARINT4+sStore+VARINT2+GetLocalString(GetModule(), sStore)+COLOR_END, oDMPC);
}
else FloatingTextStringOnCreature(COLOR_RED+NO_VAR_SPACE+COLOR_END, oDMPC);
}
else CommandRedirect(oDMPC, 22);
}
else CommandRedirect(oDMPC, 22);
}
else if (GetStringLeft(sDMText, 4) == "getv") CommandRedirect(oDMPC, 22);
else if (GetStringLeft(sDMText, 4) == "give")
{
if (GetStringLeft(sDMText, 7) == "givexp ")
{
sDMText = GetStringRight(sDMText, GetStringLength(sDMText) - 7);
if (TestStringAgainstPattern("*n", sDMText))
{
oDMTarget = VerifyTarget(oDMTarget, oDMPC, sUppercase, OBJECT_TARGET);
if (!GetIsObjectValid(oDMTarget)) return;
GiveXPToCreature(oDMTarget, StringToInt(sDMText));
SendMessageToPC(oDMPC, COLOR_RED+XP1+ IntToString(StringToInt(sDMText))+XP2+GetName(oDMTarget) + "!"+COLOR_END);
}
else FloatingTextStringOnCreature(COLOR_RED+REQUIRES_NUMBER+COLOR_END, oDMPC);
}
else if (GetStringLeft(sDMText, 10) == "givelevel ")
{
sDMText = GetStringRight(sDMText, GetStringLength(sDMText) - 10);
if (TestStringAgainstPattern("*n", sDMText))
{
nColor = StringToInt(sDMText);
if (nColor == 1) sStore = XP12;
else sStore = XP13;
oDMTarget = VerifyTarget(oDMTarget, oDMPC, sUppercase, OBJECT_TARGET);
if (!GetIsObjectValid(oDMTarget)) return;
GiveLevel(oDMTarget, oDMPC, nColor);
SendMessageToPC(oDMPC, COLOR_RED+XP1+ IntToString(nColor)+sStore+GetName(oDMTarget) + "!"+COLOR_END);
}
else FloatingTextStringOnCreature(COLOR_RED+REQUIRES_NUMBER+COLOR_END, oDMPC);
}
else if (GetStringLeft(sDMText, 12) == "givepartyxp ")
{
sDMText = GetStringRight(sDMText, GetStringLength(sDMText) - 12);
if (TestStringAgainstPattern("*n", sDMText))
{
oDMTarget = VerifyTarget(oDMTarget, oDMPC, sUppercase, OBJECT_TARGET);
if (!GetIsObjectValid(oDMTarget)) return;
oStorage = GetFirstFactionMember(oDMTarget);
while (GetIsObjectValid(oStorage))
{
GiveXPToCreature(oStorage, StringToInt(sDMText));
oStorage = GetNextFactionMember(oDMTarget);
}
SendMessageToPC(oDMPC, COLOR_RED+XP1+ IntToString(StringToInt(sDMText))+XP2+GetName(oDMTarget) + XP11+COLOR_END);
}
else FloatingTextStringOnCreature(COLOR_RED+REQUIRES_NUMBER+COLOR_END, oDMPC);
}
else if (GetStringLeft(sDMText, 15) == "givepartylevel ")
{
sDMText = GetStringRight(sDMText, GetStringLength(sDMText) - 15);
if (TestStringAgainstPattern("*n", sDMText))
{
oDMTarget = VerifyTarget(oDMTarget, oDMPC, sUppercase, OBJECT_TARGET);
if (!GetIsObjectValid(oDMTarget)) return;
oStorage = GetFirstFactionMember(oDMTarget);
nColor = StringToInt(sDMText);
if (nColor == 1) sStore = XP12;
else sStore = XP13;
while (GetIsObjectValid(oStorage))
{
GiveLevel(oStorage, oDMPC, nColor, FALSE);//function has built-in message to each, FALSE stops it
oStorage = GetNextFactionMember(oDMTarget);
}
SendMessageToPC(oDMPC, COLOR_RED+XP1+ IntToString(StringToInt(sDMText))+sStore+GetName(oDMTarget) + XP11+COLOR_END);
}
else FloatingTextStringOnCreature(COLOR_RED+REQUIRES_NUMBER+COLOR_END, oDMPC);
}
else CommandRedirect(oDMPC, 19);
}
else if (GetStringLeft(sDMText, 2) == "gi") CommandRedirect(oDMPC, 19);
else CommandRedirect(oDMPC, 11);
break;
/*h*/ case 10:
if (sDMText == "hide")
{
oDMTarget = VerifyTarget(oDMTarget, oDMPC, sUppercase, OBJECT_TARGET);
if (!GetIsObjectValid(oDMTarget)) return;
ExploreAreaForPlayer(GetArea(oDMTarget), oDMTarget, FALSE);
FloatingTextStringOnCreature(COLOR_RED+EXPLORE2+COLOR_END, oDMPC, FALSE);
}
else if (GetStringLeft(sDMText, 2) == "hi") CommandRedirect(oDMPC, 20);
else if (sDMText == "help") ListDMHelp(oDMPC);
else if (GetStringLeft(sDMText, 2) == "he") CommandRedirect(oDMPC, 26);
else CommandRedirect(oDMPC, 11);
break;
/*i*/ case 12:
if (GetStringLeft(sDMText, 2) == "ig")
{
if (sDMText == "ignoredm")
{
if ((DM_PLAYERS_HEAR_DM && VerifyDMKey(oDMPC) && (!GetIsDM(oDMPC))) || (ADMIN_PLAYERS_HEAR_DM && VerifyAdminKey(oDMPC) && (!GetIsDM(oDMPC))))
{
SetLocalInt(oDMPC, "FKY_CHT_IGNOREDM", TRUE);//they will not receive dm messages
SendMessageToPC(oDMPC, COLOR_RED+IGNORED+COLOR_END);
}
else CommandRedirect(oDMPC, 11);
}
else if (sDMText == "ignoremeta")
{
if ((DMS_HEAR_META && VerifyDMKey(oDMPC) && GetIsDM(oDMPC)) || (DM_PLAYERS_HEAR_META && VerifyDMKey(oDMPC) && (!GetIsDM(oDMPC))) || (ADMIN_DMS_HEAR_META && VerifyAdminKey(oDMPC) && GetIsDM(oDMPC)) || (ADMIN_PLAYERS_HEAR_META && VerifyAdminKey(oDMPC) && (!GetIsDM(oDMPC))))
{
SetLocalInt(oDMPC, "FKY_CHT_IGNOREMETA", TRUE);//they will not receive dm messages
SendMessageToPC(oDMPC, COLOR_RED+IGNOREM+COLOR_END);
}
else CommandRedirect(oDMPC, 11);
}
else if (sDMText == "ignoretells")
{
if ((DMS_HEAR_TELLS && VerifyDMKey(oDMPC) && GetIsDM(oDMPC)) || (DM_PLAYERS_HEAR_TELLS && VerifyDMKey(oDMPC) && (!GetIsDM(oDMPC))) || (ADMIN_DMS_HEAR_TELLS && VerifyAdminKey(oDMPC) && GetIsDM(oDMPC)) || (ADMIN_PLAYERS_HEAR_TELLS && VerifyAdminKey(oDMPC) && (!GetIsDM(oDMPC))))
{
SetLocalInt(oDMPC, "FKY_CHT_IGNORETELLS", TRUE);//they will not receive tells
SendMessageToPC(oDMPC, COLOR_RED+IGNORET+COLOR_END);
}
else CommandRedirect(oDMPC, 11);
}
else if ( ((DM_PLAYERS_HEAR_DM && VerifyDMKey(oDMPC) && (!GetIsDM(oDMPC))) || (ADMIN_PLAYERS_HEAR_DM && VerifyAdminKey(oDMPC) && (!GetIsDM(oDMPC)))) ||
((DMS_HEAR_META && VerifyDMKey(oDMPC) && GetIsDM(oDMPC)) || (DM_PLAYERS_HEAR_META && VerifyDMKey(oDMPC) && (!GetIsDM(oDMPC))) || (ADMIN_DMS_HEAR_META && VerifyAdminKey(oDMPC) && GetIsDM(oDMPC)) || (ADMIN_PLAYERS_HEAR_META && VerifyAdminKey(oDMPC) && (!GetIsDM(oDMPC)))) ||
((DMS_HEAR_TELLS && VerifyDMKey(oDMPC) && GetIsDM(oDMPC)) || (DM_PLAYERS_HEAR_TELLS && VerifyDMKey(oDMPC) && (!GetIsDM(oDMPC))) || (ADMIN_DMS_HEAR_TELLS && VerifyAdminKey(oDMPC) && GetIsDM(oDMPC)) || (ADMIN_PLAYERS_HEAR_TELLS && VerifyAdminKey(oDMPC) && (!GetIsDM(oDMPC)))) ) CommandRedirect(oDMPC, 27);
else CommandRedirect(oDMPC, 11);
}
else if (sDMText == "invis")
{
AssignCommand(GetModule(), DoDMInvis(oDMPC));
SendMessageToPC(oDMPC, COLOR_RED+INVIS+COLOR_END);
}
else if (sDMText == "invuln")
{
oDMTarget = VerifyTarget(oDMTarget, oDMPC, sUppercase, OBJECT_TARGET, FALSE, FALSE);
if (!GetIsObjectValid(oDMTarget)) return;
SetPlotFlag(oDMTarget, TRUE);
if (oDMTarget == oDMPC) SendMessageToPC(oDMPC, COLOR_RED+INVUL1+COLOR_END);
else
{
SendMessageToPC(oDMPC, COLOR_RED + GetName(oDMTarget) +INVUL2+COLOR_END);
if (GetIsPC(oDMPC)) SendMessageToPC(oDMTarget, COLOR_RED+INVUL1+COLOR_END);
}
}
else if (GetStringLeft(sDMText, 2) == "in") CommandRedirect(oDMPC, 15);
else if (GetStringLeft(sDMText, 5) == "item_")//id, destroy
{
sDMText = GetStringRight(sDMText, GetStringLength(sDMText) - 5);
if (sDMText == "id")
{
oDMTarget = VerifyTarget(oDMTarget, oDMPC, sUppercase, OBJECT_TARGET, FALSE, FALSE);
if (!GetIsObjectValid(oDMTarget)) return;
oStorage = GetFirstItemInInventory(oDMTarget);
while (GetIsObjectValid(oStorage))
{
SetIdentified(oStorage, TRUE);
oStorage = GetNextItemInInventory(oDMTarget);
}
FloatingTextStringOnCreature(COLOR_RED+ITEM_ID+GetName(oDMTarget)+ITEM_END+COLOR_END, oDMPC, FALSE);
}
else if (GetStringLeft(sDMText, 8) == "destroy_")
{
if (((!VerifyDMKey(oDMTarget)) && (!VerifyAdminKey(oDMTarget))) || (oDMTarget == oDMPC))
{
sDMText = GetStringRight(sDMText, GetStringLength(sDMText) - 8);
if (sDMText == "all")
{
oDMTarget = VerifyTarget(oDMTarget, oDMPC, sUppercase, OBJECT_TARGET, FALSE);
if (!GetIsObjectValid(oDMTarget)) return;
for (nAppear = 0; nAppear < 14; nAppear++)//destroy all but skin/creature weaps
{
oStorage = GetItemInSlot(nAppear, oDMTarget);
DestroyObject(oStorage, 0.1);
}
oStorage = GetFirstItemInInventory(oDMTarget);
while (GetIsObjectValid(oStorage))
{
DestroyObject(oStorage, 0.1);
oStorage = GetNextItemInInventory(oDMTarget);
}
FloatingTextStringOnCreature(COLOR_RED+ITEM_DESTROY+GetName(oDMTarget)+ITEM_END+COLOR_END, oDMPC, FALSE);
}
else if (sDMText == "equip")
{
oDMTarget = VerifyTarget(oDMTarget, oDMPC, sUppercase, OBJECT_TARGET, FALSE);
if (!GetIsObjectValid(oDMTarget)) return;
for (nAppear = 0; nAppear < 14; nAppear++)//destroy all but skin/creature weaps
{
oStorage = GetItemInSlot(nAppear, oDMTarget);
DestroyObject(oStorage, 0.1);
}
FloatingTextStringOnCreature(COLOR_RED+ITEM_DESTROY+GetName(oDMTarget)+ITEM_END3+COLOR_END, oDMPC, FALSE);
}
else if (sDMText == "inv")
{
oDMTarget = VerifyTarget(oDMTarget, oDMPC, sUppercase, OBJECT_TARGET, FALSE, FALSE);
if (!GetIsObjectValid(oDMTarget)) return;
oStorage = GetFirstItemInInventory(oDMTarget);
while (GetIsObjectValid(oStorage))
{
DestroyObject(oStorage, 0.1);
oStorage = GetNextItemInInventory(oDMTarget);
}
FloatingTextStringOnCreature(COLOR_RED+ITEM_DESTROY+GetName(oDMTarget)+ITEM_END2+COLOR_END, oDMPC, FALSE);
}
else CommandRedirect(oDMPC, 17);
}
else FloatingTextStringOnCreature(COLOR_RED+NO_OTHER_DM_TARGET+COLOR_END, oDMPC, FALSE);
}
else CommandRedirect(oDMPC, 17);
}
else if (GetStringLeft(sDMText, 2) == "it") CommandRedirect(oDMPC, 17);
else CommandRedirect(oDMPC, 11);
break;
/*j*/ case 14:
if (sDMText == "jump")
{
lLoc = VerifyLocation(oDMPC, sUppercase);
if (!GetIsObjectValid(GetAreaFromLocation(lLoc))) return;
DeleteLocalLocation(oDMPC, "FKY_CHAT_LOCATION");
AssignCommand(oDMPC, JumpSafeToLocation(lLoc));
}
else if (GetStringLeft(sDMText, 2) == "ju") CommandRedirect(oDMPC, 18);
else CommandRedirect(oDMPC, 11);
break;
/*k*/ case 16:
if (sDMText == "kill")
{
oDMTarget = VerifyTarget(oDMTarget, oDMPC, sUppercase, OBJECT_TARGET, FALSE);
if (!GetIsObjectValid(oDMTarget)) return;
if ((!VerifyDMKey(oDMTarget)) && (!VerifyAdminKey(oDMTarget)))//this command may not be used on dms or admins
{
SetPlotFlag(oDMTarget, FALSE);
ApplyEffectToObject(0, SupernaturalEffect(EffectDeath()), oDMTarget);
SendMessageToPC(oDMPC, COLOR_RED + GetName(oDMTarget)+KILL1+COLOR_END);
}
else FloatingTextStringOnCreature(COLOR_RED+KILL2+COLOR_END, oDMPC, FALSE);
}
else if (GetStringLeft(sDMText, 2) == "ki") CommandRedirect(oDMPC, 15);
else CommandRedirect(oDMPC, 11);
break;
/*l*/ case 18:
if (sDMText == "listcommands") ListDMCommands(oDMPC);
else if (GetStringLeft(sDMText, 2) == "li") CommandRedirect(oDMPC, 26);
else if (ENABLE_LANGUAGES && (GetStringLeft(sDMText, 6) == "learn "))
{
sDMText = GetStringRight(sDMText, GetStringLength(sDMText) - 6);
nLang = GetLanguageNumber(sDMText);
if (nLang == -1) FloatingTextStringOnCreature(COLOR_RED+LANG1+COLOR_END, oDMPC, FALSE);
else
{
oDMTarget = VerifyTarget(oDMTarget, oDMPC, sUppercase, OBJECT_TARGET);
if (!GetIsObjectValid(oDMTarget)) return;
if (USING_NWNX_DB)
{
SetLocalInt(oDMTarget, "FKY_CHAT_LANG"+IntToString(nLang), TRUE);
SetPersistentInt(oDMTarget, "FKY_CHAT_LANG"+IntToString(nLang), TRUE);
}
else
{
oStorage = GetItemPossessedBy(oDMTarget, TAG_OF_LANGUAGE_STORAGE_OBJECT);
SetLocalInt(oDMTarget, "FKY_CHAT_LANG"+IntToString(nLang), TRUE);
SetLocalInt(oStorage, "FKY_CHAT_LANG"+IntToString(nLang), TRUE);
ExportSingleCharacter(oDMTarget);
}
FloatingTextStringOnCreature(COLOR_RED+LANG2+GetName(oDMTarget)+" "+GetNameOfLanguage(nLang)+"."+COLOR_END, oDMPC, FALSE);
}
}
else if (ENABLE_LANGUAGES && (GetStringLeft(sDMText, 2) == "le")) CommandRedirect(oDMPC, 26);
else CommandRedirect(oDMPC, 11);
break;
/*p*/ case 20:
if (GetStringLowerCase(GetStringLeft(sDMText, 4)) == "port")
{
sDMText = GetStringRight(sDMText, GetStringLength(sDMText) - 4);
if (GetStringLowerCase(GetStringLeft(sDMText, 5)) == "party")
{
sDMText = GetStringRight(sDMText, GetStringLength(sDMText) - 5);
nText = FindSubString("here hell jail leader there town", sDMText);
switch(nText) //0 5 10 15 22 28
{
case -1:
if (GetStringLowerCase(GetStringLeft(sDMText, 4)) == "way ")
{
sDMText = GetStringRight(sUppercase, GetStringLength(sUppercase) - 13);
oDMTarget = VerifyTarget(oDMTarget, oDMPC, sUppercase, OBJECT_TARGET);
if (!GetIsObjectValid(oDMTarget)) return;
if (((!VerifyDMKey(oDMTarget)) && (!VerifyAdminKey(oDMTarget))) || (oDMTarget == oDMPC))
{
lLoc = GetLocation(GetWaypointByTag(sDMText));
oStorage = GetFirstFactionMember(oDMTarget);
while (GetIsObjectValid(oStorage))
{
AssignCommand(oStorage, JumpSafeToLocation(lLoc));
oStorage = GetNextFactionMember(oDMTarget);
}
}
else FloatingTextStringOnCreature(COLOR_RED+NO_OTHER_DM_TARGET+COLOR_END, oDMPC, FALSE);
}
else CommandRedirect(oDMPC, 18);
break;
case 0:
oDMTarget = VerifyTarget(oDMTarget, oDMPC, sUppercase, OBJECT_TARGET);
if (!GetIsObjectValid(oDMTarget)) return;
if (((!VerifyDMKey(oDMTarget)) && (!VerifyAdminKey(oDMTarget))) || (oDMTarget == oDMPC))
{
oStorage = GetFirstFactionMember(oDMTarget);
while (GetIsObjectValid(oStorage))
{
if (oStorage != oDMPC) AssignCommand(oStorage, JumpSafeToObject(oDMPC));
oStorage = GetNextFactionMember(oDMTarget);
}
}
else FloatingTextStringOnCreature(COLOR_RED+NO_OTHER_DM_TARGET+COLOR_END, oDMPC, FALSE);
break;
case 5:
oDMTarget = VerifyTarget(oDMTarget, oDMPC, sUppercase, OBJECT_TARGET);
if (!GetIsObjectValid(oDMTarget)) return;
if (((!VerifyDMKey(oDMTarget)) && (!VerifyAdminKey(oDMTarget))) || (oDMTarget == oDMPC))
{
lLoc = GetLocation(GetWaypointByTag(LOCATION_HELL));
oStorage = GetFirstFactionMember(oDMTarget);
while (GetIsObjectValid(oStorage))
{
AssignCommand(oStorage, JumpSafeToLocation(lLoc));
oStorage = GetNextFactionMember(oDMTarget);
}
}
else FloatingTextStringOnCreature(COLOR_RED+NO_OTHER_DM_TARGET+COLOR_END, oDMPC, FALSE);
break;
case 10:
oDMTarget = VerifyTarget(oDMTarget, oDMPC, sUppercase, OBJECT_TARGET);
if (!GetIsObjectValid(oDMTarget)) return;
if (((!VerifyDMKey(oDMTarget)) && (!VerifyAdminKey(oDMTarget))) || (oDMTarget == oDMPC))
{
lLoc = GetLocation(GetWaypointByTag(LOCATION_JAIL));
oStorage = GetFirstFactionMember(oDMTarget);
while (GetIsObjectValid(oStorage))
{
AssignCommand(oStorage, JumpSafeToLocation(lLoc));
oStorage = GetNextFactionMember(oDMTarget);
}
}
else FloatingTextStringOnCreature(COLOR_RED+NO_OTHER_DM_TARGET+COLOR_END, oDMPC, FALSE);
break;
case 15:
oDMTarget = VerifyTarget(oDMTarget, oDMPC, sUppercase, OBJECT_TARGET);
if (!GetIsObjectValid(oDMTarget)) return;
if (((!VerifyDMKey(oDMTarget)) && (!VerifyAdminKey(oDMTarget))) || (oDMTarget == oDMPC))
{
oStorage = GetFirstFactionMember(oDMTarget);
while (GetIsObjectValid(oStorage))
{
if (GetFactionLeader(oDMTarget) != oStorage) AssignCommand(oStorage, JumpSafeToObject(GetFactionLeader(oDMTarget)));
oStorage = GetNextFactionMember(oDMTarget);
}
}
else FloatingTextStringOnCreature(COLOR_RED+NO_OTHER_DM_TARGET+COLOR_END, oDMPC, FALSE);
break;
case 22:
oDMTarget = VerifyTarget(oDMTarget, oDMPC, sUppercase, OBJECT_TARGET, FALSE, FALSE);
if (!GetIsObjectValid(oDMTarget)) return;
oStorage = GetFirstFactionMember(oDMPC);
while (GetIsObjectValid(oStorage))
{
if (oDMTarget != oStorage) AssignCommand(oStorage, JumpSafeToObject(oDMTarget));
oStorage = GetNextFactionMember(oDMPC);
}
break;
case 28:
oDMTarget = VerifyTarget(oDMTarget, oDMPC, sUppercase, OBJECT_TARGET);
if (!GetIsObjectValid(oDMTarget)) return;
if (((!VerifyDMKey(oDMTarget)) && (!VerifyAdminKey(oDMTarget))) || (oDMTarget == oDMPC))
{
lLoc = GetLocation(GetWaypointByTag(LOCATION_TOWN));
oStorage = GetFirstFactionMember(oDMTarget);
while (GetIsObjectValid(oStorage))
{
AssignCommand(oStorage, JumpSafeToLocation(lLoc));
oStorage = GetNextFactionMember(oDMTarget);
}
}
else FloatingTextStringOnCreature(COLOR_RED+NO_OTHER_DM_TARGET+COLOR_END, oDMPC, FALSE);
break;
}
}
else
{
oDMTarget = VerifyTarget(oDMTarget, oDMPC, sUppercase, OBJECT_TARGET, FALSE);
if (!GetIsObjectValid(oDMTarget)) return;
nText = FindSubString("here hell jail leader there town", sDMText);
switch(nText) //0 5 10 15 22 28
{
case -1:
if (GetStringLowerCase(GetStringLeft(sDMText, 4)) == "way ")
{
sDMText = GetStringRight(sUppercase, GetStringLength(sUppercase) - 8);
if (((!VerifyDMKey(oDMTarget)) && (!VerifyAdminKey(oDMTarget))) || (oDMTarget == oDMPC))
{
lLoc = GetLocation(GetWaypointByTag(sDMText));
AssignCommand(oDMTarget, JumpSafeToLocation(lLoc));
}
else FloatingTextStringOnCreature(COLOR_RED+NO_OTHER_DM_TARGET+COLOR_END, oDMPC, FALSE);
}
else CommandRedirect(oDMPC, 18);
break;
case 0:
if (((!VerifyDMKey(oDMTarget)) && (!VerifyAdminKey(oDMTarget))) || (oDMTarget == oDMPC)) AssignCommand(oDMTarget, JumpSafeToObject(oDMPC));
else FloatingTextStringOnCreature(COLOR_RED+NO_OTHER_DM_TARGET+COLOR_END, oDMPC, FALSE);
break;
case 5:
if (((!VerifyDMKey(oDMTarget)) && (!VerifyAdminKey(oDMTarget))) || (oDMTarget == oDMPC)) AssignCommand(oDMTarget, JumpSafeToLocation(GetLocation(GetWaypointByTag(LOCATION_HELL))));
else FloatingTextStringOnCreature(COLOR_RED+NO_OTHER_DM_TARGET+COLOR_END, oDMPC, FALSE);
break;
case 10:
if (((!VerifyDMKey(oDMTarget)) && (!VerifyAdminKey(oDMTarget))) || (oDMTarget == oDMPC)) AssignCommand(oDMTarget, JumpSafeToLocation(GetLocation(GetWaypointByTag(LOCATION_JAIL))));
else FloatingTextStringOnCreature(COLOR_RED+NO_OTHER_DM_TARGET+COLOR_END, oDMPC, FALSE);
break;
case 15:
if (((!VerifyDMKey(oDMTarget)) && (!VerifyAdminKey(oDMTarget))) || (oDMTarget == oDMPC)) AssignCommand(oDMTarget, JumpSafeToObject(GetFactionLeader(oDMTarget)));
else FloatingTextStringOnCreature(COLOR_RED+NO_OTHER_DM_TARGET+COLOR_END, oDMPC, FALSE);
break;
case 22: AssignCommand(oDMPC, JumpSafeToObject(oDMTarget)); break;
case 28:
if (((!VerifyDMKey(oDMTarget)) && (!VerifyAdminKey(oDMTarget))) || (oDMTarget == oDMPC)) AssignCommand(oDMTarget, JumpSafeToLocation(GetLocation(GetWaypointByTag(LOCATION_TOWN))));
else FloatingTextStringOnCreature(COLOR_RED+NO_OTHER_DM_TARGET+COLOR_END, oDMPC, FALSE);
break;
}
}
}
else if (GetStringLeft(sDMText, 2) == "po") CommandRedirect(oDMPC, 18);
else CommandRedirect(oDMPC, 11);
break;
/*r*/ case 22:
if (sDMText == "rez")
{
oDMTarget = VerifyTarget(oDMTarget, oDMPC, sUppercase, OBJECT_TARGET, FALSE);
if (!GetIsObjectValid(oDMTarget)) return;
if (((!VerifyDMKey(oDMTarget)) && (!VerifyAdminKey(oDMTarget))) || (oDMTarget == oDMPC))
{
ApplyEffectToObject(0, EffectResurrection(), oDMTarget);
ApplyEffectToObject(0, EffectHeal(GetMaxHitPoints(oDMTarget)- GetCurrentHitPoints(oDMTarget)), oDMTarget);
FloatingTextStringOnCreature(COLOR_RED + GetName(oDMTarget)+DMREZ+COLOR_END, oDMPC);
}
else FloatingTextStringOnCreature(COLOR_RED+NO_OTHER_DM_TARGET+COLOR_END, oDMPC, FALSE);
}
else if (sDMText == "reset_mod")
{
DelayCommand(1.0, SetLocalString(GetModule(), "NWNX!RESETPLUGIN!SHUTDOWN", "1"));//this line is the entire nwscriptside of the reset plugin
}
else if (GetStringLeft(sDMText, 4) == "rese") CommandRedirect(oDMPC, 20);
else if (sDMText == "rest")
{
oDMTarget = VerifyTarget(oDMTarget, oDMPC, sUppercase, OBJECT_TARGET, FALSE);
if (!GetIsObjectValid(oDMTarget)) return;
if ((!VerifyDMKey(oDMTarget)) && (!VerifyAdminKey(oDMTarget)) || (oDMTarget == oDMPC)) PRCForceRest(oDMTarget);
2022-10-07 14:20:31 -04:00
else FloatingTextStringOnCreature(COLOR_RED+NO_OTHER_DM_TARGET+COLOR_END, oDMPC, FALSE);
}
else if (GetStringLeft(sDMText, 3) == "res") CommandRedirect(oDMPC, 15);
else if (sDMText == "reveal")
{
oDMTarget = VerifyTarget(oDMTarget, oDMPC, sUppercase, OBJECT_TARGET);
if (!GetIsObjectValid(oDMTarget)) return;
ExploreAreaForPlayer(GetArea(oDMTarget), oDMTarget, TRUE);
FloatingTextStringOnCreature(COLOR_RED+EXPLORE1+COLOR_END, oDMPC, FALSE);
}
else if (GetStringLeft(sDMText, 2) == "re") CommandRedirect(oDMPC, 20);
else CommandRedirect(oDMPC, 11);
break;
/*s*/ case 24:
if ((GetStringLeft(sDMText, 3) == "set") && (GetSubString(sDMText, 3, 1) != "v") && (GetSubString(sDMText, 3, 1) != "t") && (GetSubString(sDMText, 3, 2) != "we"))
{
if (GetStringLeft(sDMText, 7) == "setcha ")
{
if (VAULTPATH_CHAT != "")//check if vault specified, command error otherwise
{
//check if admin only
if (LETO_FOR_ADMINS_ONLY && (!VerifyAdminKey(oDMPC))) FloatingTextStringOnCreature(COLOR_RED+ADMIN_ONLY+COLOR_END, oDMPC, FALSE);
else
{
oDMTarget = VerifyTarget(oDMTarget, oDMPC, sUppercase, OBJECT_TARGET);
if (!GetIsObjectValid(oDMTarget)) return;
//check for prior pending leto edits
if (GetLocalString(oDMTarget, "LetoScript") != "") FloatingTextStringOnCreature(COLOR_RED+PENDING_EDIT+COLOR_END, oDMPC, FALSE);
else if ((!VerifyDMKey(oDMTarget)) && (!VerifyAdminKey(oDMTarget)) || (oDMTarget == oDMPC))
{
sDMText = GetStringRight(sDMText, GetStringLength(sDMText) - 7);
nAppear = StringToInt(sDMText);
if (TestStringAgainstPattern("*n", sDMText))
{
if (nAppear < 3) nAppear = 3;
if (nAppear > 99) nAppear = 99;
ExportSingleCharacter(oDMTarget);//export needed to ensure this .bic is the most recently edited
sDMText = SetStat(ABILITY_CHARISMA, nAppear);
DelayCommand(3.0, ApplyLeto(sDMText, oDMTarget));//delay to give export a chance to finish writing to the file
FloatingTextStringOnCreature(COLOR_RED+LETO_CONFIRM+COLOR_END, oDMPC, FALSE);
FloatingTextStringOnCreature(COLOR_RED+LETO_CONFIRM+COLOR_END, oDMTarget, FALSE);
}
else FloatingTextStringOnCreature(COLOR_RED+REQUIRES_NUMBER+COLOR_END, oDMPC, FALSE);
}
else FloatingTextStringOnCreature(COLOR_RED+NO_OTHER_DM_TARGET+COLOR_END, oDMPC, FALSE);
}
}
else CommandRedirect(oDMPC, 11);
}
else if (GetStringLeft(sDMText, 7) == "setcon ")
{
if (VAULTPATH_CHAT != "")//check if vault specified, command error otherwise
{
//check if admin only
if (LETO_FOR_ADMINS_ONLY && (!VerifyAdminKey(oDMPC))) FloatingTextStringOnCreature(COLOR_RED+ADMIN_ONLY+COLOR_END, oDMPC, FALSE);
else
{
oDMTarget = VerifyTarget(oDMTarget, oDMPC, sUppercase, OBJECT_TARGET);
if (!GetIsObjectValid(oDMTarget)) return;
//check for prior pending leto edits
if (GetLocalString(oDMTarget, "LetoScript") != "") FloatingTextStringOnCreature(COLOR_RED+PENDING_EDIT+COLOR_END, oDMPC, FALSE);
else if ((!VerifyDMKey(oDMTarget)) && (!VerifyAdminKey(oDMTarget)) || (oDMTarget == oDMPC))
{
sDMText = GetStringRight(sDMText, GetStringLength(sDMText) - 7);
nAppear = StringToInt(sDMText);
if (TestStringAgainstPattern("*n", sDMText))
{
if (nAppear < 3) nAppear = 3;
if (nAppear > 99) nAppear = 99;
ExportSingleCharacter(oDMTarget);//export needed to ensure this .bic is the most recently edited
sDMText = SetStat(ABILITY_CONSTITUTION, nAppear);
DelayCommand(3.0, ApplyLeto(sDMText, oDMTarget));//delay to give export a chance to finish writing to the file
FloatingTextStringOnCreature(COLOR_RED+LETO_CONFIRM+COLOR_END, oDMPC, FALSE);
FloatingTextStringOnCreature(COLOR_RED+LETO_CONFIRM+COLOR_END, oDMTarget, FALSE);
}
else FloatingTextStringOnCreature(COLOR_RED+REQUIRES_NUMBER+COLOR_END, oDMPC, FALSE);
}
else FloatingTextStringOnCreature(COLOR_RED+NO_OTHER_DM_TARGET+COLOR_END, oDMPC, FALSE);
}
}
else CommandRedirect(oDMPC, 11);
}
else if (GetStringLeft(sDMText, 7) == "setdex ")
{
if (VAULTPATH_CHAT != "")//check if vault specified, command error otherwise
{
//check if admin only
if (LETO_FOR_ADMINS_ONLY && (!VerifyAdminKey(oDMPC))) FloatingTextStringOnCreature(COLOR_RED+ADMIN_ONLY+COLOR_END, oDMPC, FALSE);
else
{
oDMTarget = VerifyTarget(oDMTarget, oDMPC, sUppercase, OBJECT_TARGET);
if (!GetIsObjectValid(oDMTarget)) return;
//check for prior pending leto edits
if (GetLocalString(oDMTarget, "LetoScript") != "") FloatingTextStringOnCreature(COLOR_RED+PENDING_EDIT+COLOR_END, oDMPC, FALSE);
else if ((!VerifyDMKey(oDMTarget)) && (!VerifyAdminKey(oDMTarget)) || (oDMTarget == oDMPC))
{
sDMText = GetStringRight(sDMText, GetStringLength(sDMText) - 7);
nAppear = StringToInt(sDMText);
if (TestStringAgainstPattern("*n", sDMText))
{
if (nAppear < 3) nAppear = 3;
if (nAppear > 99) nAppear = 99;
ExportSingleCharacter(oDMTarget);//export needed to ensure this .bic is the most recently edited
sDMText = SetStat(ABILITY_DEXTERITY, nAppear);
DelayCommand(3.0, ApplyLeto(sDMText, oDMTarget));//delay to give export a chance to finish writing to the file
FloatingTextStringOnCreature(COLOR_RED+LETO_CONFIRM+COLOR_END, oDMPC, FALSE);
FloatingTextStringOnCreature(COLOR_RED+LETO_CONFIRM+COLOR_END, oDMTarget, FALSE);
}
else FloatingTextStringOnCreature(COLOR_RED+REQUIRES_NUMBER+COLOR_END, oDMPC, FALSE);
}
else FloatingTextStringOnCreature(COLOR_RED+NO_OTHER_DM_TARGET+COLOR_END, oDMPC, FALSE);
}
}
else CommandRedirect(oDMPC, 11);
}
else if (GetStringLeft(sDMText, 7) == "setint ")
{
if (VAULTPATH_CHAT != "")//check if vault specified, command error otherwise
{
//check if admin only
if (LETO_FOR_ADMINS_ONLY && (!VerifyAdminKey(oDMPC))) FloatingTextStringOnCreature(COLOR_RED+ADMIN_ONLY+COLOR_END, oDMPC, FALSE);
else
{
oDMTarget = VerifyTarget(oDMTarget, oDMPC, sUppercase, OBJECT_TARGET);
if (!GetIsObjectValid(oDMTarget)) return;
//check for prior pending leto edits
if (GetLocalString(oDMTarget, "LetoScript") != "") FloatingTextStringOnCreature(COLOR_RED+PENDING_EDIT+COLOR_END, oDMPC, FALSE);
else if ((!VerifyDMKey(oDMTarget)) && (!VerifyAdminKey(oDMTarget)) || (oDMTarget == oDMPC))
{
sDMText = GetStringRight(sDMText, GetStringLength(sDMText) - 7);
nAppear = StringToInt(sDMText);
if (TestStringAgainstPattern("*n", sDMText))
{
if (nAppear < 3) nAppear = 3;
if (nAppear > 99) nAppear = 99;
ExportSingleCharacter(oDMTarget);//export needed to ensure this .bic is the most recently edited
sDMText = SetStat(ABILITY_INTELLIGENCE, nAppear);
DelayCommand(3.0, ApplyLeto(sDMText, oDMTarget));//delay to give export a chance to finish writing to the file
FloatingTextStringOnCreature(COLOR_RED+LETO_CONFIRM+COLOR_END, oDMPC, FALSE);
FloatingTextStringOnCreature(COLOR_RED+LETO_CONFIRM+COLOR_END, oDMTarget, FALSE);
}
else FloatingTextStringOnCreature(COLOR_RED+REQUIRES_NUMBER+COLOR_END, oDMPC, FALSE);
}
else FloatingTextStringOnCreature(COLOR_RED+NO_OTHER_DM_TARGET+COLOR_END, oDMPC, FALSE);
}
}
else CommandRedirect(oDMPC, 11);
}
else if (GetStringLeft(sDMText, 7) == "setstr ")
{
if (VAULTPATH_CHAT != "")//check if vault specified, command error otherwise
{
//check if admin only
if (LETO_FOR_ADMINS_ONLY && (!VerifyAdminKey(oDMPC))) FloatingTextStringOnCreature(COLOR_RED+ADMIN_ONLY+COLOR_END, oDMPC, FALSE);
else
{
oDMTarget = VerifyTarget(oDMTarget, oDMPC, sUppercase, OBJECT_TARGET);
if (!GetIsObjectValid(oDMTarget)) return;
//check for prior pending leto edits
if (GetLocalString(oDMTarget, "LetoScript") != "") FloatingTextStringOnCreature(COLOR_RED+PENDING_EDIT+COLOR_END, oDMPC, FALSE);
else if ((!VerifyDMKey(oDMTarget)) && (!VerifyAdminKey(oDMTarget)) || (oDMTarget == oDMPC))
{
sDMText = GetStringRight(sDMText, GetStringLength(sDMText) - 7);
nAppear = StringToInt(sDMText);
if (TestStringAgainstPattern("*n", sDMText))
{
if (nAppear < 3) nAppear = 3;
if (nAppear > 99) nAppear = 99;
ExportSingleCharacter(oDMTarget);//export needed to ensure this .bic is the most recently edited
sDMText = SetStat(ABILITY_STRENGTH, nAppear);
DelayCommand(3.0, ApplyLeto(sDMText, oDMTarget));//delay to give export a chance to finish writing to the file
FloatingTextStringOnCreature(COLOR_RED+LETO_CONFIRM+COLOR_END, oDMPC, FALSE);
FloatingTextStringOnCreature(COLOR_RED+LETO_CONFIRM+COLOR_END, oDMTarget, FALSE);
}
else FloatingTextStringOnCreature(COLOR_RED+REQUIRES_NUMBER+COLOR_END, oDMPC, FALSE);
}
else FloatingTextStringOnCreature(COLOR_RED+NO_OTHER_DM_TARGET+COLOR_END, oDMPC, FALSE);
}
}
else CommandRedirect(oDMPC, 11);
}
else if (GetStringLeft(sDMText, 7) == "setwis ")
{
if (VAULTPATH_CHAT != "")//check if vault specified, command error otherwise
{
//check if admin only
if (LETO_FOR_ADMINS_ONLY && (!VerifyAdminKey(oDMPC))) FloatingTextStringOnCreature(COLOR_RED+ADMIN_ONLY+COLOR_END, oDMPC, FALSE);
else
{
oDMTarget = VerifyTarget(oDMTarget, oDMPC, sUppercase, OBJECT_TARGET);
if (!GetIsObjectValid(oDMTarget)) return;
//check for prior pending leto edits
if (GetLocalString(oDMTarget, "LetoScript") != "") FloatingTextStringOnCreature(COLOR_RED+PENDING_EDIT+COLOR_END, oDMPC, FALSE);
else if ((!VerifyDMKey(oDMTarget)) && (!VerifyAdminKey(oDMTarget)) || (oDMTarget == oDMPC))
{
sDMText = GetStringRight(sDMText, GetStringLength(sDMText) - 7);
nAppear = StringToInt(sDMText);
if (TestStringAgainstPattern("*n", sDMText))
{
if (nAppear < 3) nAppear = 3;
if (nAppear > 99) nAppear = 99;
ExportSingleCharacter(oDMTarget);//export needed to ensure this .bic is the most recently edited
sDMText = SetStat(ABILITY_WISDOM, nAppear);
DelayCommand(3.0, ApplyLeto(sDMText, oDMTarget));//delay to give export a chance to finish writing to the file
FloatingTextStringOnCreature(COLOR_RED+LETO_CONFIRM+COLOR_END, oDMPC, FALSE);
FloatingTextStringOnCreature(COLOR_RED+LETO_CONFIRM+COLOR_END, oDMTarget, FALSE);
}
else FloatingTextStringOnCreature(COLOR_RED+REQUIRES_NUMBER+COLOR_END, oDMPC, FALSE);
}
else FloatingTextStringOnCreature(COLOR_RED+NO_OTHER_DM_TARGET+COLOR_END, oDMPC, FALSE);
}
}
else CommandRedirect(oDMPC, 11);
}
else if (GetStringLeft(sDMText, 8) == "setfort ")
{
if (VAULTPATH_CHAT != "")//check if vault specified, command error otherwise
{
//check if admin only
if (LETO_FOR_ADMINS_ONLY && (!VerifyAdminKey(oDMPC))) FloatingTextStringOnCreature(COLOR_RED+ADMIN_ONLY+COLOR_END, oDMPC, FALSE);
else
{
oDMTarget = VerifyTarget(oDMTarget, oDMPC, sUppercase, OBJECT_TARGET);
if (!GetIsObjectValid(oDMTarget)) return;
//check for prior pending leto edits
if (GetLocalString(oDMTarget, "LetoScript") != "") FloatingTextStringOnCreature(COLOR_RED+PENDING_EDIT+COLOR_END, oDMPC, FALSE);
else if ((!VerifyDMKey(oDMTarget)) && (!VerifyAdminKey(oDMTarget)) || (oDMTarget == oDMPC))
{
sDMText = GetStringRight(sDMText, GetStringLength(sDMText) - 8);
nAppear = StringToInt(sDMText);
if (TestStringAgainstPattern("*n", sDMText))
{
ExportSingleCharacter(oDMTarget);//export needed to ensure this .bic is the most recently edited
sDMText = SetSave(SAVING_THROW_FORT, nAppear);
DelayCommand(3.0, ApplyLeto(sDMText, oDMTarget));//delay to give export a chance to finish writing to the file
FloatingTextStringOnCreature(COLOR_RED+LETO_CONFIRM+COLOR_END, oDMPC, FALSE);
FloatingTextStringOnCreature(COLOR_RED+LETO_CONFIRM+COLOR_END, oDMTarget, FALSE);
}
else FloatingTextStringOnCreature(COLOR_RED+REQUIRES_NUMBER+COLOR_END, oDMPC, FALSE);
}
else FloatingTextStringOnCreature(COLOR_RED+NO_OTHER_DM_TARGET+COLOR_END, oDMPC, FALSE);
}
}
else CommandRedirect(oDMPC, 11);
}
else if (GetStringLeft(sDMText, 10) == "setreflex ")
{
if (VAULTPATH_CHAT != "")//check if vault specified, command error otherwise
{
//check if admin only
if (LETO_FOR_ADMINS_ONLY && (!VerifyAdminKey(oDMPC))) FloatingTextStringOnCreature(COLOR_RED+ADMIN_ONLY+COLOR_END, oDMPC, FALSE);
else
{
oDMTarget = VerifyTarget(oDMTarget, oDMPC, sUppercase, OBJECT_TARGET);
if (!GetIsObjectValid(oDMTarget)) return;
//check for prior pending leto edits
if (GetLocalString(oDMTarget, "LetoScript") != "") FloatingTextStringOnCreature(COLOR_RED+PENDING_EDIT+COLOR_END, oDMPC, FALSE);
else if ((!VerifyDMKey(oDMTarget)) && (!VerifyAdminKey(oDMTarget)) || (oDMTarget == oDMPC))
{
sDMText = GetStringRight(sDMText, GetStringLength(sDMText) - 10);
nAppear = StringToInt(sDMText);
if (TestStringAgainstPattern("*n", sDMText))
{
ExportSingleCharacter(oDMTarget);//export needed to ensure this .bic is the most recently edited
sDMText = SetSave(SAVING_THROW_REFLEX, nAppear);
DelayCommand(3.0, ApplyLeto(sDMText, oDMTarget));//delay to give export a chance to finish writing to the file
FloatingTextStringOnCreature(COLOR_RED+LETO_CONFIRM+COLOR_END, oDMPC, FALSE);
FloatingTextStringOnCreature(COLOR_RED+LETO_CONFIRM+COLOR_END, oDMTarget, FALSE);
}
else FloatingTextStringOnCreature(COLOR_RED+REQUIRES_NUMBER+COLOR_END, oDMPC, FALSE);
}
else FloatingTextStringOnCreature(COLOR_RED+NO_OTHER_DM_TARGET+COLOR_END, oDMPC, FALSE);
}
}
else CommandRedirect(oDMPC, 11);
}
else if (GetStringLeft(sDMText, 8) == "setwill ")
{
if (VAULTPATH_CHAT != "")//check if vault specified, command error otherwise
{
//check if admin only
if (LETO_FOR_ADMINS_ONLY && (!VerifyAdminKey(oDMPC))) FloatingTextStringOnCreature(COLOR_RED+ADMIN_ONLY+COLOR_END, oDMPC, FALSE);
else
{
oDMTarget = VerifyTarget(oDMTarget, oDMPC, sUppercase, OBJECT_TARGET);
if (!GetIsObjectValid(oDMTarget)) return;
//check for prior pending leto edits
if (GetLocalString(oDMTarget, "LetoScript") != "") FloatingTextStringOnCreature(COLOR_RED+PENDING_EDIT+COLOR_END, oDMPC, FALSE);
else if ((!VerifyDMKey(oDMTarget)) && (!VerifyAdminKey(oDMTarget)) || (oDMTarget == oDMPC))
{
sDMText = GetStringRight(sDMText, GetStringLength(sDMText) - 8);
nAppear = StringToInt(sDMText);
if (TestStringAgainstPattern("*n", sDMText))
{
ExportSingleCharacter(oDMTarget);//export needed to ensure this .bic is the most recently edited
sDMText = SetSave(SAVING_THROW_WILL, nAppear);
DelayCommand(3.0, ApplyLeto(sDMText, oDMTarget));//delay to give export a chance to finish writing to the file
FloatingTextStringOnCreature(COLOR_RED+LETO_CONFIRM+COLOR_END, oDMPC, FALSE);
FloatingTextStringOnCreature(COLOR_RED+LETO_CONFIRM+COLOR_END, oDMTarget, FALSE);
}
else FloatingTextStringOnCreature(COLOR_RED+REQUIRES_NUMBER+COLOR_END, oDMPC, FALSE);
}
else FloatingTextStringOnCreature(COLOR_RED+NO_OTHER_DM_TARGET+COLOR_END, oDMPC, FALSE);
}
}
else CommandRedirect(oDMPC, 11);
}
else CommandRedirect(oDMPC, 13);
}
else if (GetStringLeft(sDMText, 8) == "settime ")
{
sDMText = GetStringRight(sDMText, GetStringLength(sDMText) - 8);
if (TestStringAgainstPattern("*n", sDMText))
{
SetTime(StringToInt(sDMText), 0, 0, 0);
FloatingTextStringOnCreature(COLOR_RED+TIME_SET+COLOR_END, oDMPC);
}
else FloatingTextStringOnCreature(COLOR_RED+REQUIRES_NUMBER+COLOR_END, oDMPC);
}
else if (GetStringLeft(sDMText, 4) == "sett") CommandRedirect(oDMPC, 21);
else if (GetStringLeft(sDMText, 6) == "setvar")
{
sDMText = GetStringRight(sDMText, GetStringLength(sDMText) - 6);
sStore = GetStringRight(sUppercase, GetStringLength(sUppercase) - 6);
if (GetStringLeft(sDMText, 4) == "int ")
{
sDMText = GetStringRight(sDMText, GetStringLength(sDMText) - 4);
sStore = GetStringRight(sStore, GetStringLength(sStore) - 4); //
nLang = FindSubString(sDMText, " ");
sKey = GetStringLeft(sStore, nLang);//name of variable //
sDMText = GetStringRight(sDMText, GetStringLength(sDMText) - (nLang + 1));
sStore = GetStringRight(sStore, GetStringLength(sStore) - (nLang + 1)); //
if (TestStringAgainstPattern("*n", sDMText))
{
oDMTarget = VerifyTarget(oDMTarget, oDMPC, sUppercase, AREA_TARGET_OK);
if (!GetIsObjectValid(oDMTarget)) return;
SetLocalInt(oDMTarget, sKey, StringToInt(sStore)); //
FloatingTextStringOnCreature(COLOR_GREEN+VARIABLE_SET+COLOR_END, oDMPC);
}
else FloatingTextStringOnCreature(COLOR_RED+REQUIRES_NUMBER+COLOR_END, oDMPC);
}
else if (GetStringLeft(sDMText, 6) == "float ")
{
sDMText = GetStringRight(sDMText, GetStringLength(sDMText) - 6);
sStore = GetStringRight(sStore, GetStringLength(sStore) - 6);
nLang = FindSubString(sDMText, " ");
sKey = GetStringLeft(sStore, nLang);//name of variable
sDMText = GetStringRight(sDMText, GetStringLength(sDMText) - (nLang + 1));
sStore = GetStringRight(sStore, GetStringLength(sStore) - (nLang + 1));
if (TestStringAgainstPattern("*n.*n", sDMText))
{
oDMTarget = VerifyTarget(oDMTarget, oDMPC, sUppercase, AREA_TARGET_OK);
if (!GetIsObjectValid(oDMTarget)) return;
SetLocalFloat(oDMTarget, sKey, StringToFloat(sStore));
FloatingTextStringOnCreature(COLOR_GREEN+VARIABLE_SET+COLOR_END, oDMPC);
}
else FloatingTextStringOnCreature(COLOR_RED+REQUIRES_NUMBER+COLOR_END, oDMPC);
}
else if (GetStringLeft(sDMText, 7) == "string ")
{
sDMText = GetStringRight(sDMText, GetStringLength(sDMText) - 7);
sStore = GetStringRight(sStore, GetStringLength(sStore) - 7);
nLang = FindSubString(sDMText, " ");
sKey = GetStringLeft(sStore, nLang);//name of variable
sDMText = GetStringRight(sDMText, GetStringLength(sDMText) - (nLang + 1));
sStore = GetStringRight(sStore, GetStringLength(sStore) - (nLang + 1));
oDMTarget = VerifyTarget(oDMTarget, oDMPC, sUppercase, AREA_TARGET_OK);
if (!GetIsObjectValid(oDMTarget)) return;
SetLocalString(oDMTarget, sKey, sStore);
FloatingTextStringOnCreature(COLOR_GREEN+VARIABLE_SET+COLOR_END, oDMPC);
}
else if (GetStringLeft(sDMText, 3) == "mod")
{
sDMText = GetStringRight(sDMText, GetStringLength(sDMText) - 3);
sStore = GetStringRight(sStore, GetStringLength(sStore) - 3);
if (GetStringLeft(sDMText, 4) == "int ")
{
sDMText = GetStringRight(sDMText, GetStringLength(sDMText) - 4);
sStore = GetStringRight(sStore, GetStringLength(sStore) - 4);
nLang = FindSubString(sDMText, " ");
sKey = GetStringLeft(sStore, nLang);//name of variable
sDMText = GetStringRight(sDMText, GetStringLength(sDMText) - (nLang + 1));
sStore = GetStringRight(sStore, GetStringLength(sStore) - (nLang + 1));
if (TestStringAgainstPattern("*n", sDMText))
{
SetLocalInt(GetModule(), sKey, StringToInt(sStore));
FloatingTextStringOnCreature(COLOR_GREEN+VARIABLE_SET+COLOR_END, oDMPC);
}
else FloatingTextStringOnCreature(COLOR_RED+REQUIRES_NUMBER+COLOR_END, oDMPC);
}
else if (GetStringLeft(sDMText, 6) == "float ")
{
sDMText = GetStringRight(sDMText, GetStringLength(sDMText) - 6);
sStore = GetStringRight(sStore, GetStringLength(sStore) - 6);
nLang = FindSubString(sDMText, " ");
sKey = GetStringLeft(sStore, nLang);//name of variable
sDMText = GetStringRight(sDMText, GetStringLength(sDMText) - (nLang + 1));
sStore = GetStringRight(sStore, GetStringLength(sStore) - (nLang + 1));
if (TestStringAgainstPattern("*n.*n", sDMText))
{
SetLocalFloat(GetModule(), sKey, StringToFloat(sStore));
FloatingTextStringOnCreature(COLOR_GREEN+VARIABLE_SET+COLOR_END, oDMPC);
}
else FloatingTextStringOnCreature(COLOR_RED+REQUIRES_NUMBER+COLOR_END, oDMPC);
}
else if (GetStringLeft(sDMText, 7) == "string ")
{
sDMText = GetStringRight(sDMText, GetStringLength(sDMText) - 7);
sStore = GetStringRight(sStore, GetStringLength(sStore) - 7);
nLang = FindSubString(sDMText, " ");
sKey = GetStringLeft(sStore, nLang);//name of variable
sDMText = GetStringRight(sDMText, GetStringLength(sDMText) - (nLang + 1));
sStore = GetStringRight(sStore, GetStringLength(sStore) - (nLang + 1));
SetLocalString(GetModule(), sKey, sStore);
FloatingTextStringOnCreature(COLOR_GREEN+VARIABLE_SET+COLOR_END, oDMPC);
}
else CommandRedirect(oDMPC, 22);
}
else CommandRedirect(oDMPC, 22);
}
else if (GetStringLeft(sDMText, 4) == "setv") CommandRedirect(oDMPC, 22);
else if (GetStringLeft(sDMText, 11) == "setweather_")
{
sDMText = GetStringRight(sDMText, GetStringLength(sDMText) - 11);
if (GetStringLeft(sDMText, 2) == "a_")
{
oDMTarget = VerifyTarget(oDMTarget, oDMPC, sUppercase, AREA_TARGET_OK);
if (!GetIsObjectValid(oDMTarget)) return;
oStorage = GetArea(oDMTarget);
}
else if (GetStringLeft(sDMText, 2) == "m_") oStorage = GetModule();
else
{
CommandRedirect(oDMPC, 21);
return;
}
sDMText = GetStringRight(sDMText, GetStringLength(sDMText) - 2);
if (sDMText == "clear")
{
SetWeather(oStorage, WEATHER_CLEAR);
FloatingTextStringOnCreature(COLOR_RED+WEATHER_CHANGE+COLOR_END, oDMPC, FALSE);
}
else if (sDMText == "rain")
{
SetWeather(oStorage, WEATHER_RAIN);
FloatingTextStringOnCreature(COLOR_RED+WEATHER_CHANGE+COLOR_END, oDMPC, FALSE);
}
else if (sDMText == "reset")
{
SetWeather(oStorage, WEATHER_USE_AREA_SETTINGS);
FloatingTextStringOnCreature(COLOR_RED+WEATHER_CHANGE+COLOR_END, oDMPC, FALSE);
}
else if (sDMText == "snow")
{
SetWeather(oStorage, WEATHER_SNOW);
FloatingTextStringOnCreature(COLOR_RED+WEATHER_CHANGE+COLOR_END, oDMPC, FALSE);
}
else CommandRedirect(oDMPC, 21);
}
else if (GetStringLeft(sDMText, 4) == "setw") CommandRedirect(oDMPC, 21);
else if (GetStringLeft(sDMText, 6) == "spawn ")
{
sDMText = GetStringRight(sDMText, GetStringLength(sDMText) - 6);
nLang = FindSubString(sDMText, " ");
if (nLang == -1)
{
lLoc = VerifyLocation(oDMPC, sUppercase);
if (!GetIsObjectValid(GetAreaFromLocation(lLoc))) return;
oStorage = CreateObject(OBJECT_TYPE_CREATURE, sDMText, lLoc);
if (GetIsObjectValid(oStorage)) FloatingTextStringOnCreature(COLOR_GREEN+SPAWNED+COLOR_END, oDMPC);
else FloatingTextStringOnCreature(COLOR_RED+NO_CRITTER_RESREF+COLOR_END, oDMPC);
DeleteLocalLocation(oDMPC, "FKY_CHAT_LOCATION");
}
else FloatingTextStringOnCreature(COLOR_RED+NO_RESREF_SPACE+COLOR_END, oDMPC);
}
else if (GetStringLeft(sDMText, 2) == "sp") CommandRedirect(oDMPC, 23);
else if ((GetStringLeft(sDMText, 4) == "sql ") && VerifyAdminKey(oDMPC))
{
sDMText = GetStringRight(sDMText, GetStringLength(sDMText) - 4);
sUppercase = GetStringRight(sUppercase, GetStringLength(sUppercase) - 4);
sStore = sUppercase;//store the string to execute later
if (GetStringLeft(sDMText, 7) == "select ")//if a select query we must parse the columns queried
{
if (GetStringLeft(sDMText, 8) == "select *")
{
FloatingTextStringOnCreature(COLOR_RED+NO_STAR+COLOR_END, oDMPC, FALSE);
return;
}
else if (GetStringRight(sDMText, 1) != ";")
{
FloatingTextStringOnCreature(COLOR_RED+REQ_SEMI+COLOR_END, oDMPC, FALSE);
return;
}
sDMText = GetStringRight(sDMText, GetStringLength(sDMText) - 7);
sUppercase = GetStringRight(sUppercase, GetStringLength(sUppercase) - 7);
nText = FindSubString(sDMText, " from ");//string before from
if (nText == -1) FloatingTextStringOnCreature(COLOR_RED+SELECT_NO_FROM+COLOR_END, oDMPC, FALSE);
else
{
sDMText = GetStringLeft(sDMText, nText);//text before the from
sUppercase = GetStringLeft(sUppercase, nText);//text before the from
nText = FindSubString(sUppercase, ",");//first comma
nLang = 0;
sKey = "";
while (nText != -1)
{
nLang ++;//count the commas
sSort = GetStringLeft(sUppercase, nText);//get the text to the left of the comma
while (GetStringLeft(sSort, 1) == " ") sSort = GetStringRight(sSort, GetStringLength(sSort) - 1);//parse out left spaces
while (GetStringRight(sSort, 1) == " ") sSort = GetStringLeft(sSort, GetStringLength(sSort) - 1);//parse out right spaces
if (GetStringLength(sSort) < 1)
{
FloatingTextStringOnCreature(COLOR_RED+NO_BLANK_COLUMN+COLOR_END, oDMPC, FALSE);
nLang = 1;
while (GetLocalString(oDMPC, "FKY_SQL_COLUMN_" + IntToString(nLang)) != "")
{
DeleteLocalString(oDMPC, "FKY_SQL_COLUMN_" + IntToString(nLang));
nLang++;
}
return;
}
//else sKey += sSort + "<22>" + IntToString(nLang);//store the column names without spaces, with numbers for indexed retrieval
else SetLocalString(oDMPC, "FKY_SQL_COLUMN_" + IntToString(nLang), sSort);
sUppercase = GetStringRight(sUppercase, GetStringLength(sUppercase) - (nText+1));
nText = FindSubString(sUppercase, ",");//next comma
}
if (!nLang)//no commas, single column
{
sSort = sUppercase;//get the text to the left of the from
while (GetStringLeft(sSort, 1) == " ") sSort = GetStringRight(sSort, GetStringLength(sSort) - 1);//parse out left spaces
while (GetStringRight(sSort, 1) == " ") sSort = GetStringLeft(sSort, GetStringLength(sSort) - 1);//parse out right spaces
if (GetStringLength(sSort) < 1)
{
FloatingTextStringOnCreature(COLOR_RED+NO_BLANK_COLUMN+COLOR_END, oDMPC, FALSE);
return;
}
SQLExecDirect(sStore);
sReturn = "";
while(SQLFetch() != SQL_ERROR)
{
sData = SQLGetData(1);
sReturn += COLOR_YELLOW + sSort + ": " + COLOR_END + COLOR_WHITE + sData + COLOR_END + NEWLINE;
nLang ++;
}
sReturn += IntToString(nLang) + SQL_ROWS;
SendMessageToPC(oDMPC, sReturn);
}
else
{
nLang ++;//count the commas
sSort = sUppercase;//get last column
while (GetStringLeft(sSort, 1) == " ") sSort = GetStringRight(sSort, GetStringLength(sSort) - 1);//parse out left spaces
while (GetStringRight(sSort, 1) == " ") sSort = GetStringLeft(sSort, GetStringLength(sSort) - 1);//parse out right spaces
if (GetStringLength(sSort) < 1)
{
FloatingTextStringOnCreature(COLOR_RED+NO_BLANK_COLUMN+COLOR_END, oDMPC, FALSE);
nLang = 1;
while (GetLocalString(oDMPC, "FKY_SQL_COLUMN_" + IntToString(nLang)) != "")
{
DeleteLocalString(oDMPC, "FKY_SQL_COLUMN_" + IntToString(nLang));
nLang++;
}
return;
}
//else sKey += sSort + "<22>" + IntToString(nLang);//store the column names without spaces, with numbers for indexed retrieval
else SetLocalString(oDMPC, "FKY_SQL_COLUMN_" + IntToString(nLang), sSort);
//output the return
SQLExecDirect(sStore);
sReturn = "";
nAppear = 1;
nRowCount = 0;
while(SQLFetch() != SQL_ERROR)
{
sRow = "";
nColor = 0;
for(nAppear = 1; nAppear <= nLang; nAppear++)//output the results on this row
{
nColor++;
if (nColor > 6) nColor = 1;
sData = SQLGetData(nAppear);
if (nAppear == nLang) sRow += GetColorStringForColumn(nColor) + GetLocalString(oDMPC, "FKY_SQL_COLUMN_" + IntToString(nAppear)) + ": " + COLOR_END + COLOR_WHITE + sData + ";" + COLOR_END + NEWLINE; //last column
else sRow += GetColorStringForColumn(nColor) + GetLocalString(oDMPC, "FKY_SQL_COLUMN_" + IntToString(nAppear)) + ": " + COLOR_END + COLOR_WHITE + sData + ", " + COLOR_END;//others
}
sReturn += sRow;
nRowCount ++;
}
sReturn += IntToString(nRowCount) + SQL_ROWS;
SendMessageToPC(oDMPC, sReturn);
nLang = 1;
while (GetLocalString(oDMPC, "FKY_SQL_COLUMN_" + IntToString(nLang)) != "")
{
DeleteLocalString(oDMPC, "FKY_SQL_COLUMN_" + IntToString(nLang));
nLang++;
}
}
}
}
else
{
SQLExecDirect(sStore);//if not a SELECT query then just execute
FloatingTextStringOnCreature(COLOR_RED+SQL_SENT+COLOR_END, oDMPC, FALSE);
}
}
else if (GetStringLeft(sDMText, 2) == "sq") CommandRedirect(oDMPC, 20);
else if (sDMText == "stealth")
{
if (GetLocalInt(oDMPC, "FKY_CHAT_DMSTEALTH"))
{
DeleteLocalInt(oDMPC, "FKY_CHAT_DMSTEALTH");
SendMessageToPC(oDMPC, COLOR_RED+DMSTEALTH4+COLOR_END);
}
else
{
SetLocalInt(oDMPC, "FKY_CHAT_DMSTEALTH", TRUE);
SendMessageToPC(oDMPC, COLOR_RED+DMSTEALTH3+COLOR_END);
}
}
else if (GetStringLeft(sDMText, 2) == "st") CommandRedirect(oDMPC, 26);
else CommandRedirect(oDMPC, 11);
break;
/*t*/ case 26:
if (GetStringLeft(sDMText, 4) == "take")
{
if (GetStringLeft(sDMText, 7) == "takexp ")
{
sDMText = GetStringRight(sDMText, GetStringLength(sDMText) - 7);
if (TestStringAgainstPattern("*n", sDMText))
{
nAppear = GetXP(oDMTarget)-StringToInt(sDMText);
if (nAppear < 0) nAppear = 0;
oDMTarget = VerifyTarget(oDMTarget, oDMPC, sUppercase, OBJECT_TARGET);
if (!GetIsObjectValid(oDMTarget)) return;
SetXP(oDMTarget, nAppear);
SendMessageToPC(oDMPC, COLOR_RED+XP8+ IntToString(StringToInt(sDMText))+XP9+GetName(oDMTarget) + "!"+COLOR_END);
}
else FloatingTextStringOnCreature(COLOR_RED+REQUIRES_NUMBER+COLOR_END, oDMPC);
}
else if (GetStringLeft(sDMText, 10) == "takelevel ")
{
sDMText = GetStringRight(sDMText, GetStringLength(sDMText) - 10);
oDMTarget = VerifyTarget(oDMTarget, oDMPC, sUppercase, OBJECT_TARGET);
if (!GetIsObjectValid(oDMTarget)) return;
if (TestStringAgainstPattern("*n", sDMText)) TakeLevel(oDMTarget, oDMPC, StringToInt(sDMText));
else FloatingTextStringOnCreature(COLOR_RED+REQUIRES_NUMBER+COLOR_END, oDMPC);
}
else if (GetStringLeft(sDMText, 12) == "takepartyxp ")
{
sDMText = GetStringRight(sDMText, GetStringLength(sDMText) - 12);
if (TestStringAgainstPattern("*n", sDMText))
{
oDMTarget = VerifyTarget(oDMTarget, oDMPC, sUppercase, OBJECT_TARGET);
if (!GetIsObjectValid(oDMTarget)) return;
oStorage = GetFirstFactionMember(oDMTarget);
while (GetIsObjectValid(oStorage))
{
nAppear = GetXP(oStorage)-StringToInt(sDMText);
if (nAppear < 0) nAppear = 0;
SetXP(oStorage, nAppear);
oStorage = GetNextFactionMember(oDMTarget);
}
SendMessageToPC(oDMPC, COLOR_RED+XP8+ IntToString(StringToInt(sDMText))+XP9+GetName(oDMTarget) + XP11+COLOR_END);
}
else FloatingTextStringOnCreature(COLOR_RED+REQUIRES_NUMBER+COLOR_END, oDMPC);
}
else if (GetStringLeft(sDMText, 15) == "takepartylevel ")
{
sDMText = GetStringRight(sDMText, GetStringLength(sDMText) - 15);
if (TestStringAgainstPattern("*n", sDMText))
{
oDMTarget = VerifyTarget(oDMTarget, oDMPC, sUppercase, OBJECT_TARGET);
if (!GetIsObjectValid(oDMTarget)) return;
oStorage = GetFirstFactionMember(oDMTarget);
nColor = StringToInt(sDMText);
if (nColor == 1) sStore = XP14;
else sStore = XP15;
while (GetIsObjectValid(oStorage))
{
TakeLevel(oDMTarget, oDMPC, nColor, FALSE);//function has built-in message to each, FALSE stops it
oStorage = GetNextFactionMember(oDMTarget);
}
SendMessageToPC(oDMPC, COLOR_RED+XP8+ IntToString(StringToInt(sDMText))+sStore+GetName(oDMTarget) + XP11+COLOR_END);
}
else FloatingTextStringOnCreature(COLOR_RED+REQUIRES_NUMBER+COLOR_END, oDMPC);
}
else CommandRedirect(oDMPC, 19);
}
else if (GetStringLeft(sDMText, 2) == "ta") CommandRedirect(oDMPC, 19);
else CommandRedirect(oDMPC, 11);
break;
/*u*/ case 28:
if (sDMText == "unbandm")
{
oDMTarget = VerifyTarget(oDMTarget, oDMPC, sUppercase, OBJECT_TARGET);
if (!GetIsObjectValid(oDMTarget)) return;
DeleteLocalInt(oDMTarget, "FKY_CHT_BANDM");
SendMessageToPC(oDMTarget, COLOR_RED+UNBAN1+COLOR_END);
SendMessageToPC(oDMPC, COLOR_RED+UNBANGEN+ GetName(oDMTarget) +UNBAN2+COLOR_END);
}
else if (sDMText == "unbanshout")
{
oDMTarget = VerifyTarget(oDMTarget, oDMPC, sUppercase, OBJECT_TARGET);
if (!GetIsObjectValid(oDMTarget)) return;
sKey = GetPCPublicCDKey(oDMTarget);
DeleteLocalInt(oDMTarget, "FKY_CHT_BANSHOUT");
DeleteLocalString(oDMTarget, "FKY_CHT_BANREASON");//delete the reason they were banned and by whom
if (USING_NWNX_DB) DeletePersistentVariable(GetModule(), "FKY_CHT_BANSHOUT"+ sKey);
else DeleteCampaignVariable("FKY_CHT", "FKY_CHT_BANSHOUT" + sKey);
SendMessageToPC(oDMTarget, COLOR_RED+UNBAN3+COLOR_END);
SendMessageToPC(oDMPC, COLOR_RED+UNBANGEN+ GetName(oDMTarget) +UNBAN4+COLOR_END);
}
else if (GetStringLeft(sDMText, 3) == "unb") CommandRedirect(oDMPC, 16);
else if (sDMText == "unfreeze")
{
oDMTarget = VerifyTarget(oDMTarget, oDMPC, sUppercase, OBJECT_TARGET, FALSE);
if (!GetIsObjectValid(oDMTarget)) return;
if (!GetCommandable(oDMTarget)) SetCommandable(TRUE, oDMTarget);
if (GetIsPC(oDMTarget)) SendMessageToPC(oDMTarget, COLOR_RED+UNFREEZE1+COLOR_END);
SendMessageToPC(oDMPC, COLOR_RED+UNFREEZE2+ GetName(oDMTarget) + "."+COLOR_END);
}
else if (GetStringLeft(sDMText, 3) == "unf") CommandRedirect(oDMPC, 15);
else if (GetStringLeft(sDMText, 4) == "unig")
{
if (sDMText == "unignoredm") //if option
{
if ((DM_PLAYERS_HEAR_DM && VerifyDMKey(oDMPC) && (!GetIsDM(oDMPC))) || (ADMIN_PLAYERS_HEAR_DM && VerifyAdminKey(oDMPC) && (!GetIsDM(oDMPC))))
{
DeleteLocalInt(oDMPC, "FKY_CHT_IGNOREDM");
SendMessageToPC(oDMPC, COLOR_RED+UNIGNORED+COLOR_END);
}
else CommandRedirect(oDMPC, 11);
}
else if (sDMText == "unignoremeta") //if option
{
if ((DMS_HEAR_META && VerifyDMKey(oDMPC) && GetIsDM(oDMPC)) || (DM_PLAYERS_HEAR_META && VerifyDMKey(oDMPC) && (!GetIsDM(oDMPC))) || (ADMIN_DMS_HEAR_META && VerifyAdminKey(oDMPC) && GetIsDM(oDMPC)) || (ADMIN_PLAYERS_HEAR_META && VerifyAdminKey(oDMPC) && (!GetIsDM(oDMPC))))
{
DeleteLocalInt(oDMPC, "FKY_CHT_IGNOREMETA");
SendMessageToPC(oDMPC, COLOR_RED+UNIGNOREM+COLOR_END);
}
else CommandRedirect(oDMPC, 11);
}
else if (sDMText == "unignoretells")//if option
{
if ((DMS_HEAR_TELLS && VerifyDMKey(oDMPC) && GetIsDM(oDMPC)) || (DM_PLAYERS_HEAR_TELLS && VerifyDMKey(oDMPC) && (!GetIsDM(oDMPC))) || (ADMIN_DMS_HEAR_TELLS && VerifyAdminKey(oDMPC) && GetIsDM(oDMPC)) || (ADMIN_PLAYERS_HEAR_TELLS && VerifyAdminKey(oDMPC) && (!GetIsDM(oDMPC))))
{
DeleteLocalInt(oDMPC, "FKY_CHT_IGNORETELLS");
SendMessageToPC(oDMPC, COLOR_RED+UNIGNORET+COLOR_END);
}
else CommandRedirect(oDMPC, 11);
}
else if ( ((DM_PLAYERS_HEAR_DM && VerifyDMKey(oDMPC) && (!GetIsDM(oDMPC))) || (ADMIN_PLAYERS_HEAR_DM && VerifyAdminKey(oDMPC) && (!GetIsDM(oDMPC)))) ||
((DMS_HEAR_META && VerifyDMKey(oDMPC) && GetIsDM(oDMPC)) || (DM_PLAYERS_HEAR_META && VerifyDMKey(oDMPC) && (!GetIsDM(oDMPC))) || (ADMIN_DMS_HEAR_META && VerifyAdminKey(oDMPC) && GetIsDM(oDMPC)) || (ADMIN_PLAYERS_HEAR_META && VerifyAdminKey(oDMPC) && (!GetIsDM(oDMPC)))) ||
((DMS_HEAR_TELLS && VerifyDMKey(oDMPC) && GetIsDM(oDMPC)) || (DM_PLAYERS_HEAR_TELLS && VerifyDMKey(oDMPC) && (!GetIsDM(oDMPC))) || (ADMIN_DMS_HEAR_TELLS && VerifyAdminKey(oDMPC) && GetIsDM(oDMPC)) || (ADMIN_PLAYERS_HEAR_TELLS && VerifyAdminKey(oDMPC) && (!GetIsDM(oDMPC)))) ) CommandRedirect(oDMPC, 27);
else CommandRedirect(oDMPC, 11);
}
else if (sDMText == "uninvis")
{
AssignCommand(GetModule(), DoDMUninvis(oDMPC));
SendMessageToPC(oDMPC, COLOR_RED+UNINVIS+COLOR_END);
}
else if (sDMText == "uninvuln")
{
oDMTarget = VerifyTarget(oDMTarget, oDMPC, sUppercase, OBJECT_TARGET, FALSE, FALSE);
if (!GetIsObjectValid(oDMTarget)) return;
if ((!VerifyDMKey(oDMTarget)) && (!VerifyAdminKey(oDMTarget)) || (oDMTarget == oDMPC))
{
SetPlotFlag(oDMTarget, FALSE);
if (oDMTarget == oDMPC) SendMessageToPC(oDMPC, COLOR_RED+UNINVUL1+COLOR_END);
else
{
SendMessageToPC(oDMPC, COLOR_RED + GetName(oDMTarget) +UNINVUL2+COLOR_END);
if (GetIsPC(oDMTarget)) SendMessageToPC(oDMTarget, COLOR_RED+UNINVUL1+COLOR_END);
}
}
else FloatingTextStringOnCreature(COLOR_RED+UNINVUL3+COLOR_END, oDMPC, FALSE);
}
else if (GetStringLeft(sDMText, 4) == "unin") CommandRedirect(oDMPC, 15);
else if (GetStringLeft(sDMText, 8) == "unlearn ")
{
sDMText = GetStringRight(sDMText, GetStringLength(sDMText) - 8);
nLang = GetLanguageNumber(sDMText);
if (nLang == -1) FloatingTextStringOnCreature(COLOR_RED+LANG1+COLOR_END, oDMPC, FALSE);
else
{
oDMTarget = VerifyTarget(oDMTarget, oDMPC, sUppercase, OBJECT_TARGET);
if (!GetIsObjectValid(oDMTarget)) return;
if (USING_NWNX_DB)
{
DeleteLocalInt(oDMTarget, "FKY_CHAT_LANG"+IntToString(nLang));
DeletePersistentVariable(oDMTarget, "FKY_CHAT_LANG"+IntToString(nLang));
}
else
{
oStorage = GetItemPossessedBy(oDMTarget, TAG_OF_LANGUAGE_STORAGE_OBJECT);
DeleteLocalInt(oDMTarget, "FKY_CHAT_LANG"+IntToString(nLang));
DeleteLocalInt(oStorage, "FKY_CHAT_LANG"+IntToString(nLang));
ExportSingleCharacter(oDMTarget);
}
FloatingTextStringOnCreature(COLOR_RED+LANG3+GetNameOfLanguage(nLang)+LANG4+GetName(oDMTarget)+"."+COLOR_END, oDMPC, FALSE);
}
}
else if (GetStringLeft(sDMText, 3) == "unl") CommandRedirect(oDMPC, 26);
else CommandRedirect(oDMPC, 11);
break;
/*v*/ case 30:
if (sDMText == "vent")
{
oDMTarget = VerifyTarget(oDMTarget, oDMPC, sUppercase, OBJECT_TARGET, FALSE, FALSE);
if (!GetIsObjectValid(oDMTarget)) return;
if (!VerifyDMKey(oDMTarget) && !VerifyAdminKey(oDMTarget))
{
SetLocalObject(oDMPC, "FKY_CHT_VENTRILO", oDMTarget);
FloatingTextStringOnCreature(COLOR_GREEN+VENTRILO+COLOR_END, oDMPC, FALSE);
}
else FloatingTextStringOnCreature(COLOR_RED+NO_DM_TARGET+COLOR_END, oDMPC, FALSE);
}
else if (GetStringLeft(sDMText, 3) == "unl") CommandRedirect(oDMPC, 26);
else CommandRedirect(oDMPC, 11);
break;
}
}