Nexus scripts - Influencing

Starts with an alias:
inf <infTarget> <infType>
Which modifies two variables, setting infTarget to @infTarget and infType to @infType. The infType variable can be cha, sed, emp, weak, and para, for the five different influence types. The alias also calls a function, named influenceTables:
if (get_variable("infType").localCompare("cha") == 0)
{
    if (hasSkill.influence.includes('Wheedling'))
    	influenceArray = ["Wheedling","Supplication","Begging"];
    else if (client.hasSkill.influence.includes('Supplication'))
    	influenceArray = ["Supplication","Begging"];
    else
        influenceArray = ["Begging"]
}
else if (get_variable("infType").localeCompare("sed") == 0)
{
    if (client.hasSkill.influence.includes('Beguiling'))
    	influenceArray = ["Beguiling","Flattery","Charm"];
    else if (client.hasSkill.influence.includes('Charm'))
    	influenceArray = ["Flattery","Charm"];
    else if (client.hasSkill.influence.includes("Flattery"))
        influenceArray = ["Flattery"]
}
else if (get_variable("infType").localeCompare("emp") == 0)
{
    if (client.hasSkill.influence.includes('Praise'))
    	influenceArray = ["Praise","Admiration","Compliments"];
    else if (client.hasSkill.influence.includes('Admiration'))
    	influenceArray = ["Admiration","Compliments"];
    else if (client.hasSkill.influence.includes("Compliments"))
        influenceArray = ["Compliments"]
}
else if (get_variable("infType").localeCompare("weak") == 0)
{
    if (client.hasSkill.influence.includes('Derision'))
    	influenceArray = ["Derision","Mockery","Teasing"];
    else if (client.hasSkill.influence.includes('Mockery'))
    	influenceArray = ["Mockery","Teasing"];
    else if (client.hasSkill.influence.includes("Teasing"))
        influenceArray = ["Teasing"]
}
else if (get_variable("infType").localeCompare("para") == 0)
{
    if (client.hasSkill.influence.includes('Conspiracies'))
    	influenceArray = ["Conspiracies","Distrust","Rumours"];
    else if (client.hasSkill.influence.includes('Distrust'))
    	influenceArray = ["Distrust","Rumours"];
    else if (client.hasSkill.influence.includes("Rumours"))
        influenceArray = ["Rumours"]
}
To influence something(once), there's another alias, inf, which only calls influencingFunction.

influencingFunction:
if (influenceArray.length > 0)
{
	send_command("sm add influence " + get_variable("infTarget") + " with " + influenceArray[0],1)
	influenceArray.push(influenceArray.shift())
}
else
    send_command("echo No abilities to influence with!")
There's some other things that can be added. I have an alias infon that calls the influencingFunction and also sets a variable "influencing" to true, and another, infoff, which sets it to false. If it's on, it'll trigger on equilibrium to call influencingFunction again. If there's no mobs left in the room to influence(triggered on various 'he's not listening to you' lines), the variable is set to false. InfluencingFunction cycles through all the commands in the influenceArray, moving the first one to the end each time it's used.

Revolts would be handled similarly, ie a function RevoltTable:
if (get_variable("city").localeCompare("Glomdoring") == 0)
{
    if (hasSkill.influence.includes('Trickery'))
    	influenceArray = ["Trickery","Intrigue","Manipulation"];
    else if (client.hasSkill.influence.includes('Intrigue'))
    	influenceArray = ["Intrigue","Manipulation"];
    else if (client.hasSkill.influence.includes('Manipulation'))
        influenceArray = ["Manipulation"]
}
except that I'm having trouble setting the variable "city" using gmcp the way I want. The functions are dependent on these scripts: https://forums.lusternia.com/discussion/4023/nexus-scripts-class-skills#latest




Sign In or Register to comment.