Жесткий скриптинг Раздел для обсуждения готовых и тестируемых скриптов
Внимание! В разделе введена жесткая модерация, темы и сообщения публикуются только после проверки модераторами
25.07.2008, 00:00
#1
Пользователь
Регистрация: 26.10.2007
Сообщений: 43
Сказал Спасибо: 8
Имеет 21 спасибок в 8 сообщенях
FreedomEmulator
delphi Код:
//FreedomEmulator v1.0beta
//скрипт скрывающий нпс и\или игроков
//помогает снять нагрузку с несчастного клиента
//при убивании пакетов активность можно посмотреть в отдельном окне
//тестировался на la2c6 abyss 10alpha
//(c)metalFan
const name=( 'metalFan' ) ;
var
frm,frm2: TForm;
Button1,Button2,Button3,Button4,Button5: TButton;
m:TMemo;
box:TGroupBox;
i,k,RaceID,SexID,ClassID: integer ;
r1,r2,r3,s:boolean ;
CharName,FName,VictimName,race,sex,class ,message: string ;
Inventory: array[0 ..79 ,0 ..9 ] of integer ;
IdItem:real ;
zu:Tlabel;
procedure Init; //Вызывается при включении скрипта
begin
//формочка
frm2 := TForm.Create ( Application) ;
frm2.Caption := 'Activity (player\class\race\sex)' ;
frm2.BorderStyle := bsSizeable;
frm2.Position := poDesigned;
frm2.Width :=300 ;
frm2.Height :=200 ;
frm2.OnClose := @FormClose;
frm := TForm.Create ( nil ) ;
frm.Caption := 'FreedomEmulator by metalFan v1.0b' ;
frm.BorderStyle := bsDialog;
frm.Position := poScreenCenter;
frm.Width :=295 ;
frm.Height :=120 ;
frm.OnClose := @FormClose;
box:=TGroupBox.Create ( nil ) ;
box.parent :=frm;
box.Width :=273 ;
box.Height :=73 ;
box.Left := 8 ;
box.top := 8 ;
box.align :=alnone;
zu:=Tlabel.create ( nil ) ;
zu.parent :=frm;
zu.Width :=73 ;
zu.Height :=25 ;
zu.top :=52 ;
zu.left :=184 ;
zu.Caption :=( '(c)metalFan' ) ;
zu.Transparent := False ;
zu.Visible := True ;
m:=TMemo.Create ( frm2) ;
m.parent :=frm2;
m.align :=alClient;
m.ReadOnly :=true ;
m.ScrollBars :=ssBoth;
Button1 := TButton.Create ( frm) ;
Button1.Parent := frm;
Button1.Caption := '>.<' ;
Button1.Left := 16 ;
Button1.Top := 16 ;
Button1.onClick := @Action1;
Button1.OnMouseMove := @Button1MouseMove;
Button2 := TButton.Create ( frm) ;
Button2.Parent := frm;
Button2.Caption := '>.<' ;
Button2.Left := 96 ;
Button2.Top := 16 ;
Button2.onClick := @Action2;
Button2.OnMouseMove := @Button2MouseMove;
Button3 := TButton.Create ( frm) ;
Button3.Parent := frm;
Button3.Caption := '>.<' ;
Button3.Left := 16 ;
Button3.Top := 48 ;
Button3.onClick := @Action3;
Button3.OnMouseMove := @Button3MouseMove;
Button4 := TButton.Create ( frm) ;
Button4.Parent := frm;
Button4.Caption := '>.<' ;
Button4.Left := 96 ;
Button4.Top := 48 ;
Button4.onClick := @Action4;
Button4.OnMouseMove := @Button4MouseMove;
Button5 := TButton.Create ( frm) ;
Button5.Parent := frm;
Button5.Caption := '>.<' ;
Button5.Left := 176 ;
Button5.Top := 16 ;
Button5.onClick := @Action5;
Button5.OnMouseMove := @Button5MouseMove;
buf:=Hstr( '4A 00 00 00 00 0A 00 00 00 00 00 4B 00 69 00 6C 00 6C 00 20 00 50 00 6C 00 61 00 79 00 65 00 72 00 73 00 20 00 2D 00 20 00 41 04 3A 04 40 04 4B 04 32 04 30 04 35 04 42 04 20 00 32 04 41 04 35 04 45 04 20 00 3F 04 35 04 40 04 41 04 3E 04 3D 04 30 04 36 04 35 04 39 04 2C 00 20 00 4B 00 69 00 6C 00 6C 00 20 00 4E 00 70 00 63 00 20 00 2D 00 20 00 41 04 3A 04 40 04 4B 04 32 04 30 04 35 04 42 04 20 00 32 04 41 04 35 04 45 04 20 00 32 04 35 04 3D 04 34 04 3E 04 40 04 3E 04 32 04 20 00 3A 00 29 00 20 00 2C 00 20 00 43 00 75 00 72 00 65 00 20 00 2D 00 20 00 32 04 4B 04 3A 04 3B 04 4E 04 47 04 30 04 35 04 42 04 20 00 41 04 3A 04 40 04 4B 04 32 04 30 04 3B 04 3A 04 43 04 2C 00 20 00 34 04 3B 04 4F 04 20 00 3E 04 42 04 3E 04 31 04 40 04 30 04 36 04 35 04 3D 04 38 04 4F 04 20 00 32 04 41 04 35 04 45 04 20 00 32 04 3E 04 3A 04 40 04 43 04 33 04 20 00 32 04 3A 04 3B 04 4E 04 47 04 38 04 42 04 35 04 20 00 38 04 20 00 37 04 30 04 42 04 35 04 3C 04 20 00 32 04 4B 04 3A 04 3B 04 4E 04 47 04 38 04 42 04 35 04 20 00 32 04 38 04 34 04 35 04 3E 04 41 04 4A 04 35 04 3C 04 3A 04 43 04 20 00 40 04 3E 04 3B 04 38 04 3A 04 3E 04 32 04 20 00 28 00 41 04 29 00 6D 00 65 00 74 00 61 00 6C 00 46 00 61 00 6E 00 00 00' ) ;
SendToClientEx( name) ;
frm.show ;
frm2.Show ;
r1:=False ;
r2:=False ;
r3:=True ;
s:=true ;
end ;
procedure Free; //Вызывается при выключении скрипта
begin
button1.free ;
button2.free ;
button3.free ;
m.free ;
frm2.free ;
frm.free ;
end ;
//(c)NLObP скажи нет случайному закрытию формы
procedure FormClose( Sender: TObject ; var Action: TCloseAction) ;
begin
Action:=caNone;
end ;
procedure OnDisconnect( WithClient: Boolean ) ; //Вызывается при установке соединения
begin
NoFreeOnClientDisconnect;
NoFreeOnServerDisconnect;
end ;
procedure Button1MouseMove( Sender: TButton) ;
begin
Button1.Caption := 'Kill players' ;
end ;
procedure Button2MouseMove( Sender: TButton) ;
begin
Button2.Caption := 'Kill npc' ;
end ;
procedure Button3MouseMove( Sender: TButton) ;
begin
Button3.Caption := 'Stop filter' ;
end ;
procedure Button4MouseMove( Sender: TButton) ;
begin
Button4.Caption := 'Switch' ;
end ;
procedure Button5MouseMove( Sender: TButton) ;
begin
if s=true then
begin
Button5.Caption := 'Hide Monitor'
end else
begin
Button5.Caption := 'Show Monitor' ;
end ;
end ;
procedure Action1( Sender: TButton) ;
begin
r1:=True ;
buf:=Hstr( '4A 00 00 00 00 0A 00 00 00 00 00 23 04 31 04 38 04 32 04 30 04 4E 04 20 00 38 04 33 04 40 04 3E 04 3A 04 3E 04 32 04 00 00' ) ;
SendToClientEx( name) ;
end ;
procedure Action2 ( Sender: TButton) ;
begin
r2:=True ;
buf:=Hstr( '4A 00 00 00 00 0A 00 00 00 00 00 23 04 31 04 38 04 32 04 30 04 4E 04 20 00 32 04 35 04 3D 04 34 04 3E 04 40 04 3E 04 32 04 00 00' ) ;
SendToClientEx( name) ;
end ;
procedure Action3 ( Sender: TButton) ;
begin
Button3.Caption := 'Load...' ;
r1:=False ;
r2:=False ;
buf:=Hstr( 'CF' ) ;
SendToServerEx( name) ;
delay( 5000 ) ;
Button3.Caption := 'Done' ;
end ;
procedure Action4 ( Sender: TButton) ;
begin
if r3=true then
begin
r3:=False ;
Button4.Caption := 'Stop...' ;
m.Lines .Add ( 'Остановка монитора' ) ;
end
else
begin r3:=true ;
Button4.Caption := 'Start...' ;
m.Lines .Add ( 'Запуск монитора' ) ;
end ;
delay( 1000 ) ;
Button4.Caption := 'Done' ;
end ;
procedure Action5 ( Sender: TButton) ;
begin
if s=true then
begin
m.Lines .Add ( 'Сворачиваю окошко с живностью' ) ;
s:=false ;
m.Lines .Add ( '>.<' ) ;
delay( 1000 ) ;
frm2.hide ;
Button5.Caption := '>.<' ;
end else
begin
frm2.Show ;
s:=True ;
delay( 1000 ) ;
m.Lines .Add ( 'Разворачиваю окошко с живностью' ) ;
Button5.Caption := '>.<' ;
end ;
end ;
//(c)Shura1oplot инвентарь
procedure InventoryCreate;
var
i,k: integer ;
begin
for i:=0 to 79 do
if ( i<ReadH( 4 ) ) then begin
Inventory[i,0 ]:=ReadH( i*28 +6 ) ; // itemType1
Inventory[i,1 ]:=ReadD( i*28 +8 ) ; // ObjectId
Inventory[i,2 ]:=ReadD( i*28 +12 ) ; // ItemID
end else
for k:=0 to 9 do Inventory[i,k]:=0 ; // забиваем нулями
end ;
function GetInv( obj,up,down:integer ) : integer ;
var
i: integer ;
begin
for i:=0 to 79 do
if ( Inventory[i,up]=obj) then begin
Result:=Inventory[i,down];
exit ;
end ;
Result:=-1 ;
end ;
begin
if ( FromServer) and ( ConnectName=name) then
case pck[1 ] of
#$03 : begin
if r1=true then
begin
pck:='' ;
end ;
end ;
#$16 : begin
if r2=true then
begin
pck:='' ;
end ;
end ;
end ;
if FromServer and ( pck[1 ]=#$03 ) and r3=true then
begin
k:=22 ;
FName:=ReadS( k) ;
RaceID:=ReadD( k) ;
SexID:=ReadD( k) ;
ClassID:=ReadD( k) ;
case RaceID of
0 :race:='Human' ;
1 :race:='Elf' ;
2 :race:='Dark Elf' ;
3 :race:='Оrc' ;
4 :race:='Dwarf' ;
end ;
case SexID of
0 :sex:='Male' ;
1 :sex:='Female' ;
end ;
case ClassID of
0 :class :='Fighter' ;
1 :class :='Warrior' ;
2 :class :='Gladiator' ;
88 :class :='Duelist' ;
3 :class :='Warlord' ;
89 :class :='Dreadnought' ;
4 :class :='Knight' ;
5 :class :='Paladin' ;
90 :class :='PhoenixKnight' ;
6 :class :='DarkAvenger' ;
91 :class :='HellKnight' ;
7 :class :='Rogue' ;
8 :class :='TreasureHunter' ;
93 :class :='Adventurer' ;
9 :class :='Hawkeye' ;
92 :class :='Sagittarius' ;
10 :class :='Mage' ;
11 :class :='Wizard' ;
12 :class :='Sorceror' ;
94 :class :='Archmage' ;
13 :class :='Necromancer' ;
95 :class :='Soultaker' ;
14 :class :='Warlock' ;
96 :class :='ArcanaLord' ;
15 :class :='Cleric' ;
16 :class :='Bishop' ;
97 :class :='Cardinal' ;
17 :class :='Prophet' ;
98 :class :='Hierophant' ;
18 :class :='Fighter' ;
19 :class :='Knight' ;
20 :class :='TempleKnight' ;
99 :class :='EvaTemplar' ;
21 :class :='SwordSinger' ;
22 :class :='Scout' ;
23 :class :='PlainsWalker' ;
101 :class :='WindRider' ;
24 :class :='SilverRanger' ;
102 :class :='MoonlightSentinel' ;
25 :class :='Mage' ;
26 :class :='Wizard' ;
27 :class :='SpellSinger' ;
103 :class :='MysticMuse' ;
28 :class :='ElementalSummoner' ;
104 :class :='ElementalMaster' ;
29 :class :='Oracle' ;
30 :class :='Elder' ;
105 :class :='EvaSaint' ;
31 :class :='Fighter' ;
32 :class :='PaulusKnight' ;
33 :class :='ShillienKnight' ;
106 :class :='ShillienTemplar' ;
34 :class :='BladeDancer' ;
107 :class :='SpectralDancer' ;
35 :class :='Assassin' ;
36 :class :='AbyssWalker' ;
108 :class :='GhostHunter' ;
37 :class :='PhantomRanger' ;
109 :class :='GhostSentinel' ;
38 :class :='Mage' ;
39 :class :='DarkWizard' ;
40 :class :='Spellhowler' ;
110 :class :='StormScreamer' ;
41 :class :='PhantomSummoner' ;
111 :class :='SpectralMaster' ;
42 :class :='ShillienOracle' ;
43 :class :='ShillienElder' ;
112 :class :='ShillienSaint' ;
44 :class :='Fighter' ;
45 :class :='Raider' ;
46 :class :='Destroyer' ;
113 :class :='Titan' ;
47 :class :='Monk' ;
48 :class :='Tyrant' ;
114 :class :='GrandKhauatari' ;
49 :class :='Mage' ;
50 :class :='Shaman' ;
51 :class :='Overlord' ;
115 :class :='Dominator' ;
52 :class :='Warcryer' ;
116 :class :='Doomcryer' ;
53 :class :='Fighter' ;
54 :class :='Scavenger' ;
55 :class :='BountyHunter' ;
117 :class :='FortuneSeeker' ;
56 :class :='Artisan' ;
57 :class :='Warsmith' ;
118 :class :='Maestro' ;
end ;
Message:=( class + ' |' +race+ ' |' +sex+ ' |' ) ;
m.Lines .Add ( FName+' | ' +Message) ;
end ;
end .
end .
end .
в общем идете вы в гиран мило купить бутылки у вендора на сервере где онлайн под пару тысяч закатил, а там...
лаги...
всюду гномы трейдеры и ктото бегает в общем очень плохо ващему слабому компьютеру...
но этот скрипт если не полностью, (MoveToPawn, MoveToLocation ни как не убить =\ хотя...) то облягчит вам жизнь, он скроет всех ненужных игроков и\или вендоров
функции можно включать\отключать в общем методом тыка думаю разберетесь
За это сообщение metalFan нажился 7 спасибками от:
25.07.2008, 00:59
#2
Пользователь
Регистрация: 26.10.2007
Сообщений: 43
Сказал Спасибо: 8
Имеет 21 спасибок в 8 сообщенях
ой процедуру inventoryvreate и getinv мона удалить, это ненужная часть кода из предыдущей версии, где чтобы игроки появились надо было использовать сое
25.07.2008, 02:10
#3
Новичок
Регистрация: 07.05.2008
Сообщений: 15
Сказал Спасибо: 1
Имеет 0 спасибок в 0 сообщенях
еще бы стрелы спрятать а то бывает бегаешь а их как грязи
25.07.2008, 14:46
#4
Пользователь
Регистрация: 26.10.2007
Сообщений: 43
Сказал Спасибо: 8
Имеет 21 спасибок в 8 сообщенях
delphi Код:
procedure Init; //Вызывается при включении скрипта
begin
delphi Код:
[b]end;[/b]
[b]procedure Free; //Вызывается при выключении скрипта
begin[/b]
[b]end;[/b]
[b]procedure OnConnect( WithClient: Boolean ) ; //Вызывается при установке соединения
begin[/b]
[b]end;[/b]
[b]
procedure OnDisconnect( WithClient: Boolean ) ; //Вызывается при установке соединения
begin
NoFreeOnClientDisconnect;
NoFreeOnServerDisconnect;
end ;
begin
if ( FromServer) then
begin
if pck[1 ]=#$03 then
pck:='' ;
end ;
end .
[/b]
Faust , сделаю, ток лень щас
вот первая версия скрипта
22.08.2008, 23:57
#5
Новичок
Регистрация: 21.12.2007
Сообщений: 10
Сказал Спасибо: 7
Имеет 1 спасибку в 1 сообщении
на Абуссе альфе запускаю, надпись в чат приходит "убиваю игроков" и т.п. но ничего не происходит. В окне монитора игроки показываются. Но не исчезает никто ( .
30.11.2008, 18:45
#6
Пользователь
Регистрация: 26.10.2007
Сообщений: 43
Сказал Спасибо: 8
Имеет 21 спасибок в 8 сообщенях
jestb , ты должен включить скрипт до того как войдешь в город, хотя на абуссе не играю давно, мб там что то изменилось
12.01.2009, 07:48
#7
Местный
Регистрация: 03.05.2008
Адрес: Ростов-на-Дону
Сообщений: 214
Сказал Спасибо: 19
Имеет 24 спасибок в 18 сообщенях
Вот моя заготовка на невидимость стрел дропаюшихся и появляющихся в видимости
Код:
procedure Init; //Вызывается при включении скрипта
begin
end;
procedure Free; //Вызывается при выключении скрипта
begin
end;
const
Excludes=[1344,1873,1868,5495,5528]; // id предметов
begin
if FromServer and (((pck[1]=#$0C) and (ReadD(10) in Excludes))
or ((pck[1]=#$0B) and (ReadD(6) in Excludes))) then pck:='';
end.
Последний раз редактировалось Sashafaq, 30.01.2009 в 13:14 .
За это сообщение Sashafaq нажился 2 спасибками от:
Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
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
Вы хотите чувствовать себя в безопасности? чоп Белган обеспечит её!