PDA

Просмотр полной версии : ВОПРОСИК У НОВИЧКА!


skymanrus
28.12.2007, 03:59
седня узнал о этой проге и тут же попытался написать какой-то свой скрипт вот пример:

var ID, xpos, ypos, mob: string;
MyID: integer;

procedure SendMsg(msg:string);
begin
buf:=#$4A;
WriteD(0);
WriteD(10);
WriteS('');
WriteS(msg);
SendToClient;
end;

begin
if FromServer and (pck[1]=#$04) then MyID:=ReadD(18); //получаю ид моего чара
if FromServer and (pck[1]=#$01) and (ReadD(2)=MyID) then //если на серваке ктото перемещается
//по карте и если у него мой ид значит это я! :)
ID:=IntToStr(ReadD(2));
ypos:=IntToStr(ReadD(6));
xpos:=IntToStr(ReadD(10));
SendMsg('id-'+ID+' xpos-'+ypos+' xpos-'+xpos); //пишу в игре своой ид и коордиаты!
end.

смысл скрипта прост- когда я перемещаюсь печатать мои координаты точные на карте но фишка в том что помимо моих координат прога засекает ещё кучу какого то мусора включая нули и даже когда я стою на месте и не рыпаюсь она всеравно показывает чьи то координаты :(
вопрос: что я сделал не так ? как мне убрать посторонюю информацию так чтоб когда я стоял на месте она бред не писала а когда тыкал куда нидь она писала только мои координаты ????

помогите плиз :)

QaK
28.12.2007, 08:30
седня узнал о этой проге и тут же попытался написать какой-то свой скрипт вот пример:

var ID, xpos, ypos, mob: string;
MyID: integer;

procedure SendMsg(msg:string);
begin
buf:=#$4A;
WriteD(0);
WriteD(10);
WriteS('');
WriteS(msg);
SendToClient;
end;

begin
if FromServer and (pck[1]=#$04) then MyID:=ReadD(18); //получаю ид моего чара
if FromServer and (pck[1]=#$01) and (ReadD(2)=MyID) then //если на серваке ктото перемещается
//по карте и если у него мой ид значит это я! :)
begin
ID:=IntToStr(ReadD(2));
ypos:=IntToStr(ReadD(6));
xpos:=IntToStr(ReadD(10));
SendMsg('id-'+ID+' xpos-'+ypos+' xpos-'+xpos); //пишу в игре своой ид и коордиаты!
end;
end.

смысл скрипта прост- когда я перемещаюсь печатать мои координаты точные на карте но фишка в том что помимо моих координат прога засекает ещё кучу какого то мусора включая нули и даже когда я стою на месте и не рыпаюсь она всеравно показывает чьи то координаты :(
вопрос: что я сделал не так ? как мне убрать посторонюю информацию так чтоб когда я стоял на месте она бред не писала а когда тыкал куда нидь она писала только мои координаты ????

помогите плиз :)

жиным выделены дополнения, попробуй так.

28.12.2007, 13:27
ЭВРИКА!!! ЗАРАБОТАЛО! спасибо большое но все же интересно а почему раньше такая ерунда была ??? в чем была моя ошибка так сказать можете пояснить чтоб я больше не делал подобных глупостей ??

QaK
28.12.2007, 14:15
Вообщето это основы программирования =) Ну да ладно =) после then выполняется только одно выражение, если хочешь, чтоб выполнялось несколько, их надо вставить между begin и end. Почитай основы программирования, минимум знаний все-таки необходим, для написания скриптов.

28.12.2007, 17:27
спасиб :) минимум знаий есть я даж на с++ проги писал просто с BASIC подобным скриптами впервые столкнулся :) ещё будут вопросы обязательно обращусь а так за все спасиб ! :)

QaK
28.12.2007, 17:31
Незачто,минимум знаий есть я даж на с++ проги писал просто с BASIC подобным скриптами впервые столкнулся
тогда имеет смысл почитать документацию по синтаксису языка.

VORON
28.12.2007, 19:13
ПАСКАЛЬ- сила...! а не бейсик подобный язык.. времена в которые раньше спорили что сильней паскаль, бейсик или Ц++ - ушли в прошлое... язык программирования- стал просто языком общения с компом.. никоем образом не наклыдывающий ограничений на возможности того что можно накодить.. просто так уж повелось что БИЛ ГЕЙТС запатентовал почти все функции у БЕЙСИКА- поетому тока его контора и может его продвигать на рынок.. а они немогут или не хатят ориентировать етот язык на код низково уровня.. так уж повелось (благодаря майкрософту) что БЕЙСИК язык для скриптов.. паскаль изначально был аналогичен бейсику.. но развивался многосторонне.. и со временем компания БОРЛАНД превратила его в язык для всего чего угодно.. впрочем как и СИ++ изначально был языком низково уровня.. но превратился в аналог ДЕЛЬФИ.. в настоящее время любую задачу моджно накодить как на ДЕЛЬФИ так и на СИ++ разница лиш в синтаксисе... причем компания дельфи- стремиться разницу между языками- сократить к минимуму- применяя в них аналогичные конструкции и понятия... {} на СИ++ равно begin end; на дельфи...

29.12.2007, 00:55
это скрипт ворона - но я его переделал под своих двух чаров
1. запускаю л2пнх318 ставлю чара Glup
2. перехожу на вкладку дополнительно -> выполнить
3. в игре ZOPANKOK нажимаю 1 и 2 и даже в парти) И ничего не происходит(ПОЧЕМУУУУУ??????? поправте плиз)


var
IDPartyMember, IDAssistTarget, IDMy: String; //?? ????????? ? ?? ??? ??????? ? ??????????? ??
CoordglupX, CoordglupY, CoordglupZ :String; //?????????? ????
IDTargetForSpoil : String; //?? ?????????????? ????

procedure glupBeg;
begin
if (CoordglupX <> '') and (IDPartyMember <> '') then
begin
buf:=hstr('04') + IDPartyMember + CoordglupX + CoordglupY + CoordglupZ + hstr('00');
SendToServerEX('Glup');
buf:=hstr('04') + IDPartyMember + CoordglupX + CoordglupY + CoordglupZ + hstr('00');
SendToServerEX('Glup');
end;
end;

procedure glupAttack;
begin
if (CoordglupX <> '') and (IDAssistTarget <> '') then
begin
buf:=hstr('04') + IDAssistTarget + CoordglupX + CoordglupY + CoordglupZ + hstr('00');
SendToServerEX('Glup');
buf:=hstr('04') + IDAssistTarget + CoordglupX + CoordglupY + CoordglupZ + hstr('00');
SendToServerEX('Glup');
end;
end;

begin
if pck='' then exit;

if FromServer and (pck[1]=#$a7) then
begin
IDPartyMember:=pck[6] + pck[7] + pck[8] + pck[9];
end;

if FromServer and (pck[1]=#$29) then
if (pck[2]+pck[3]+pck[4]+pck[5]=IDPartyMember) then
begin

IDAssistTarget:= pck[6]+pck[7]+pck[8]+pck[9];
end;

if FromClient and (ConnectName='Glup') and (pck[1]=#$48) then
begin
CoordglupX:= pck[6] + pck[7] + pck[8] + pck[9];
CoordglupY:= pck[10] + pck[11] + pck[12] + pck[13];
CoordglupZ:= pck[14] + pck[15] + pck[16] + pck[17];
end;

if FromClient and (ConnectName='ZOPANKOK')and (pck[1]=#$38) then
if (pck[2]=#$31) and (pck[3]=#$00) then
begin

pck:='';

GlupBeg;
exit;
end;

if FromClient and (ConnectName='ZOPANKOK')and (pck[1]=#$38) then
if (pck[2]=#$32) and (pck[3]=#$00) then
begin
pck:='';
GlupAttack;
exit;
end;
end.

29.12.2007, 02:47
Почему то там пакет на атаку кладешь в посылку - отправляешь - и ничего! и в этом скрипте тоже паке на ассист и атак(тупо пакет копируешь в скрипт и тоже 0-эмоций) и вообще ни как не заставить ассист и атак сделать((((((((((((((( :cry:

QaK
29.12.2007, 08:17
ПАСКАЛЬ- сила...! а не бейсик подобный язык.. времена в которые раньше спорили что сильней паскаль, бейсик или Ц++ - ушли в прошлое... язык программирования- стал просто языком общения с компом.. никоем образом не наклыдывающий ограничений на возможности того что можно накодить.. просто так уж повелось что БИЛ ГЕЙТС запатентовал почти все функции у БЕЙСИКА- поетому тока его контора и может его продвигать на рынок.. а они немогут или не хатят ориентировать етот язык на код низково уровня.. так уж повелось (благодаря майкрософту) что БЕЙСИК язык для скриптов.. паскаль изначально был аналогичен бейсику.. но развивался многосторонне.. и со временем компания БОРЛАНД превратила его в язык для всего чего угодно.. впрочем как и СИ++ изначально был языком низково уровня.. но превратился в аналог ДЕЛЬФИ.. в настоящее время любую задачу моджно накодить как на ДЕЛЬФИ так и на СИ++ разница лиш в синтаксисе... причем компания дельфи- стремиться разницу между языками- сократить к минимуму- применяя в них аналогичные конструкции и понятия... {} на СИ++ равно begin end; на дельфи...
:beer:

Добавлено спустя 5 минут 11 секунд:
дополнительно -> выполнить
cскрипты запускаются на вкладке "скрипты" (мдее ну и фраза :D ), путем установки галочки напротив имени используемого скрипта.

30.12.2007, 02:56
Ребят спасиб ещё раз за активность в теме :) у меня щас такой вопросик
я написал скрипт бота который бегает в кружке и мочит всех мобов в этом круге
вот хочется ещё чисто ради приятного визуального восприятия добавить формочку где отображаются мобы
по типу старого волкера :)

не подскажете как создать форму и нарисовать в ней точку ??

как создать я понял
f := TForm.Create(nil);
f.Caption := 'Test it!';
f.BorderStyle := bsDialog;
f.Position := poScreenCenter;

а вот как теперь Из модуля Graphics чет вытащить и нарисовать с помощью координат точку в форме созданной?
подскажите плиз

QaK
09.01.2008, 10:34
Поставь делфи, и посмотри в инете исходники примитивный игрушек (2D). Попробуй юзать компонент TImage или TPaintBox, если получится.