PDA

Просмотр полной версии : Cтатистика


goodvin1709
20.02.2011, 18:08
Ну как я уже стремительно учусь етому всему скриптописанию
неспал всю ночь уже думал как и что уже попробывать написать..
Но возникла проблема я зделал автозаточку + скоко адены выводило в лог + скоко колов выводило + ну и канешно когда заточило +7 в игре ето писалось в логе но етого стало мало((
я захотел зделать статистику скоко заточило +7 например
Я поймал пакет SystemMassage он от сервера 64 и зделал так..
const
Nick = 'NameAlreadyExis' ;
begin
if Fromservet and (connectname=Nick) and (pck[1]=#$64) then ckoko;
end.

понел нада написать процедуру на подсчет
Procedute skoko;
begin
a:=0; //точнуло на 7
b:=0; //точнуло на 8
c:=0; //точнуло на 9
и тут я застряг
бо приходят пакеты
+1
64 3F 00 00 00 02 00 00 00 01 00 00 00 01 00 00 00 03 00 00 00 87 16 00 00
+2
64 3F 00 00 00 02 00 00 00 01 00 00 00 02 00 00 00 03 00 00 00 87 16 00 00
+3
64 3F 00 00 00 02 00 00 00 01 00 00 00 03 00 00 00 03 00 00 00 87 16 00 00
+4
64 3F 00 00 00 02 00 00 00 01 00 00 00 04 00 00 00 03 00 00 00 87 16 00 00
как зделать при приходе пакета на +7 оно A добавляло +1
??

Добавлено через 3 минуты
ГГ за сутки 3 темки
в 9 утра нечего вобще непонимал в етом Но в 4 ночи чуть понел)

Добавлено через 11 минут
я именно непонел при приходе пакета оно

begin
sendMsg('Заточило +7);
и делало
a+1
и выводило ('1 как суму');
end;

dyh9l
20.02.2011, 19:19
кусок моей статистики, грызи.
if FromServer and (connectname=Name) and (pck[1]=#$64) then
case pck[2] of
#$3F:
case pck[14] of
#$03: begin inc(aa); s3na4.caption:=vartostr(aa); sss3na4.caption:=vartostr(Round((aa/((aa+aaa)/100)))); end;
#$04: begin inc(bb); s4na5.caption:=vartostr(bb); sss4na5.caption:=vartostr(Round((bb/((bb+bbb)/100)))); end;
#$05: begin inc(cc); s5na6.caption:=vartostr(cc); sss5na6.caption:=vartostr(Round((cc/((cc+ccc)/100)))); end;
#$06: begin inc(dd); s6na7.caption:=vartostr(dd); sss6na7.caption:=vartostr(Round((dd/((dd+ddd)/100)))); end;
#$07: begin inc(ee); s7na8.caption:=vartostr(ee); sss7na8.caption:=vartostr(Round((ee/((ee+eee)/100)))); end;
#$08: begin inc(ff); s8na9.caption:=vartostr(ff); sss8na9.caption:=vartostr(Round((ff/((ff+fff)/100)))); end;
#$09: begin inc(gg); s9na10.caption:=vartostr(gg); sss9na10.caption:=vartostr(Round((gg/((gg+ggg)/100)))); end;
#$0A: begin inc(hh); s10na11.caption:=vartostr(hh); sss10na11.caption:=vartostr(Round((hh/((hh+hhh)/100)))); end;
#$0B: begin inc(qq); s11na12.caption:=vartostr(qq); sss11na12.caption:=vartostr(Round((qq/((qq+qqq)/100)))); end;
#$0C: begin inc(ww); s12na13.caption:=vartostr(ww); sss12na13.caption:=vartostr(Round((ww/((ww+www)/100)))); end;
#$0D: begin inc(rr); s13na14.caption:=vartostr(rr); sss13na14.caption:=vartostr(Round((rr/((rr+rrr)/100)))); end;
#$0E: begin inc(tt); s14na15.caption:=vartostr(tt); sss14na15.caption:=vartostr(Round((tt/((tt+ttt)/100)))); end;
#$0F: begin inc(yy); s15na16.caption:=vartostr(yy); sss15na16.caption:=vartostr(Round((yy/((yy+yyy)/100)))); end;
#$10: begin inc(uu); s16na17.caption:=vartostr(uu); sss16na17.caption:=vartostr(Round((uu/((uu+uuu)/100)))); end;
#$11: begin inc(oo); s17na18.caption:=vartostr(oo); sss17na18.caption:=vartostr(Round((oo/((oo+ooo)/100)))); end;
#$12: begin inc(pp); s18na19.caption:=vartostr(pp); sss18na19.caption:=vartostr(Round((pp/((pp+ppp)/100)))); end;
#$13: begin inc(ss); s19na20.caption:=vartostr(ss); sss19na20.caption:=vartostr(Round((ss/((ss+sss)/100)))); end;
end;
#$41:
case pck[14] of
#$03: begin inc(aaa); ss3na4.caption:=vartostr(aaa); sss3na4.caption:=vartostr(Round((aa/((aa+aaa)/100)))); end;
#$04: begin inc(bbb); ss4na5.caption:=vartostr(bbb); sss4na5.caption:=vartostr(Round((bb/((bb+bbb)/100)))); end;
#$05: begin inc(ccc); ss5na6.caption:=vartostr(ccc); sss5na6.caption:=vartostr(Round((cc/((cc+ccc)/100)))); end;
#$06: begin inc(ddd); ss6na7.caption:=vartostr(ddd); sss6na7.caption:=vartostr(Round((dd/((dd+ddd)/100)))); end;
#$07: begin inc(eee); ss7na8.caption:=vartostr(eee); sss7na8.caption:=vartostr(Round((ee/((ee+eee)/100)))); end;
#$08: begin inc(fff); ss8na9.caption:=vartostr(fff); sss8na9.caption:=vartostr(Round((ff/((ff+fff)/100)))); end;
#$09: begin inc(ggg); ss9na10.caption:=vartostr(ggg); sss9na10.caption:=vartostr(Round((gg/((gg+ggg)/100)))); end;
#$0A: begin inc(hhh); ss10na11.caption:=vartostr(hhh); sss10na11.caption:=vartostr(Round((hh/((hh+hhh)/100)))); end;
#$0B: begin inc(qqq); ss11na12.caption:=vartostr(qqq); sss11na12.caption:=vartostr(Round((qq/((qq+qqq)/100)))); end;
#$0C: begin inc(www); ss12na13.caption:=vartostr(www); sss12na13.caption:=vartostr(Round((ww/((ww+www)/100)))); end;
#$0D: begin inc(rrr); ss13na14.caption:=vartostr(rrr); sss13na14.caption:=vartostr(Round((rr/((rr+rrr)/100)))); end;
#$0E: begin inc(ttt); ss14na15.caption:=vartostr(ttt); sss14na15.caption:=vartostr(Round((tt/((tt+ttt)/100)))); end;
#$0F: begin inc(yyy); ss15na16.caption:=vartostr(yyy); sss15na16.caption:=vartostr(Round((yy/((yy+yyy)/100)))); end;
#$10: begin inc(uuu); ss16na17.caption:=vartostr(uuu); sss16na17.caption:=vartostr(Round((uu/((uu+uuu)/100)))); end;
#$11: begin inc(ooo); ss17na18.caption:=vartostr(ooo); sss17na18.caption:=vartostr(Round((oo/((oo+ooo)/100)))); end;
#$12: begin inc(ppp); ss18na19.caption:=vartostr(ppp); sss18na19.caption:=vartostr(Round((pp/((pp+ppp)/100)))); end;
#$13: begin inc(sss); ss19na20.caption:=vartostr(sss); sss19na20.caption:=vartostr(Round((ss/((ss+sss)/100)))); end;
end;
end;

goodvin1709
20.02.2011, 20:04
блеа вобще нечего непонимаю но догади есть

Nickers
20.02.2011, 20:43
dyh9l, Боже, кажется у меня мозг лопнул :(
Я конешн понял что весь прикол в Var'е, который на 3мб памяти и более 5к переменных :D, но все же s3na4.caption че за нах?
То есть есть еще другие разделы в этих рекордах??)) (Кроме .caption)
Мне кажется я бы смог сократить твой Var через Массивы...

И на что эта статистика?

dyh9l
20.02.2011, 21:10
Nickers, это все мои лабелы, которые ведут статистика переломанного и точнутого шмота и так же % заточки с 3 на 4 и т.д.)

goodvin1709
20.02.2011, 23:38
Белать ОТо грузиш епа Ето очень для меня трудно)

Добавлено через 4 минуты
а есть какойто способ полегче зделать токо з 7 на 8

dyh9l
20.02.2011, 23:45
Ловишь пакет который "а есть какойто способ полегче зделать токо з 7 на 8" потом процедурку если от сервера пришел этот пакет то увеличиваем переменную a на 1 Inc(a) а потом выводим "а", т.к. ты выводишь в лог то sendmsg(vartostr(a));

goodvin1709
21.02.2011, 19:41
я именно немогу зделать переадресацыю когда пакет приходит(

Добавлено через 27 минут
я понел моно вроде так

const = 'Name' ;
var
a : integer
begin
a:=1
if FromServer and (ConnectName='Name') and (pck = HStr('64 3F 00 00 00 02 00 00 00 01 00 00 00 01 00 00 00 03 00 00 00 87 16 00 00') then
begin
b:=A+1 ;
sendmsg('Заточкено в суме з +7 на +8');
sendmsg(vartostr(b));
end;
end;
end.

Добавлено через 19 часов 2 минуты
begin
if FromClient and (ConnectName='ник')
and (pck=HStr('пакет который пришел з инфой заточки')) then
begin
Вот тут я незнаю как зделать))
end;
end.

вот моно както так

Добавлено через 5 минут
dyh9l, а ты был прав если по паскалю то можно
Inc(x)
зделать
x:=x+1;

dyh9l
21.02.2011, 20:16
Nickers, моя автоточка работает без клиента л2, поэтому я использую форму для просмотра результата )

goodvin1709
21.02.2011, 20:30
ВСЕ ЗДЕЛАЛ
const
nick = 'NameAlreadyExis';
var
A : Integer ;
Procedure init ;
begin
a:=0;
end;

begin
if (fromServer) and (connectname=nick) and (pck[1]=#$F3) then
begin
if (fromServer) and (connectname=nick) and (pck[1]=#$F3) and (pck = HStr('F3 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00')) then
begin
inc(a,1);
SendMSG('Пришло пакетов..') ;
delay(500) ;
SendMSG(vartostr(A));
end ; ;
end ;
end.
вот подсчет) токо других пакетов ну вам нада если что тут основа

Добавлено через 12 минут
уже чуть понимаю в ЕТОМ))))))))

wimax
21.02.2011, 20:47
delay(500) ; а в пх ета функция норм работает?

dyh9l
21.02.2011, 20:51
Да, но программа залагивает на пол секунды и прием/передача пакетов заблокирована)

wimax
21.02.2011, 21:49
и что будет лучше использовать таймеры делай или сквозной проход таймера ?

supernewbie
21.02.2011, 22:10
не знаю, лучше юзать плагины