try to replace
if (checkweight(628, 20, 969, 1, 7019, 1)) { mes "[ Divine ]"; mes "Sorry, but you're too heavy to proceed."; close; }
to
if (readparam(Weight) > 121 && checkweight(628, 20, 969, 1, 7019, 1)){ mes "Sorry, but you're too heavy to proceed."; close;}
this will check the weight and also the items.
I don't see why you would need to check it twice. The usage of checkweight() here will return 0 if the player is over the weight of the items and their respective amounts; this means that if the player is carry
anything other than what was listed, (s)he will be unable to proceed.
@Slowpoker:
Is your character wearing any sort of equipment? Anything equipped counts towards your accumulative weight.
Edit:
I just noticed a very small (but critical) typo in the script I gave you lol.
Change this:
if (checkweight(628, 20, 969, 1, 7019, 1))
To this:
if (!checkweight(628, 20, 969, 1, 7019, 1))
The final output should be:
// ...next;// Check if player has the exact amount of these items and zenyif(countitem(628) == 20 && countitem(969) == 1 && countitem(7019) == 1 && Zeny == 50000){ // Check if the player's weight exceeds the items checked for if (!checkweight(628, 20, 969, 1, 7019, 1)) { mes "[ Divine ]"; mes "Sorry, but you're too heavy to proceed."; close; } // Delete items and deduct zeny delitem 628, 20; delitem 969, 1; delitem 7019, 1; Zeny -= 50000; // Confirmation dialogue mes "[ Divine ]"; mes "Ok, alright! You can go in here now!"; next; // Warp player warp "prontera",154,285; close;}// Error messagemes "[ Divine ]";mes "I'm sorry, but you don't have the items required to proceed.";close;