I’m messing with a script for a post office and I know what I need to do, I’m just butchering the commands for setting variables. The main npc is the letter bag, which is responsible for picking up letters, creating addresses, and reporting stats. (Delivery count, wages, etc.) The mailbox npc will simply know its address, clear the address from the letter, then determine pay rate and then add that to pay. I messed up the code worse when I was impatiently trying to get it to work, but I mostly need to know how to set variables within strings and whether I’m trying to catch their them right. I sorta had it working before I made everything into setstring, but it wasn’t retaining the information when I’d go back and forth between the editor…
// NPC made by Garacat
// Delivery Bag
// December 2008
if (playertouchsme){toweapons Delivery Bag;}
if (playerchats && isweapon) {
//-----------------------------------------------------------------------------------------------------
// Pickup determines letterbag capacity, refills the letterbag to that "capacity",
// and should only work in the post office
//-----------------------------------------------------------------------------------------------------
if (strequals(#c,pickup) && player.letters=0 && playerlevel=postoffice.graal && !current.letter>0){
if (deliveries<25){setstring bag.capacity,1;}
if (deliveries>24 && deliveries<100){setstring bag.capacity,5;}
if (deliveries>99 && deliveries<250){setstring bag.capacity,10;}
if (deliveries>249 && deliveries<500){setstring bag.capacity,15;}
if (deliveries>499 && deliveries<1000){setstring bag.capacity,20;}
if (deliveries>999){setstring bag.capacity,25;}
setstring player.letters,#v(bag.capacity);
}
//-----------------------------------------------------------------------------------------------------
// Next delivery subtracts a "converts" a letter to an address and translates it into a name
//-----------------------------------------------------------------------------------------------------
if (strequals(#c,next delivery) && player.letters>0 && !current.letter>0){
setstring player.letters,player.letters-1;
setstring current.letter,int(random(1,25));
if (current.letter=1){setstring letter.boxname,Test House}
if (current.letter=2){setstring letter.boxname,a}
if (current.letter=3){setstring letter.boxname,B}
if (current.letter=4){setstring letter.boxname,D}
if (current.letter=5){setstring letter.boxname,E}
if (current.letter=6){setstring letter.boxname,B}
if (current.letter=7){setstring letter.boxname,DS}
if (current.letter=8){setstring letter.boxname,E}
if (current.letter=9){setstring letter.boxname,W}
if (current.letter=10){setstring letter.boxname,E}
if (current.letter=11){setstring letter.boxname,G}
if (current.letter=12){setstring letter.boxname,A}
if (current.letter=13){setstring letter.boxname,F}
if (current.letter=14){setstring letter.boxname,E}
if (current.letter=15){setstring letter.boxname,E}
if (current.letter=16){setstring letter.boxname,E}
if (current.letter=17){setstring letter.boxname,G}
if (current.letter=18){setstring letter.boxname,E}
if (current.letter=19){setstring letter.boxname,G}
if (current.letter=20){setstring letter.boxname,E}
if (current.letter=21){setstring letter.boxname,E}
if (current.letter=22){setstring letter.boxname,A}
if (current.letter=23){setstring letter.boxname,E}
if (current.letter=24){setstring letter.boxname,W}
if (current.letter=25){setstring letter.boxname,Q}
setplayerprop #c,#s(letter.boxname);
}
//----------------------------------------------------------------------------------------------------
//Following simply allows player to check stats
//Total deliveries
// Accumulative Pay (Determined mailbox npc, pay can be collected at post office from npc)
// Next delivery (When address is already set)
// Wage (Also determined by mailbox npc)
//----------------------------------------------------------------------------------------------------
if (strequals(#c,delieveries)){setplayerprop #c,#v(deliveries)}
if (strequals(#c,pay)){setplayerprop #c,#v(postal.pay)}
if (strequals(#c,next delivery && player.letters>0 && current.letter>0)){setplayerprop #c,#s(letter.boxname)}
if (strequals(#c,wage)){setplayerprop #c,#v(player.wage)}
}
//---------------------------------------------------------------------------------------------------
// End