
I have a question, is possible count a specific item in the server,
exmple: count amount the gold coins in the server (objtype 0x0eed)?
What do you advise me to do?
thank you for your attention and your time!

Moderator: POL Developer
Code: Select all
//use storage;//old pol remove this
use uo;
use os;
//program textcommand(character, text, uc_text, langcode)
program my_countgold( chr )
set_script_option(SCRIPTOPT_NO_INTERRUPT,1);
set_script_option(SCRIPTOPT_DEBUG,0);
set_script_option(SCRIPTOPT_NO_RUNAWAY,1);
var slots := 5;
var acct;
var i;
var countbank := 0;
var countbackpack := 0;
var countmap := 0;
var countcontainer:= 0;
var charref;
var worldbank := FindStorageArea( "World Bank" );
if(!worldbank)
SendSysMessage(chr,"World Bank Error"+ worldbank );
return;
endif
foreach nameacc in (ListAccounts())
acct := FindAccount(nameacc);
if( acct )
i := slots;
while( i )
charref := acct.getcharacter(i);
if( charref )
//conta o banco
var boxname := ("Bankbox of "+charref.serial);
var bankbox := FindRootItemInStorageArea( worldbank, boxname );
if( bankbox )
my_CountContainer( bankbox, countbank );
endif
//conta a backpack
if(charref.backpack)
my_CountContainer( charref.backpack, countbackpack );
endif
endif
i:=i-1;//i+=1;
endwhile
endif
endforeach
//contar mapa
foreach elem in (ListObjectsInBox( 0,0,-128, 6144,4096,127 ))//old pol
if(elem.isa(POLCLASS_CONTAINER))
my_CountContainer( elem, countcontainer );
elseif(elem.objtype == 0xEED)
countmap:=countmap+elem.amount;//countmap+=elem.amount;
endif
endforeach
SendSysMessage(chr,"Total Gold Banks: "+ countbank );
SendSysMessage(chr,"Total Gold Backpacks: "+ countbackpack );
SendSysMessage(chr,"Total Gold Map: "+ countmap );
SendSysMessage(chr,"Total Gold Container in Map: "+ countcontainer );
var total := Cstr(countbank+countbackpack+countmap+countcontainer);
for(i:=(len(total)-3);i>=1;i:=i-3)
total[i]:=total[i]+".";
endfor
SendSysMessage(chr,"Total Total XD Gold: "+ total );
endprogram
function my_CountContainer( container, byref count )
foreach elem in (EnumerateItemsInContainer( container ))
if(elem.objtype == 0xEED)
count:=count+elem.amount;//count+=elem.amount;
endif
endforeach
endfunction