Программинг Форум для тем связанных с программированием
20.08.2008, 05:54
#1
Новичок
Регистрация: 01.02.2008
Сообщений: 7
Сказал Спасибо: 0
Имеет 0 спасибок в 0 сообщенях
Скрипт на аугментацию
delphi Код:
под T0 скрипт но ошибка при проверки синтаксиса
const
Name='Mamy' ; // ник
ItemID=6608 ; // пуха
LifeID=8762 ; // лайфстон
GemsID=2131 ; // гемстон
GemsAmount=25 ; //кол-во гемов
max =100 ; // инвентарь
var
LifeBase:array[1 ..max ] of integer ;
ColvoLife,ColvoGems,Life,Item,Gems,SocialID,augid:integer ;
procedure Init;
var i:integer ;
begin
buf:=hstr( '19' ) ;
SendToServerEx( Name) ;
end ;
procedure Free;
var i:integer ;
begin
for i:=1 to max do
LifeBase[i]:=0 ;
end ;
function StrToHex( packet: string ) :string ;
var
i:integer ;
tmp:byte ;
function ByteToHex( b: byte ) : Char ;
begin
if b<10 then result:=chr ( b+$30 )
else result:=chr ( b+$37 ) ;
end ;
begin
result:='' ;
for i:=1 to length ( packet) do begin
tmp:=ord ( packet[i]) div 16 ;
result:=result+ByteToHex( tmp) ;
tmp:=ord ( packet[i]) - tmp*16 ;
result:=result+ByteToHex( tmp) +' ' ;
end ;
end ;
function inttohex ( n:integer ) :string ;
var i:integer ;
t:string ;
a:array[0 ..15 ] of char ;
begin
a[0 ]:='0' ;
a[1 ]:='1' ;
a[2 ]:='2' ;
a[3 ]:='3' ;
a[4 ]:='4' ;
a[5 ]:='5' ;
a[6 ]:='6' ;
a[7 ]:='7' ;
a[8 ]:='8' ;
a[9 ]:='9' ;
a[10 ]:='A' ;
a[11 ]:='B' ;
a[12 ]:='C' ;
a[13 ]:='D' ;
a[14 ]:='E' ;
a[15 ]:='F' ;
result:='' ;
t:='' ;
i:=0 ;
while n<>0 do begin
if ( i mod 2 =0 ) and ( i>0 ) then begin
result:=result+t+' ' ;
t:='' ;
end ;
t:=a[n mod 16 ]+t;
n:=n div 16 ;
inc ( i) ;
end ;
result:=result+t;
end ;
procedure Say;
var i:integer ;
s:string ;
begin
s:='<tr><td>LS=' +inttostr ( ColvoLife) +' (*' +inttostr ( GemsAmount) +'=' +inttostr ( ColvoLife*GemsAmount) +')</td></tr>' ;
s:=s+'<tr><td>Gems=' +inttostr ( ColvoGems) +' (/' +inttostr ( GemsAmount) +'=' +inttostr ( ColvoGems div GemsAmount) +')</td></tr>' ;
s:=s+'<tr><td>---</td></tr>' ;
if Item=0 then
s:=s+'<tr><td>No Weapon</td></tr>'
else if augid>0 then
s:=s+'<tr><td>Augmented (' +inttohex ( augid) +')</td></tr>'
else
s:=s+'<tr><td>Not augmented</td></tr>' ;
buf:=hstr( '19 01 00 00 00' ) ;
WriteS( '<html><body><br><table width=100%>' +s+'</table><br><br><br><br><br><br>' +
'"Social Yes" - Cancel Augment(if augmented) and Augment(if you have enough gems and LSs)<br>' +
'"Social No" - Show this help<br><br>' +
'Sometimes client dont get packet InventoryUpdate and you see "Not augment" when weapon is augmented.' +
' Simply press [Tab] twice or wear weapon.<br><br>' +
'(c) raid aka Mamy</body></html>' ) ;
// '(c) raid aka Mamy<br>'+strtohex(pck)+'</body></html>');
WriteD( 0 ) ;
SendToClientEx( Name) ;
end ;
procedure CreateItemBase;
var i,ss,j,ObjID,ItmID,ListCount,count,aug:integer ;
begin
Item:=0 ;
ss:=1 ;
j:=4 ;
ListCount:=ReadH( j) ;
if ListCount>max then ListCount:=max ;
j:=8 ;
for i:=1 to ListCount do begin
ObjID:=ReadD( j) ;
ItmID:=ReadD( j) ;
Count:=ReadD( j) ;
j:=j+14 ;
aug:=ReadD( j) ;
case ItmID of
LifeID: begin
LifeBase[ss]:=ObjID;
inc ( ss) ;
end ;
ItemID: begin
Item:=ObjID;
augid:=aug;
end ;
GemsID: begin
Gems:=ObjID;
ColvoGems:=Count;
end ;
end ;
j:=j+6 ;
end ;
ColvoLife:=ss-1 ;
Say;
end ;
procedure UpdateItemBase;
var i,ii,j,ObjID,ItmID,ListCount,Count,UpdType,aug: integer ;
begin
ListCount:=ReadH( 2 ) ;
j:=4 ;
for i:=1 to ListCount do begin
UpdType:=ReadH( j) ;
j:=j+2 ;
ObjID:=ReadD( j) ;
ItmID:=ReadD( j) ;
Count:=ReadD( j) ;
j:=j+14 ;
aug:=ReadD( j) ;
case UpdType of
1 :case ItmID of
ItemID: begin
Item:=ObjID;
augid:=aug;
end ;
LifeID: begin
for ii:=1 to max do
if LifeBase[ii]=0 then begin
LifeBase[ii]:=ObjID;
ColvoLife:=ColvoLife+1 ;
break ;
end ;
end ;
GemsID: begin
Gems:=ObjID;
ColvoGems:=Count;
end ;
end ;
2 :case ItmID of
ItemID: begin
Item:=ObjID;
augid:=aug;
end ;
GemsID: begin
Gems:=ObjID;
ColvoGems:=Count;
end ;
end ;
3 :case ItmID of
ItemID:
Item:=0 ;
GemsID: begin
Gems:=ObjID;
ColvoGems:=Count;
end ;
LifeID: begin
for ii:=1 to max do
if LifeBase[ii]=ObjID then begin
LifeBase[ii]:=0 ;
ColvoLife:=ColvoLife-1 ;
end ;
end ;
end ;
end ;
j:=j+6 ;
end ;
Say;
end ;
function GetNextLife: integer ;
var i:integer ;
begin
Result:=-1 ;
for i:=1 to max do begin
if ( LifeBase[i]<>0 ) then begin
Result:=LifeBase[i];
exit ;
end ;
end ;
end ;
procedure Augment;
begin
buf:=hstr( 'D0 29 00' ) ;
WriteD( Item) ;
SendToServerEx( Name) ;
delay( 100 ) ;
buf:=hstr( 'D0 2A 00' ) ;
WriteD( Item) ;
WriteD( Life) ;
SendToServerEx( Name) ;
delay( 100 ) ;
buf:=hstr( 'D0 2B 00' ) ;
WriteD( Item) ;
WriteD( Life) ;
WriteD( Gems) ;
WriteD( GemsAmount) ;
SendToServerEx( Name) ;
delay( 100 ) ;
buf:=hstr( 'D0 2C 00' ) ;
WriteD( Item) ;
WriteD( Life) ;
WriteD( Gems) ;
WriteD( GemsAmount) ;
SendToServerEx( Name) ;
end ;
procedure DisAugment;
begin
buf:=hstr( 'D0 2D 00' ) ;
WriteD( Item) ;
SendToServerEx( Name) ;
buf:=hstr( 'D0 2E 00' ) ;
WriteD( Item) ;
SendToServerEx( Name) ;
end ;
begin
if pck='' then exit ;
if FromClient and ( ConnectName=Name) and ( pck[1 ]=#$34 ) then begin
SocialID:=ReadD( 2 ) ;
pck:='' ;
case SocialID of
7 : begin
buf:=hstr( 'B0 2A A0 00 00 80 84 1E 00 0A 00 00 00 00 00 00 00 00 00 00 00' ) ;
SendToServerEx( Name) ;
buf:=hstr( 'B0 29 A0 00 00 40 0D 03 00 FA 00 00 00 00 00 00 00 00 00 00' ) ;
SendToServerEx( Name) ;
exit ;
end ;
6 : begin
if augid>0 then begin
DisAugment;
delay( 300 ) ;
end ;
Life:=GetNextLife;
if ( Life=-1 ) or ( ColvoGems<GemsAmount) or ( ColvoLife<1 ) then
exit ;
Augment;
exit ;
end ;
5 : begin
Say;
exit ;
end ;
end ;
end ;
if FromServer then
case pck[1 ] of
#$34 : CreateItemBase;
#$21 : UpdateItemBase;
end ;
end .
в phx пишет Ошибка: Identifier redeclared: 'StrToHex'
Последний раз редактировалось QaK, 20.08.2008 в 07:10 .
20.08.2008, 07:12
#2
Рыцарь
Регистрация: 28.09.2007
Сообщений: 1,558
Сказал Спасибо: 71
Имеет 351 спасибок в 244 сообщенях
Во-первых, научись правильно код оформлять.Во-вторых, скачай последнюю версию пнх от NLObP.
20.08.2008, 14:37
#3
Admin!
Регистрация: 04.08.2007
Сообщений: 2,360
Сказал Спасибо: 113
Имеет 1,566 спасибок в 651 сообщенях
Identifier redeclared означает что StrToHex уже есть в программе а ты её снова определяеш...
__________________
Я здесь практически не появляюсь!, Skype - ikskor
20.08.2008, 14:57
#4
Новичок
Регистрация: 01.02.2008
Сообщений: 7
Сказал Спасибо: 0
Имеет 0 спасибок в 0 сообщенях
Цитата:
Сообщение от
QaK
Во-первых, научись правильно код оформлять.Во-вторых, скачай последнюю версию пнх от NLObP.
Я ей и запускал l2phx3214_by_NLObP
Добавлено через 35 секунд
Цитата:
Сообщение от
xkor
Identifier redeclared означает что StrToHex уже есть в программе а ты её снова определяеш...
xkor я в паскале не шарю помоги подправить скрипт)
Последний раз редактировалось 4uTePoK, 20.08.2008 в 14:57 .
Причина: Добавлено сообщение
20.08.2008, 16:08
#5
Местный
Регистрация: 29.04.2008
Сообщений: 830
Сказал Спасибо: 80
Имеет 230 спасибок в 169 сообщенях
В последних версия уже изначально определена функция StrToHex, так что смело можно убирать ее оттуда. Но вообще разве она там используется? Единственное упоминание о ней в строке
delphi Код:
// '(c) raid aka Mamy<br>'+strtohex(pck)+'</body></html>');
20.08.2008, 16:29
#6
Новичок
Регистрация: 01.02.2008
Сообщений: 7
Сказал Спасибо: 0
Имеет 0 спасибок в 0 сообщенях
StringToHex
function StrToHex(packet: string):string; здесь зделал StringToHex скрипт не ругаеться но когда включаю в phx
http://coderx.ru/attachment.php?atta...1&d=1219231728
20.08.2008, 16:29
#7
Новичок
Регистрация: 01.02.2008
Сообщений: 7
Сказал Спасибо: 0
Имеет 0 спасибок в 0 сообщенях
в чём проблема?
20.08.2008, 18:04
#8
Местный
Регистрация: 29.04.2008
Сообщений: 830
Сказал Спасибо: 80
Имеет 230 спасибок в 169 сообщенях
Проблема хотя бы в том, что клиент не запущен, судя по инфе из скрина. Запускается сначала пнх, а только потом - клиент
Последний раз редактировалось Breadfan, 20.08.2008 в 18:07 .
20.08.2008, 18:45
#9
Новичок
Регистрация: 01.02.2008
Сообщений: 7
Сказал Спасибо: 0
Имеет 0 спасибок в 0 сообщенях
Цитата:
Сообщение от
Breadfan
Проблема хотя бы в том, что клиент не запущен, судя по инфе из скрина. Запускается сначала пнх, а только потом - клиент
Окей сейчас проверю отпишу
Добавлено через 11 минут
Серовно при запуске в игре такая же ошибка
Последний раз редактировалось 4uTePoK, 20.08.2008 в 18:45 .
Причина: Добавлено сообщение
20.08.2008, 20:20
#10
Местный
Регистрация: 29.04.2008
Сообщений: 830
Сказал Спасибо: 80
Имеет 230 спасибок в 169 сообщенях
1.Качай версию 3.3.х
2.Какие хроники
3.Есть отдельная тема "Аугментация в одно нажатие"
Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
Часовой пояс GMT +4, время: 03:08 .
vBulletin style designed by
MSC Team .
Powered by vBulletin® Version 3.6.11
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод:
zCarot
Вы хотите чувствовать себя в безопасности? чоп Белган обеспечит её!