123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164 |
- //===== rAthena Script =======================================
- //= Sample: CheckWeight
- //===== By: ==================================================
- //= rAthena Dev Team
- //===== Last Updated: ========================================
- //= 20121113
- //===== Description: =========================================
- //= Demonstrates 'checkweight' command.
- //============================================================
- prontera,161,181,6 script ChkSpace 763,{
- function ChkResult;
- function FinalReport;
- L_RESET:
- resetlvl(1);
- getinventorylist;
- for(set .@i,0; .@i < @inventorylist_count; set .@i,.@i+1){
- delitem(@inventorylist_id[.@i],@inventorylist_amount[.@i]); //clear inventory
- }
-
- L_TEST1: //basic backward chk
- .@testid = 0;
- .@succes = 0;
- .@ret = checkweight(512,10);
- set .@succes,.@succes+ChkResult(.@testid++,1,.@ret); //should be success
- .@ret = checkweight("Apple",10);
- set .@succes,.@succes+ChkResult(.@testid++,1,.@ret); //should be success
- .@ret = checkweight(6320,33000);
- set .@succes,.@succes+ChkResult(.@testid++,0,.@ret); //should be failure too many item amount item weight=0
- .@ret = checkweight("Premium_Reset_Stone",33000);
- set .@succes,.@succes+ChkResult(.@testid++,0,.@ret); //should be failure too many item amount
- .@ret = checkweight(717,500);
- set .@succes,.@succes+ChkResult(.@testid++,1,.@ret); //should be success weight based on max weight=2030
- .@ret = checkweight(717,1000);
- set .@succes,.@succes+ChkResult(.@testid++,0,.@ret); //should be failure weight based on max weight=2030
- .@ret = checkweight(2794,100);
- set .@succes,.@succes+ChkResult(.@testid++,1,.@ret); //should be success
- .@ret = checkweight(2794,101);
- set .@succes,.@succes+ChkResult(.@testid++,0,.@ret); //should be failure (with MAX_INVENTORY = 100)
- .@ret = checkweight(-1,1);
- set .@succes,.@succes+ChkResult(.@testid++,0,.@ret); //should be failure invalide item id
- .@ret = checkweight(512,0);
- set .@succes,.@succes+ChkResult(.@testid++,0,.@ret); //should be failure invalide amount
- debugmes "End backward test";
- FinalReport(.@testid,.@succes);
- L_TEST2: //update using list test
- .@testid = 0;
- .@succes = 0;
- .@ret = checkweight(512,10,513,10);
- set .@succes,.@succes+ChkResult(.@testid++,1,.@ret); //should be success
- .@ret = checkweight("Apple",10,"Banana",10);
- set .@succes,.@succes+ChkResult(.@testid++,1,.@ret); //should be success
- .@ret = checkweight(512,80,513,33000);
- set .@succes,.@succes+ChkResult(.@testid++,0,.@ret); //should be failure
- .@ret = checkweight("Apple",80,"Banana",33000);
- set .@succes,.@succes+ChkResult(.@testid++,0,.@ret); //should be failure too many item amount
- .@ret = checkweight("Apple",10,"Banana",21,512);
- set .@succes,.@succes+ChkResult(.@testid++,0,.@ret); //should be failure invalid nb of args
- .@ret = checkweight(717,500,716,100);
- set .@succes,.@succes+ChkResult(.@testid++,1,.@ret); //should be succes weight 1800/2030
- .@ret = checkweight(717,500,716,500);
- set .@succes,.@succes+ChkResult(.@testid++,0,.@ret); //should be failure weight 3000/2030
- .@ret = checkweight(2794,95,2795,5);
- set .@succes,.@succes+ChkResult(.@testid++,1,.@ret); //should be success
- .@ret = checkweight(2794,95,2795,10);
- set .@succes,.@succes+ChkResult(.@testid++,0,.@ret); //should be failure (with MAX_INVENTORY = 100)
- .@ret = checkweight(512,1,-1,1);
- set .@succes,.@succes+ChkResult(.@testid++,0,.@ret); //should be failure invalide item id
- .@ret = checkweight(512,1,513,0);
- set .@succes,.@succes+ChkResult(.@testid++,0,.@ret); //should be failure invalide amount
- .@ret = checkweight(6320,31000,6320,2000);
- set .@succes,.@succes+ChkResult(.@testid++,0,.@ret); //should be failure overamount inventory
- .@ret = checkweight(512,1,513,1,514,1,515,1);
- set .@succes,.@succes+ChkResult(.@testid++,1,.@ret); //should be sucess
-
- debugmes "End update by list tests";
- FinalReport(.@testid,.@succes);
- L_TEST3: //update using array tests
- .@testid = 0;
- .@succes = 0;
- setarray .@item[0], 512,513,514,515;
- setarray .@count[0], 1,5,9,12;
- .@ret = checkweight2(.@item,.@count);
- set .@succes,.@succes+ChkResult(.@testid++,1,.@ret); //should be sucess
- cleararray .@item[0], 0, 4;
- cleararray .@count[0], 0, 4;
- setarray .@item[0], 512,513,514,515;
- setarray .@count[0], 1,5,-1,12;
- .@ret = checkweight2(.@item,.@count);
- set .@succes,.@succes+ChkResult(.@testid++,0,.@ret); //should be failure, invalide amout
- cleararray .@item[0], 0, 4;
- cleararray .@count[0], 0, 4;
- setarray .@item[0], 512,513,514,-1;
- setarray .@count[0], 1,5,15,12;
- .@ret = checkweight2(.@item,.@count);
- set .@succes,.@succes+ChkResult(.@testid++,0,.@ret); //should be failure, invalide id
- cleararray .@item[0], 0, 4;
- cleararray .@count[0], 0, 4;
- setarray .@item[0], 717,715,716,714;
- setarray .@count[0], 300,300,300,300;
- .@ret = checkweight2(.@item,.@count);
- set .@succes,.@succes+ChkResult(.@testid++,0,.@ret); //should be failure, total by weight
- cleararray .@item[0], 0, 4;
- cleararray .@count[0], 0, 4;
- setarray .@item[0], 6320,6320;
- setarray .@count[0], 31000,2000;
- .@ret = checkweight2(.@item,.@count);
- set .@succes,.@succes+ChkResult(.@testid++,0,.@ret); //should be failure, total by weight
- cleararray .@item[0], 0, 2;
- cleararray .@count[0], 0, 2;
- setarray .@item[0], 2794,2795;
- setarray .@count[0], 95,5;
- .@ret = checkweight2(.@item,.@count);
- set .@succes,.@succes+ChkResult(.@testid++,1,.@ret); //should be success
- setarray .@count[0], 95,10;
- .@ret = checkweight2(.@item,.@count);
- set .@succes,.@succes+ChkResult(.@testid++,0,.@ret); //should be failure overamount item
- cleararray .@item[0], 0, 2;
- cleararray .@count[0], 0, 2;
- setarray .@item[0], 6320,6320,512;
- setarray .@count[0], 1,3;
- .@ret = checkweight2(.@item,.@count);
- set .@succes,.@succes+ChkResult(.@testid++,0,.@ret); //should be failure, size mistmatch
- cleararray .@item[0], 0, 3;
- cleararray .@count[0], 0, 2;
- setarray .@item[0], 6320,6320;
- setarray .@count[0], 1,3,5;
- .@ret = checkweight2(.@item,.@count);
- set .@succes,.@succes+ChkResult(.@testid++,0,.@ret); //should be failure, size mistmatch
- debugmes "End update by array tests";
- FinalReport(.@testid,.@succes);
- L_FINAL:
- end;
-
- function ChkResult {
- .@tid = getarg(0);
- .@expected = getarg(1);
- .@ret = getarg(2);
- .@sucess = (.@ret==.@expected);
- debugmes "Test "+.@tid+" = "+(.@sucess?"Sucess":"Fail");
- return .@sucess;
- }
- function FinalReport {
- .@tdone = getarg(0);
- .@succes = getarg(1);
- debugmes "Results = Pass : "+.@succes+"/"+.@tdone+" Fails : "+(.@tdone-.@succes)+"/"+.@tdone;
- if(.@succes != .@tdone) { debugmes "Some failure as occured, enable chkresult print to found out"; }
- return;
- }
- }
|