Miałem iść spać, bo do roboty trzeba wstać, ale zdaje się, że noc nieco mi się przeciągnie.
Po pierwsze, komenda /skeconomy jest bardzo brzydko napisana, bo zostały w niej powielone warunki sprawdzające czy argumenty zostały podane. Można przecież ją skrócić do następującej postaci:
if arg 1 or arg 2 or arg 3 is not set:
send "..."
stop
if arg 2 is "add":
# [...]
else if arg 2 is "set":
# [...]
else if arg 2 is "remove":
# [...]
O wiele ładniej, nieprawdaż? Zaskoczę Was, bo można jeszcze prościej to załatwić za pomocą pola 'usage' w komendzie i usunięcia opcjonalności argumentów (nawiasy kwadratowe). Wtedy pierwszy warunek staje się całkowicie zbędny.
Po drugie, komenda /transfermoney posiada ten sam problem z niepotrzebnie opcjonalnymi argumentami, których istnienie i tak dalej jest sprawdzane w kodzie. Co więcej, warunki w linijkach 46 i 59 nie mają żadnego sensu, ponieważ same typy argumentów wymagają aby podany gracz był na serwerze (typ 'player' oznacza gracza obecnego na serwerze) i żeby podany drugi argument był liczbą.
Po trzecie, sortowanie potencjalnie dużej listy na każde zawołanie gracza jest bardzo nieodpowiedzialne i generuje niepotrzebne obciążenie dla serwera. Lepszym rozwiązaniem będzie skorzystanie z jakiegoś periodicala, który okresowo sortowałby tę listę ze stanami kont graczy i tworzył na ich podstawie toplistę zapisywaną do jakiejś listy globalnej. Jej zawartość byłaby następnie pobierana przez komendę kiedy to tylko potrzebne.
Zalecam sprawdzić skrypt PyraTop REBORN (autorstwa mojego dobrego przyjaciela @PanMaruda), który można znaleźć na tym forum. Służy on właśnie do tworzenia toplisty na podstawie dowolnej listy zmiennych.
Pozdrawiam.