Скриптинг Форум посвещенный созданию скриптов для L2PacketHack
13.03.2009, 14:46
#1
Рыцарь
Регистрация: 03.03.2009
Сообщений: 773
Сказал Спасибо: 361
Имеет 300 спасибок в 168 сообщенях
ПРОФА над чаром
Здравствуйте помогите переделать скрипт чтобы над чаром писалась его профа .Сам скрипт:
№ 1
delphi Код:
var
m:TMemo;
frm:TForm;
ClassID, i,j,k, ms,ps,mc,cc: Integer ;
Message, Name, Class ,t: String ;
//......................................
//***************************************************************
procedure Init;
begin
//ShowTab;
frm := TForm.Create ( nil ) ;
frm.Caption := 'Char Info!' ;
frm.BorderStyle := bsSizeable;
frm.Position := poScreenCenter;
frm.Width :=320 ;
frm.Height :=600 ;
m:=TMemo.Create ( frm) ;
m.parent :=frm;
m.align :=alClient;
m.ReadOnly :=true ;
m.ScrollBars :=ssBoth;
frm.Show ;
end ;
//......................................
//***************************************************************
procedure Free;
begin
m.Free ;
frm.Free ;
//HideTab;
end ;
begin
if FromServer and ( pck[1 ]=#$03 ) then begin
{CharInfo:
22=s(Name)
i=i+116
i=d(MSpeed)
i=d(PSpeed)
i=i+84
i=s(Title)
i=i+27
i=h(cubics:For.0001)
i=i+cubics*2
i=i+8
i=d(classID:Get.ClassID)
i=d(maxCP)
i=d(curCP)
}
i:=22 ;
Name:=ReadS( i) ;
i:=i+116 ;
ms:=readD( i) ;
ps:=readD( i) ;
i:=i+84 ;
j:=i;
t:=reads( i) ;
k:=i;
i:=i+27 ;
mc:=ReadH( i) ;
i:=i+mc*2 +8 ;
classid:=readD( i) ;
mc:=readD( i) ;
cc:=readD( i) ;
case ClassID of
88 :class :='hDT' ;
89 :class :='hDN' ;
90 :class :='hPhK' ;
91 :class :='hHK' ;
93 :class :='hAD' ;
92 :class :='hSG' ;
94 :class :='hAM' ;
95 :class :='hST' ;
96 :class :='hAL' ;
97 :class :='hCD' ;
98 :class :='hHPh' ;
99 :class :='eET' ;
101 :class :='eWR' ;
102 :class :='eMlS' ;
103 :class :='eMM' ;
104 :class :='eEM' ;
105 :class :='eEvS' ;
33 :class :='dShK' ;
106 :class :='dShT' ;
107 :class :='dSD' ;
108 :class :='dGH' ;
37 :class :='dPhR' ;
109 :class :='dGS' ;
110 :class :='dStS' ;
111 :class :='dSM' ;
112 :class :='dShS' ;
113 :class :='oTitan' ;
114 :class :='oGK' ;
115 :class :='oDM' ;
116 :class :='oDC' ;
117 :class :='gFS' ;
118 :class :='gMO' ;
end ;
m.Lines .Add ( Name+': "' +t+'" ' +class +', cp:' +inttostr ( ms) +'/' +inttostr ( ps) +', cp:' +inttostr ( mc) +'/' +inttostr ( cc) ) ;
Message:=class +'=' +inttostr ( ms) +'/' +inttostr ( ps) ;
buf:=copy ( pck,1 ,j-1 ) ;
WriteS( Message) ;
j:=length ( buf) ;
buf:=buf+copy ( pck,k,length ( pck) -k+1 ) ;
pck:='' ;
SendToClient;
end ;
end .
Последний раз редактировалось TAMBIK, 03.04.2009 в 15:10 .
13.03.2009, 14:58
#2
Рыцарь
Регистрация: 28.09.2007
Сообщений: 1,558
Сказал Спасибо: 71
Имеет 351 спасибок в 244 сообщенях
TAMBIK , ты бы хоть переменный по-нормальному назвал или прокоментировал бы их по-человечески
З.Ы. для оформления кода используй теги [ HIGHLIGHT = "delphi" ]тут код[ /HIGHLIGHT ] без пробелов.
Добавлено через 1 минуту
если не отрисовывается, значит что-то со смещением накосячил.
Последний раз редактировалось QaK, 13.03.2009 в 14:58 .
Причина: Добавлено сообщение
14.03.2009, 11:48
#3
Рыцарь
Регистрация: 03.03.2009
Сообщений: 773
Сказал Спасибо: 361
Имеет 300 спасибок в 168 сообщенях
Скрипт я нашел в инете там наверно ошибка с определением ClassID но он
выводит:ms,ps над чаром.Вот еще скрипт найден
№ 2
delphi Код:
// Скрипт для вывода информации об игроках на сервере
// в User Tab: ник, раса, пол, класс.
// Автор: Furious
// Версия: 0.3
var
m:TMemo;
frm:TForm;
RaceID, SexID, ClassID, i: Integer ;
Message, Name, Sex, Race, Class : String ;
procedure Init;
begin
//ShowTab;
frm := TForm.Create ( nil ) ;
frm.Caption := 'Char Info!' ;
frm.BorderStyle := bsSizeable;
frm.Position := poScreenCenter;
frm.Width :=400 ;
frm.Height :=600 ;
m:=TMemo.Create ( frm) ;
m.parent :=frm;
m.align :=alClient;
m.ReadOnly :=true ;
m.ScrollBars :=ssBoth;
frm.Show ;
end ;
procedure Free;
begin
m.Free ;
frm.Free ;
//HideTab;
end ;
begin
if FromServer and ( pck[1 ]=#$03 ) then
begin
i:=22 ;
Name:=ReadS( i) ;
RaceID:=ReadD( i) ;
SexID:=ReadD( i) ;
ClassID:=ReadD( i) ;
case RaceID of
0 :race:='Люди' ;
1 :race:='Светлые эльфы' ;
2 :race:='Темные эльфы' ;
3 :race:='Орки' ;
4 :race:='Гномы' ;
end ;
case SexID of
0 :sex:='Мужской' ;
1 :sex:='Женский' ;
end ;
case ClassID of
0 :class :='H_Fighter' ;
1 :class :='H_Warrior' ;
2 :class :='H_Gladiator' ;
88 :class :='H_Duelist' ;
3 :class :='H_Warlord' ;
89 :class :='H_Dreadnought' ;
4 :class :='H_Knight' ;
5 :class :='H_Paladin' ;
90 :class :='H_PhoenixKnight' ;
6 :class :='H_DarkAvenger' ;
91 :class :='H_HellKnight' ;
7 :class :='H_Rogue' ;
8 :class :='H_TreasureHunter' ;
93 :class :='H_Adventurer' ;
9 :class :='H_Hawkeye' ;
92 :class :='H_Sagittarius' ;
10 :class :='H_Mage' ;
11 :class :='H_Wizard' ;
12 :class :='H_Sorceror' ;
94 :class :='H_Archmage' ;
13 :class :='H_Necromancer' ;
95 :class :='H_Soultaker' ;
14 :class :='H_Warlock' ;
96 :class :='H_ArcanaLord' ;
15 :class :='H_Cleric' ;
16 :class :='H_Bishop' ;
97 :class :='H_Cardinal' ;
17 :class :='H_Prophet' ;
98 :class :='H_Hierophant' ;
18 :class :='E_Fighter' ;
19 :class :='E_Knight' ;
20 :class :='E_TempleKnight' ;
99 :class :='E_EvaTemplar' ;
21 :class :='E_SwordSinger' ;
22 :class :='E_Scout' ;
23 :class :='E_PlainsWalker' ;
101 :class :='E_WindRider' ;
24 :class :='E_SilverRanger' ;
102 :class :='E_MoonlightSentinel' ;
25 :class :='E_Mage' ;
26 :class :='E_Wizard' ;
27 :class :='E_SpellSinger' ;
103 :class :='E_MysticMuse' ;
28 :class :='E_ElementalSummoner' ;
104 :class :='E_ElementalMaster' ;
29 :class :='E_Oracle' ;
30 :class :='E_Elder' ;
105 :class :='E_EvaSaint' ;
31 :class :='DE_Fighter' ;
32 :class :='DE_PaulusKnight' ;
33 :class :='DE_ShillienKnight' ;
106 :class :='DE_ShillienTemplar' ;
34 :class :='DE_BladeDancer' ;
107 :class :='DE_SpectralDancer' ;
35 :class :='DE_Assassin' ;
36 :class :='DE_AbyssWalker' ;
108 :class :='DE_GhostHunter' ;
37 :class :='DE_PhantomRanger' ;
109 :class :='DE_GhostSentinel' ;
38 :class :='DE_Mage' ;
39 :class :='DE_DarkWizard' ;
40 :class :='DE_Spellhowler' ;
110 :class :='DE_StormScreamer' ;
41 :class :='DE_PhantomSummoner' ;
111 :class :='DE_SpectralMaster' ;
42 :class :='DE_ShillienOracle' ;
43 :class :='DE_ShillienElder' ;
112 :class :='DE_ShillienSaint' ;
44 :class :='O_Fighter' ;
45 :class :='O_Raider' ;
46 :class :='O_Destroyer' ;
113 :class :='O_Titan' ;
47 :class :='O_Monk' ;
48 :class :='O_Tyrant' ;
114 :class :='O_GrandKhauatari' ;
49 :class :='O_Mage' ;
50 :class :='O_Shaman' ;
51 :class :='O_Overlord' ;
115 :class :='O_Dominator' ;
52 :class :='O_Warcryer' ;
116 :class :='O_Doomcryer' ;
53 :class :='D_Fighter' ;
54 :class :='D_Scavenger' ;
55 :class :='D_BountyHunter' ;
117 :class :='D_FortuneSeeker' ;
56 :class :='D_Artisan' ;
57 :class :='D_Warsmith' ;
118 :class :='D_Maestro' ;
end ;
Message:='Раса: ' +race+', Пол: ' +sex+', Класс: ' +class +'.' ;
m.Lines .Add ( Name+': ' +Message) ;
end ;
end .
как в нем сделать вывод ClassID над чаром
Последний раз редактировалось TAMBIK, 03.04.2009 в 15:11 .
16.03.2009, 18:39
#4
Местный
Регистрация: 18.01.2008
Сообщений: 286
Сказал Спасибо: 24
Имеет 133 спасибок в 80 сообщенях
А если заменить
delphi Код:
Message:=class +'=' +inttostr ( ms) +'/' +inttostr ( ps) ;
на
?
Добавлено через 10 минут
довно уж не играю. поэтому написал на крленке и не тестировал
для С4
ClsShow.txt
delphi Код:
var
i,ClassID:integer ;
Name,Title:String ;
ClassName: TStringList ; //названия классов
procedure Init; //Вызывается при включении скрипта
begin
ClassName :=TStringList .Create ;
ClassName.LoadFromFile ( 'Scripts\ClassName.ini' ) ; //загрузка из файла
end ;
procedure Free; //Вызывается при выключении скрипта
begin
ClassName.free ;
end ;
begin
if FromServer and ( pck[1 ]=#$03 ) then begin
i:=22 ; //пропускаем
ReadS( i) ; //пропускаем ник
i:=i+8 ; //пропускаем
ClassID:=ReadD( i) ; //получаем профу
Title:=ClassName.Strings [ClassID]; //в титл пишем профу
i:=i+144 ; //пропускаем
buf := copy ( pck,1 ,i-1 ) ; //копируем пакет до титла в буфер
ReadS( i) ; //находим конец титла
WriteS( Title) ; //вставляем в буфер новый титл
buf := buf+copy ( pck,i,length ( pck) -1 ) ; //копируем в буфер остаток пакета
pck := buf; //меняем пакет
end ;
end .
ClassName.ini
Код:
Human Fighter
Warrior
Gladiator
Warlord
Human Knight
Paladin
Dark Avenger
Rogue
Treasure Hunter
Hawkeye
Human Mystic
Human Wizard
Sorceror
Necromancer
Warlock
Cleric
Bishop
Prophet
Elven Fighter
Elven Knight
Temple Knight
Swordsinger
Elven Scout
Plainswalker
Silver Ranger
Elven Mystic
Elven Wizard
Spellsinger
Elemental Summoner
Elven Oracle
Elven Elder
Dark Fighter
Palus Knight
Shillien Knight
Bladedancer
Assassin
Abyss Walker
Phantom Ranger
Dark Elven Mystic
Dark Elven Wizard
Spellhowler
Phantom Summoner
Shillien Oracle
Shillien Elder
Orc Fighter
Orc Raider
Destroyer
Orc Monk
Tyrant
Orc Mystic
Orc Shaman
Overlord
Warcryer
Dwarven Fighter
Dwarven Scavenger
Bounty Hunter
Dwarven Artisan
Warsmith
none
none
none
none
none
none
none
none
none
none
none
none
none
none
none
none
none
none
none
none
none
none
none
none
none
none
none
none
none
none
Duelist
DreadNought
Phoenix Knight
Hell Knight
Sagittarius
Adventurer
Archmage
Soultaker
Arcana Lord
Cardinal
Hierophant
Eva Templar
Sword Muse
Wind Rider
Moonlight Sentinel
Mystic Muse
Elemental Master
Evas Saint
Shillien Templar
Spectral Dancer
Ghost Hunter
Ghost Sentinel
Storm Screamer
Spectral Master
Shillien Saint
Titan
Grand Khauatari
Dominator
Doomcryer
Fortune Seeker
Maestro
Последний раз редактировалось PanAm, 16.03.2009 в 18:39 .
Причина: Добавлено сообщение
За это сообщение PanAm нажился спасибкой от:
19.03.2009, 17:24
#5
Рыцарь
Регистрация: 03.03.2009
Сообщений: 773
Сказал Спасибо: 361
Имеет 300 спасибок в 168 сообщенях
Спасибо за помощь !!! Мне я извините ненаписал надо для Интерлюда
Я несмыслю в програмирование действую просто методом тыка .В скрипте написано какая команда что делает.Мне это пригодится .СПАСИБО !!
Последний раз редактировалось TAMBIK, 19.03.2009 в 17:28 .
20.03.2009, 15:21
#6
Местный
Регистрация: 18.01.2008
Сообщений: 286
Сказал Спасибо: 24
Имеет 133 спасибок в 80 сообщенях
скрипт вроде должен работать на C4 и IL, в T2 надо менять pck[1]=#$03 на pck[1]=#$31 если не изменяет маразм, смещения в пакетах совпадают, и соответственно дописать ClassName.ini новыми классами (см classid.ini)
03.04.2009, 15:17
#7
Рыцарь
Регистрация: 03.03.2009
Сообщений: 773
Сказал Спасибо: 361
Имеет 300 спасибок в 168 сообщенях
В скрипте № 1 это
Message:=class+'='+inttostr(ms)+'/'+inttostr(ps);
заменить на
Message:=class+'='+inttostr(mc)+'/'+inttostr(cc);
то над чаром выводится скорость физической и магической атаки
04.04.2009, 11:09
#8
Рыцарь
Регистрация: 21.09.2007
Сообщений: 376
Сказал Спасибо: 11
Имеет 218 спасибок в 106 сообщенях
подмена титула в чаринфо на грации, думаю без комментариев....
delphi Код:
var
a: integer ;
part1, part2, Player, Title :string ;
procedure Init;
begin
end ;
procedure Free;
begin
end ;
procedure OnConnect( WithClient: Boolean ) ;
begin
end ;
procedure OnDisonnect( WithClient: Boolean ) ;
begin
end ;
begin
if FromServer and ( pck[1 ]=#$31 ) then
begin
a:=22 ;
Player:=ReadS( a) ;
a:=a+272 ;
part1:=Copy ( pck,1 ,a-1 ) ;
Title:=ReadS( a) ;
part2:=Copy ( pck,a,length ( pck) -a) ;
buf:=part1;
WriteS( 'Losser' ) ;
buf:=buf+part2;
pck:=buf;
end ;
end .
Последний раз редактировалось mks, 04.04.2009 в 11:11 .
За это сообщение mks нажился спасибкой от:
22.04.2009, 11:24
#9
Рыцарь
Регистрация: 03.03.2009
Сообщений: 773
Сказал Спасибо: 361
Имеет 300 спасибок в 168 сообщенях
mks в вашем скрипте пишет Losser
Lineage II The Kamael: Hellbound
сервер Шог
22.04.2009, 22:10
#10
Рыцарь
Регистрация: 21.09.2007
Сообщений: 376
Сказал Спасибо: 11
Имеет 218 спасибок в 106 сообщенях
Цитата:
Сообщение от
TAMBIK
mks в вашем скрипте пишет Losser
Lineage II The Kamael: Hellbound
сервер Шог
Правильно, вставляй туда че хочешь - будет писать что тебе надо, эт я просто пример привел подмены титула
За это сообщение mks нажился спасибкой от:
Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
Часовой пояс GMT +4, время: 10:27 .
vBulletin style designed by
MSC Team .
Powered by vBulletin® Version 3.6.11
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод:
zCarot
Вы хотите чувствовать себя в безопасности? чоп Белган обеспечит её!