<img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/modding.gif" style="vertical-align:middle" emoid="

" border="0" alt="modding.gif" /> <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/modding.gif" style="vertical-align:middle" emoid="

" border="0" alt="modding.gif" /> <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/modding.gif" style="vertical-align:middle" emoid="

" border="0" alt="modding.gif" /> Arrrrgh, I <i>thought</i> I got it, but obviously I didn´t - again. I just wonder why.
This is the weapon table for the Scheffnows Weapon mod in inititems.c:
<!--c1--><div class='codetop'>CODE</div><div class='codemain'><!--ec1--> n = InitBlade(n, "blade5", "blade5", 6, 9, 0.90, 0, 250, 4.0, 10.0, 25, 0, true); // Dagger
n = InitBlade(n, "blade2", "blade2", 6, 10, 0.90, 1, 500, 8.0, 12.0, 20, 10, true); // Rapier
n = InitBlade(n, "blade1", "blade1", 6, 11, 0.90, 2, 500, 8.0, 13.0, 10, 10, false); // Saber
n = InitBlade(n, "blade4", "blade4", 6, 7, 0.90, 3, 500, 8.0, 14.0, 10, 5, true); // Cutlass
n = InitBlade(n, "blade7", "blade7", 6, 13, 0.70, 4, 500, 9.0, 15.0, 15, 5, true); // Yataghan
n = InitBlade(n, "blade3", "blade3", 6, 8, 0.60, 5, 1000, 10.0, 16.0, 10, 10, true); // Badelaire
n = InitBlade(n, "blade6", "blade6", 6, 12, 0.60, 6, 1000, 10.0, 17.0, 15, 15, true); // Schiavona
n = InitBlade(n, "blade13", "blade13", 3, 6, 0.40, 7, 2000, 11.0, 18.0, 25, 20, true); // Needle
n = InitBlade(n, "blade11", "blade11", 3, 4, 0.40, 8, 2000, 11.0, 19.0, 20, 15, true); // Highlander
n = InitBlade(n, "blade8", "blade8", 3, 1, 0.30, 9, 4000, 12.0, 20.0, 15, 10, true); // Maltese Knight
n = InitBlade(n, "blade12", "blade12", 3, 5, 0.30, 10, 4000, 12.0, 20.0, 20, 20, true); // Dragon's Tongue
n = InitBlade(n, "blade18", "blade18", 3, 11, 0.30, 11, 4000, 12.0, 21.0, 25, 25, true); // Sharp's Saber
n = InitBlade(n, "blade15", "blade15", 3, 8, 0.25, 12, 8000, 12.0, 22.0, 30, 25, true); // Brazo del Colon
n = InitBlade(n, "blade10", "blade10", 3, 3, 0.25, 13, 2000, 13.0, 23.0, 20, 10, true); // Piranha
n = InitBlade(n, "blade16", "blade16", 3, 9, 0.25, 14, 8000, 13.0, 24.0, 25, 20, true); // Tizona
n = InitBlade(n, "blade19", "blade19", 3, 12, 0.25, 15, 8000, 13.0, 25.0, 25, 40, true); // Vagrant
n = InitBlade(n, "blade20", "blade20", 3, 13, 0.20, 16, 16000, 14.0, 26.0, 30, 30, true); // Squall
n = InitBlade(n, "blade21", "blade21", 3, 14, 0.20, 17, 16000, 14.0, 27.0, 25, 15, true); // Falchion
n = InitBlade(n, "blade17", "blade17", 3, 10, 0.20, 18, 16000, 14.0, 28.0, 25, 10, true); // Flamigera
n = InitBlade(n, "blade9", "blade9", 3, 2, 0.10, 19, 32000, 15.0, 29.0, 45, 45, true); // Silver Leaf
n = InitBlade(n, "blade14", "blade14", 3, 7, 0.10, 20, 32000, 15.0, 29.0, 20, 90, true); // Conquistador
n = InitBlade(n, "blade22", "blade22", 3, 15, 0.10, 21, 32000, 15.0, 29.0, 90, 20, true); // Corsair's Pride
n = InitBlade(n, "blade23", "blade23", 3, 16, 0.10, 22, 32000, 15.0, 29.0, 40, 30, true); // Windmill Slayer
n = InitBlade(n, "blade25", "blade25", 6, 15, 0.05, 23, 64000, 16.0, 30.0, 95, 70, true); // Cardinal's Guard
n = InitBlade(n, "blade26", "blade26", 3, 6, 0.05, 23, 64000, 16.0, 31.0, 70, 95, true); // Solingen Rapier
n = InitBlade(n, "blade24", "blade24", 6, 14, 0.05, 24, 64000, 16.0, 32.0, 80, 85, true); // Atwood's Saber
n = InitBlade(n, "blade27", "blade27", 6, 16, 0.05, 25, 64000, 16.0, 36.0, 50, 30, true); // Bosun's Choice
n = InitBlade(n, "blade28", "blade19", 3, 12, 0.01, 0, 500, 12.0, 18.0, 12, 10, true); // Longsword
n = InitBlade(n, "blade29", "blade23", 3, 16, 0.01, 0, 600, 15.0, 20.0, 20, 15, true); // English Longsword
n = InitBlade(n, "blade30", "blade9", 3, 2, 0.01, 0, 600, 15.0, 20.0, 20, 15, true); // French Longsword
n = InitBlade(n, "blade31", "blade14", 3, 7, 0.01, 0, 600, 15.0, 20.0, 20, 15, true); // Spanish Longsword<!--c2--></div><!--ec2-->
I added the boolean variable at the end of the table for the skipequip function and for testing purposes all weapons but the saber were set to true (meaning no other weapon should be equipped).
This is the rest of the sword relevant function:
<!--c1--><div class='codetop'>CODE</div><div class='codemain'><!--ec1-->int InitBlade( ref ItemIndex,
string id,
string ModelID,
string picTexture,
int picIndex,
float Rare,
int MinLevel,
int Price,
float DmgMin,
float DmgMax,
int Piercing,
int Blocking,
bool skipequip) //Grimm
{
ref blade;
int i;
int BladeIndex;
int QualityPiercing;
int QualityBlocking;
int QualityMinLevel;
int QualityPrice;
float QualityRare;
float QualityDmgMin;
float QualityDmgMax;
bool QualitySkipRand;
bool QualitySkipTrade;
string QualityTexture;
string QualityName;
string BladeID;
BladeIndex = ItemIndex;
for (i = 0; i < 6; i++)
{
QualityDmgMin = (0.5 + i * 0.25) * DmgMin;
QualityDmgMax = (0.5 + i * 0.25) * DmgMax;
QualityPrice = (0.5 + stf(i * 0.25)) * Price;
QualityRare = Rare * (1.0 - 0.1 * i);
QualityBlocking = sti(-2 + i + Blocking);
QualitySkipTrade = false;
QualitySkipRand = false;
switch(i)
{
case 0:
QualityTexture = "ITEMS_" + picTexture + "-2";
QualityName = "Badly worn";
BladeID = id + "-2";
break;
case 1:
QualityTexture = "ITEMS_" + picTexture + "-1";
QualityName = "Worn";
BladeID = id + "-1";
break;
case 3:
QualityTexture = "ITEMS_" + picTexture + "+1";
QualityName = "Good";
BladeID = id + "+1";
break;
case 4:
QualityTexture = "ITEMS_" + picTexture + "+2";
QualityName = "Fine";
BladeID = id + "+2";
QualitySkipRand = true;
break;
case 5:
QualityTexture = "ITEMS_" + picTexture + "+3";
QualityName = "Exellent";
BladeID = id + "+3";
QualitySkipTrade = true;
QualitySkipRand = true;
break;
QualityTexture = "ITEMS_" + picTexture;
QualityName = "Average";
BladeID = id;
}
if(QualityBlocking < 0)
{
QualityBlocking = 0;
}
QualityPiercing = sti(-2 + i + Piercing);
if(QualityPiercing < 0)
{
QualityPiercing = 0;
}
QualityMinLevel = sti(-2 + i + MinLevel);
if(QualityMinLevel < 0)
{
QualityMinLevel = 0;
}
makeref(blade,Items[BladeIndex]);
// quality invariant properties
blade.id = BladeID;
blade.BladeQuality = i;
blade.groupID = BLADE_ITEM_TYPE;
blade.name = "itmname_" + id;
blade.describe = "itmdescr_" + id;
blade.model = ModelID;
blade.skipequip = skipequip; //Grimm
// quality affected properties
blade.QualityName = QualityName;
blade.picTexture = QualityTexture;
blade.picIndex = picIndex;
blade.minlevel = QualityMinLevel;
blade.price = QualityPrice;
blade.dmg_min = QualityDmgMin;
blade.dmg_max = QualityDmgMax;
blade.piercing = QualityPiercing;
blade.block = QualityBlocking;
blade.rare = QualityRare;
blade.skiptrade = QualitySkipTrade;
blade.skiprand = QualitySkipRand;
// invariant properties
blade.folder = "ammo";
blade.param.time = 0.05;
blade.param.colorstart = argb(64, 64, 64, 64);
blade.param.colorend = argb(0, 32, 32, 32);
BladeIndex++;
}
return BladeIndex++;
}<!--c2--></div><!--ec2-->
Now, still in boarding, enemies get equipped with other weapons than the saber, WHY? I´ll have yet to try land encounters in the wilderness, but I´m rather pessimistic about it.