Показать сообщение отдельно
Старый 01.02.2010, 22:41   #6
Пользователь
 
Регистрация: 01.12.2009
Сообщений: 32
Сказал Спасибо: 0
Имеет 14 спасибок в 12 сообщенях
sinles пока неопределено
По умолчанию

на пакетном уровне ничего сложного. От сервера приходит сообщение о том куда движется ползунок, для нас это указание что делать рил или помп. В ответ на это сообщение мы отправляем использование соответствующего скила. Во время завершения рыбалки нам так же приходит сообщение от сервера с результатами. Вот кусок кода обрабатывающий эти сообщения (взят из скрипта товарища NLObP и возможно чуть переделан)
Код:
//FE1E00=ExFishingStart:h(subID)d(ObjectID)d(FishType)d(X)d(Y)d(Z)c(0)c(0)c(isNightLure)c(0)
      //FE1F00=ExFishingEnd:h(subID)d(CharID)c(isWin)
      //--FE1500=ExFishingStartCombat:h(charOID)d(time)d(HP)b(Fighting)b(LureType)b(isFishDeceptive)
      //FE2800=ExFishingHPRegen:h(subID)d(ObjectID)d(Time)d(FishHP)c(HPstop/Rise)c(GoodUse)c(Anim)d(Penalty)c(BarColor)
      #$FE: begin
        //if Status and (MyOID<>0) then begin
          case pck[2] of
            //FE1F00=ExFishingEnd:h(charObjtId)b(isWin)
            #$1F: begin
              //msg.Lines.Add('S>Пакет ExFishingEnd #$FE1F00');
              if MyOID=ReadD(4) then begin
                gooduse:=0;
                isFishing:=false; //сейчас не ловим
                if ReadC(8)=1 then begin
                  msg1('Поймали!');
                end else begin
                  if stop then exit; //нажали кнопку стоп!
                  msg1('Сорвалась!');
                end;

                fishin.enabled:=true;
              end;
            end;
            //FE2800=ExFishingHPRegen:h(subID)d(ObjectID)d(Time)d(FishHP)c(HPstop/Rise)c(GoodUse)c(Anim)d(Penalty)c(BarColor)
            #$28: begin
              //SendMsg2('S>Пакет ExFishingHpRegen #$FE2800');
              if MyOID=ReadD(4) then begin
                if (pck[16]=#$00) then begin
                  //SendMsg2('pump');
                  pumping;
                  exit;
                end;
                if (pck[16]=#$01) then begin
                  //SendMsg2('reel');
                  reeling;
                  exit;
                end;
              end;
            end;
          end;
        //end;
      end;
А вообще сам принцип проводимых на пакетном уровне опираций ты можешь посмотреть вот тут или тут или вот мой вариант (в нем поменьше кода будет )

а самый надежный вариант узнать что там происходит, это взять и посмотреть

Последний раз редактировалось sinles, 01.02.2010 в 23:17.
sinles вне форума   Ответить с цитированием
За это сообщение sinles нажился спасибкой от: