<!--quoteo(post=232655:date=Jan 7 2008, 05:10 AM:name=Petros)--><div class='quotetop'>QUOTE(Petros @ Jan 7 2008, 05:10 AM) [snapback]232655[/snapback]</div><div class='quotemain'><!--quotec-->...
I'd guess we could by making the first encounter and refusal the same as when you encounter teachers on other occasions and refuse to take their class.
Or like when you encounter a "sneaky" merchant and refuse to buy what they offer. You don't get a second chance.<!--QuoteEnd--></div><!--QuoteEEnd-->
<!--quoteo(post=232704:date=Jan 7 2008, 12:22 PM:name=Pieter Boelen)--><div class='quotetop'>QUOTE(Pieter Boelen @ Jan 7 2008, 12:22 PM) [snapback]232704[/snapback]</div><div class='quotemain'><!--quotec-->The problem is somewhere in the "Enc_Walker.c" dialog file. I had a look at it yesterday, but couldn't figure it out in a hurry. Should be quite fixable though. <img src="style_emoticons/<#EMO_DIR#>/yes.gif" style="vertical-align:middle" emoid="
" border="0" alt="yes.gif" /><!--QuoteEnd--></div><!--QuoteEEnd-->
<img src="style_emoticons/<#EMO_DIR#>/mybad.gif" style="vertical-align:middle" emoid="
" border="0" alt="mybad.gif" /> With the credits going to you, Gentlemen, most of the job being to figure out what to look for and where to do it, then these changes in the Enc_Walker.c should work! I have been testing them in the game play and they perform exactly as Petros suggested, by choosing case "exit_out" instead of exit.
case "skill":
switch (Rand(7))
{
case 0:
d.Text = DLG_TEXT[74];
if(makeint(PChar.skill.Fencing)>9)
{
Link.l1 = DLG_TEXT[75];
Link.l1.go = "exit_out"; // Julian instead of "exit_Fencing";
}
else
{
Link.l1 = DLG_TEXT[76];
Link.l1.go = "Fencing";
}
if(makeint(PChar.skill.Defence)>9)
{
Link.l1 = DLG_TEXT[77];
Link.l1.go = "exit_out";
}
else
{
Link.l2 = DLG_TEXT[78];
Link.l2.go = "Defence";
}
Link.l3 = DLG_TEXT[79];
Link.l3.go = "exit_out"; // Julian instead of "exit_Fencing";
break;
case 1:
d.Text = DLG_TEXT[80];
if(makeint(PChar.skill.Leadership)>9)
{
Link.l1 = DLG_TEXT[81];
Link.l1.go = "exit_out";
}
else
{
Link.l1 = DLG_TEXT[82];
Link.l1.go = "Leadership";
}
Link.l2 = DLG_TEXT[83];
Link.l2.go = "exit_out"; // Julian instead of "exit_Leadership";
break;
case 2:
d.Text = DLG_TEXT[84];
if(makeint(PChar.skill.Sailing)>9)
{
Link.l1 = DLG_TEXT[85];
Link.l1.go = "exit_out";
}
else
{
Link.l1 = DLG_TEXT[86];
Link.l1.go = "Sailing";
}
Link.l2 = DLG_TEXT[87];
Link.l2.go = "exit_out"; // Julian instead of "exit_Sailing";
break;
case 3:
d.Text = DLG_TEXT[88];
if(makeint(PChar.skill.Accuracy)>9)
{
Link.l1 = DLG_TEXT[89];
Link.l1.go = "exit_out";
}
else
{
Link.l1 = DLG_TEXT[90];
Link.l1.go = "Accuracy";
}
Link.l2 = DLG_TEXT[91];
Link.l2.go = "exit_out"; // Julian instead of "exit_Accuracy";
break;
case 4:
d.Text = DLG_TEXT[92];
if(makeint(PChar.skill.Cannons)>9)
{
Link.l1 = DLG_TEXT[93];
Link.l1.go = "exit_out";
}
else
{
Link.l1 = DLG_TEXT[94];
Link.l1.go = "Cannons";
}
Link.l2 = DLG_TEXT[95];
Link.l2.go = "exit_out"; // Julian instead of "exit_Cannons";
break;
case 5:
d.Text = DLG_TEXT[96];
if(makeint(PChar.skill.Grappling)>9)
{
Link.l1 = DLG_TEXT[97];
Link.l1.go = "exit_out";
}
else
{
Link.l1 = DLG_TEXT[98];
Link.l1.go = "Grappling";
}
Link.l2 = DLG_TEXT[99];
Link.l2.go = "exit_out"; // Julian instead of "exit_Grappling";
break;
case 6:
d.Text = DLG_TEXT[100];
if(makeint(PChar.skill.Repair)>9)
{
Link.l1 = DLG_TEXT[101];
Link.l1.go = "exit_out";
}
else
{
Link.l1 = DLG_TEXT[102];
Link.l1.go = "Repair";
}
Link.l2 = DLG_TEXT[103];
Link.l2.go = "exit_out"; // Julian instead of "exit_Repair";
break;
case 7:
d.Text = DLG_TEXT[104];
if(makeint(PChar.skill.Commerce)>9)
{
Link.l1 = DLG_TEXT[105];
Link.l1.go = "exit_out";
}
else
{
Link.l1 = DLG_TEXT[106];
Link.l1.go = "Commerce";
}
Link.l2 = DLG_TEXT[107];
Link.l2.go = "exit_out"; // Julian instead of "exit_Commerce";
break;
}
break;
case "Fencing":
Sum = (sti(Pchar.skill.Fencing) + 1) * 1000; //ccc from 10000
d.Text = DLG_TEXT[108] + Sum + DLG_TEXT[109];
if(makeint(Pchar.money) < Sum)
{
Link.l1 = DLG_TEXT[110];
Link.l1.go = "exit_out"; // Julian instead of "exit_Fencing";
}
else
{
Link.l1 = DLG_TEXT[111];
Link.l1.go = "Fencing1";
Link.l2 = DLG_TEXT[112];
Link.l2.go = "exit_out"; // Julian instead of "exit_Fencing";
}
break;
case "Fencing2":
Sum = (sti(Pchar.skill.Fencing) + 1) * 1000; //ccc from 10000
d.Text = DLG_TEXT[113] + Sum + DLG_TEXT[114];
if(makeint(Pchar.money) < Sum)
{
Link.l1 = DLG_TEXT[115];
Link.l1.go = "exit_out"; // Julian instead of "exit_Fencing";
}
else
{
Link.l1 = DLG_TEXT[116];
Link.l1.go = "Fencing1";
Link.l2 = DLG_TEXT[117];
Link.l2.go = "exit_out"; // Julian instead of "exit_Fencing";
}
break;
case "Fencing1":
Sum = (sti(Pchar.skill.Fencing) + 1) * 1000; //ccc from 10000
Pchar.skill.Fencing = makeint(Pchar.skill.Fencing) + 1;
PlayStereoSound("INTERFACE\took_item.wav");
AddMoneytoCharacter(Pchar, -Sum);
GotSkill("fencing"); // ccc apr11
Diag.CurrentNode = "get_out";
DialogExit();
break;
case "Defence":
Sum = (sti(Pchar.skill.Defence) + 1) * 1000; //ccc from 10000
d.Text = DLG_TEXT[118] + Sum + DLG_TEXT[119];
if(makeint(Pchar.money) < Sum)
{
Link.l1 = DLG_TEXT[120];
Link.l1.go = "exit_out"; // Julian instead of "exit_Defence";
}
else
{
Link.l1 = DLG_TEXT[121];
Link.l1.go = "Defence1";
Link.l2 = DLG_TEXT[122];
Link.l2.go = "exit_out"; // Julian instead of "exit_Defence";
}
break;
case "Defence2":
Sum = (sti(Pchar.skill.Defence) + 1) * 1000; //ccc from 10000
d.Text = DLG_TEXT[123] + Sum + DLG_TEXT[124];
if(makeint(Pchar.money) < Sum)
{
Link.l1 = DLG_TEXT[125];
Link.l1.go = "exit_out"; // Julian instead of "exit_Defence";
}
else
{
Link.l1 = DLG_TEXT[126];
Link.l1.go = "Defence1";
Link.l2 = DLG_TEXT[127];
Link.l2.go = "exit_out"; // Julian instead of "exit_Defence";
}
break;
case "Defence1":
Sum = (sti(Pchar.skill.Defence) + 1) * 1000; //ccc from 10000
Pchar.skill.Defence = makeint(Pchar.skill.Defence) + 1;
PlayStereoSound("INTERFACE\took_item.wav");
AddMoneytoCharacter(Pchar, -Sum);
GotSkill("Defence"); // ccc apr11
Diag.CurrentNode = "get_out";
DialogExit();
break;
case "Leadership":
Sum = (sti(Pchar.skill.Leadership) + 1) * 1000; //ccc from 10000
d.Text = DLG_TEXT[128] + Sum + DLG_TEXT[129];
if(makeint(Pchar.money) < Sum)
{
Link.l1 = DLG_TEXT[130];
Link.l1.go = "exit_out"; // Julian instead of "exit_Leadership";
}
else
{
Link.l1 = DLG_TEXT[131];
Link.l1.go = "Leadership1";
Link.l2 = DLG_TEXT[132];
Link.l2.go = "exit_out"; // Julian instead of "exit_Leadership";
}
break;
case "Leadership2":
Sum = (sti(Pchar.skill.Leadership) + 1) * 1000; //ccc from 10000
d.Text = DLG_TEXT[133] + Sum + DLG_TEXT[134];
if(makeint(Pchar.money) < Sum)
{
Link.l1 = DLG_TEXT[135];
Link.l1.go = "exit_out"; // Julian instead of "exit_Leadership";
}
else
{
Link.l1 = DLG_TEXT[136];
Link.l1.go = "Leadership1";
Link.l2 = DLG_TEXT[137];
Link.l2.go = "exit_out"; // Julian instead of "exit_Leadership";
}
break;
case "Leadership1":
Sum = (sti(Pchar.skill.Leadership) + 1) * 1000; //ccc from 10000
Pchar.skill.Leadership = makeint(Pchar.skill.Leadership) + 1;
PlayStereoSound("INTERFACE\took_item.wav");
AddMoneytoCharacter(Pchar, -Sum);
GotSkill("leadership"); // ccc apr11
Diag.CurrentNode = "get_out";
DialogExit();
break;
case "Sailing":
Sum = (sti(Pchar.skill.Sailing) + 1) * 1000; //ccc from 10000
d.Text = DLG_TEXT[138] + Sum + DLG_TEXT[139];
if(makeint(Pchar.money) < Sum)
{
Link.l1 = DLG_TEXT[140];
Link.l1.go = "exit_out"; // Julian instead of "exit_Sailing";
}
else
{
Link.l1 = DLG_TEXT[141];
Link.l1.go = "Sailing1";
Link.l2 = DLG_TEXT[142];
Link.l2.go = "exit_out"; // Julian instead of "exit_Sailing";
}
break;
case "Sailing2":
Sum = (sti(Pchar.skill.Sailing) + 1) * 1000; //ccc from 10000
d.Text = DLG_TEXT[143] + Sum + DLG_TEXT[144];
if(makeint(Pchar.money) < Sum)
{
Link.l1 = DLG_TEXT[145];
Link.l1.go = "exit_out"; // Julian instead of "exit_Sailing";
}
else
{
Link.l1 = DLG_TEXT[146];
Link.l1.go = "Sailing1";
Link.l2 = DLG_TEXT[147];
Link.l2.go = "exit_out"; // Julian instead of "exit_Sailing";
}
break;
case "Sailing1":
Sum = (sti(Pchar.skill.Sailing) + 1) * 1000; //ccc from 10000
Pchar.skill.Sailing = makeint(Pchar.skill.Sailing) + 1;
PlayStereoSound("INTERFACE\took_item.wav");
AddMoneytoCharacter(Pchar, - Sum);
GotSkill("sailing"); // ccc apr11
Diag.CurrentNode = "get_out";
DialogExit();
break;
case "Accuracy":
Sum = (sti(Pchar.skill.Accuracy) + 1) * 1000; //ccc from 10000
d.Text = DLG_TEXT[148] + Sum + DLG_TEXT[149];
if(makeint(Pchar.money) < Sum)
{
Link.l1 = DLG_TEXT[150];
Link.l1.go = "exit_out"; // Julian instead of "exit_Accuracy";
}
else
{
Link.l1 = DLG_TEXT[151];
Link.l1.go = "Accuracy1";
Link.l2 = DLG_TEXT[152];
Link.l2.go = "exit_out"; // Julian instead of "exit_Accuracy";
}
break;
case "Accuracy2":
Sum = (sti(Pchar.skill.Accuracy) + 1) * 1000; //ccc from 10000
d.Text = DLG_TEXT[153] + Sum + DLG_TEXT[154];
if(makeint(Pchar.money) < Sum)
{
Link.l1 = DLG_TEXT[155];
Link.l1.go = "exit_out"; // Julian instead of "exit_Accuracy";
}
else
{
Link.l1 = DLG_TEXT[156];
Link.l1.go = "Accuracy1";
Link.l2 = DLG_TEXT[157];
Link.l2.go = "exit_out"; // Julian instead of "exit_Accuracy";
}
break;
case "Accuracy1":
Sum = (sti(Pchar.skill.Accuracy) + 1) * 1000; //ccc from 10000
Pchar.skill.Accuracy = makeint(Pchar.skill.Accuracy) + 1;
PlayStereoSound("INTERFACE\took_item.wav");
AddMoneytoCharacter(Pchar, -Sum);
GotSkill("accuracy"); // ccc apr11
Diag.CurrentNode = "get_out";
DialogExit();
break;
case "Cannons":
Sum = (sti(Pchar.skill.Cannons) + 1) * 1000; //ccc from 10000
d.Text = DLG_TEXT[158] + Sum + DLG_TEXT[159];
if(makeint(Pchar.money) < Sum)
{
Link.l1 = DLG_TEXT[160];
Link.l1.go = "exit_out"; // Julian instead of "exit_Cannons";
}
else
{
Link.l1 = DLG_TEXT[161];
Link.l1.go = "Cannons1";
Link.l2 = DLG_TEXT[162];
Link.l2.go = "exit_out"; // Julian instead of "exit_Cannons";
}
break;
case "Cannons2":
Sum = (sti(Pchar.skill.Cannons) + 1) * 1000; //ccc from 10000
d.Text = DLG_TEXT[163] + Sum + DLG_TEXT[164];
if(makeint(Pchar.money) < Sum)
{
Link.l1 = DLG_TEXT[165];
Link.l1.go = "exit_out"; // Julian instead of "exit_Cannons";
}
else
{
Link.l1 = DLG_TEXT[166];
Link.l1.go = "Cannons1";
Link.l2 = DLG_TEXT[167];
Link.l2.go = "exit_out"; // Julian instead of "exit_Cannons";
}
break;
case "Cannons1":
Sum = (sti(Pchar.skill.Cannons) + 1) * 1000; //ccc from 10000
Pchar.skill.Cannons = makeint(Pchar.skill.Cannons) + 1;
PlayStereoSound("INTERFACE\took_item.wav");
AddMoneytoCharacter(Pchar, -Sum);
GotSkill("gunnery"); // ccc apr11
Diag.CurrentNode = "get_out";
DialogExit();
break;
case "Grappling":
Sum = (sti(Pchar.skill.Grappling) + 1) * 1000; //ccc from 10000
d.Text = DLG_TEXT[168] + Sum + DLG_TEXT[169];
if(makeint(Pchar.money) < Sum)
{
Link.l1 = DLG_TEXT[170];
Link.l1.go = "exit_out"; // Julian instead of "exit_Grappling";
}
else
{
Link.l1 = DLG_TEXT[171];
Link.l1.go = "Grappling1";
Link.l2 = DLG_TEXT[172];
Link.l2.go = "exit_out"; // Julian instead of "exit_Grappling";
}
break;
case "Grappling2":
Sum = (sti(Pchar.skill.Grappling) + 1) * 1000; //ccc from 10000
d.Text = DLG_TEXT[173] + Sum + DLG_TEXT[174];
if(makeint(Pchar.money) < Sum)
{
Link.l1 = DLG_TEXT[175];
Link.l1.go = "exit_out"; // Julian instead of "exit_Grappling";
}
else
{
Link.l1 = DLG_TEXT[176];
Link.l1.go = "Grappling1";
Link.l2 = DLG_TEXT[177];
Link.l2.go = "exit_out"; // Julian instead of "exit_Grappling";
}
break;
case "Grappling1":
Sum = (sti(Pchar.skill.Grappling) + 1) * 1000; //ccc from 10000
Pchar.skill.Grappling = makeint(Pchar.skill.Grappling) + 1;
PlayStereoSound("INTERFACE\took_item.wav");
AddMoneytoCharacter(Pchar, -Sum);
GotSkill("grappling"); // ccc apr11
Diag.CurrentNode = "get_out";
DialogExit();
break;
case "Repair":
Sum = (sti(Pchar.skill.Repair) + 1) * 1000; //ccc from 10000
d.Text = DLG_TEXT[178] + Sum + DLG_TEXT[179];
if(makeint(Pchar.money) < Sum)
{
Link.l1 = DLG_TEXT[180];
Link.l1.go = "exit_out"; // Julian instead of "exit_Repair";
}
else
{
Link.l1 = DLG_TEXT[181];
Link.l1.go = "Repair1";
Link.l2 = DLG_TEXT[182];
Link.l2.go = "exit_out"; // Julian instead of "exit_Repair";
}
break;
case "Repair2":
Sum = (sti(Pchar.skill.Repair) + 1) * 1000; //ccc from 10000
d.Text = DLG_TEXT[183] + Sum + DLG_TEXT[184];
if(makeint(Pchar.money) < Sum)
{
Link.l1 = DLG_TEXT[185];
Link.l1.go = "exit_out"; // Julian instead of "exit_Repair";
}
else
{
Link.l1 = DLG_TEXT[186];
Link.l1.go = "Repair1";
Link.l2 = DLG_TEXT[187];
Link.l2.go = "exit_out"; // Julian instead of "exit_Repair";
}
break;
case "Repair1":
Sum = (sti(Pchar.skill.Repair) + 1) * 1000; //ccc from 10000
Pchar.skill.Repair = makeint(Pchar.skill.Repair) + 1;
PlayStereoSound("INTERFACE\took_item.wav");
AddMoneytoCharacter(Pchar, -Sum);
GotSkill("repair"); // ccc apr11
Diag.CurrentNode = "get_out";
DialogExit();
break;
case "Commerce":
Sum = (sti(Pchar.skill.Commerce) + 1) * 1000; //ccc from 10000
d.Text = DLG_TEXT[188] + Sum + DLG_TEXT[189];
if(makeint(Pchar.money) < Sum)
{
Link.l1 = DLG_TEXT[190];
Link.l1.go = "exit_out"; // Julian instead of "exit_Commerce";
}
else
{
Link.l1 = DLG_TEXT[191];
Link.l1.go = "Commerce1";
Link.l2 = DLG_TEXT[192];
Link.l2.go = "exit_out"; // Julian instead of "exit_Commerce";
}
break;
case "Commerce2":
Sum = (sti(Pchar.skill.Commerce) + 1) * 1000; //ccc from 10000
d.Text = DLG_TEXT[193] + Sum + DLG_TEXT[194];
if(makeint(Pchar.money) < Sum)
{
Link.l1 = DLG_TEXT[195];
Link.l1.go = "exit_out"; // Julian instead of "exit_Commerce";
}
else
{
Link.l1 = DLG_TEXT[196];
Link.l1.go = "Commerce1";
Link.l2 = DLG_TEXT[197];
Link.l2.go = "exit_out"; // Julian instead of "exit_Commerce";
}
break;
case "Commerce1":
Sum = (sti(Pchar.skill.Commerce) + 1) * 1000; //ccc from 10000
Pchar.skill.Commerce = makeint(Pchar.skill.Commerce) + 1;
PlayStereoSound("INTERFACE\took_item.wav");
AddMoneytoCharacter(Pchar, -Sum);
GotSkill("commerce"); // ccc apr11
Diag.CurrentNode = "get_out";
DialogExit();
break;
The changed file JulianEncWalkerFixed is at <a href="http://pafiles.com/build/" target="_blank">http://pafiles.com/build/</a>
I have tested it in getting the skills by accepting the price and it works. I have tested it by denying to pay and by re-addressing the character in which case it performs "I thought we had it covered all out".
I wonder if you could test it with cheat skill assignments to max. for the final quality control?
<img src="style_emoticons/<#EMO_DIR#>/doff.gif" style="vertical-align:middle" emoid="
" border="0" alt="doff.gif" />