Jump to content

Help


Recommended Posts

This is very famous script --> http://www.maxcheaters.com/forum/index.php?topic=66099.0 but also and old scipt.

 

With l2phx 3.5 its make error... so if i want to use it i should connect with older version (3.18) and it work fine.

 

can some1 give me link for 3.5 version? or if some1 can remake it for l2phx3.5

 

here is the script

const
 Name='Tiara120'; // character
 ItemID=6593; // item id
 LifeID=8762; // lifestone id
 GemsID=2131; // gemstone id
 GemsAmount=25; //gemstone amount
 max=8000;  // max amount of gemstones
var
LifeBase:array[1..max] of integer;    
ColvoLife,ColvoGems,Life,Item,Gems,SocialID,augid:integer;
procedure Init;
var i:integer;
begin
buf:=hstr('0F');
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('0F 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>'+
  '</body></html>');
//   '<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]=#$1B) then begin
   SocialID:=ReadD(2);
  pck:='';
   case SocialID of
     7: begin
buf:=hstr('A7 2A A0 00 00 80 84 1E 00 0A 00 00 00 00 00 00 00 00 00 00 00');
SendToServerEx(Name);
buf:=hstr('A7 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
   #$1B: CreateItemBase; 
   #$27: UpdateItemBase; 
 end;
end.

Link to comment
Share on other sites

Try it

Program ItemSkill;

 

//uses 'Scripts\PacketsT2.script';


uses 'D:\l2phx.3.5.31.162\Scripts\PacketsT2.script'; //if script situated in athor place , change way

const
    MyName='Vilson';            //<-- char nick
    InventorySize       = 180;  //<-- how long items can be input to the inventory
    InventoryOffset     = 30;   //<--shift of the liast inventory , 
    TimeToSelectItem    = 300;  // нdon't change it
    TimeToWaitAugResult = 1200; //if yours server lagggggggged change it more bigest 

       
var
    BaseItems          : array[1..InventorySize,1..12] of integer;
    TimerItemSelect    : TTimer;
    TimerAugItem       : TTimer;
    ReadAugSkillID     : integer;   
    NeedAugSkillID     : integer = 16283; // which skill we would like , (like) augmentation id, table of the basic lists
    
{     
<augmentation id="16281"> <skillId val="3241"> <skillLevel val="10"> <!-- Passive: Increases your M. Atk. --> 
<augmentation id="16336"> <skillId val="3250"> <skillLevel val="10"> <!-- Passive: Increases the critical attack rate of magic attacks. -->		
<augmentation id="16283"> <skillId val="3240"> <skillLevel val="10"> <!-- Passive: Increases your P. Atk. -->		
<augmentation id="16333"> <skillId val="3249"> <skillLevel val="10"> <!-- Passive: Increases your critical attack rate. -->
<augmentation id="16284"> <skillId val="3244"> <skillLevel val="10"> <!-- Passive: Increases your P. Def. -->
<augmentation id="16282"> <skillId val="3245"> <skillLevel val="10"> <!-- Passive: Increases your M. Def. -->
}        
    AugItemSelectCycle :integer;  
    StartAug           :Boolean;
    TargetItemObjID    :integer; //what we would like to augment
    RefinerItemObjID   :integer; //lifestone
    RefinerItemCount   :integer; //lifestone            
    GemStoneItemObjID  :integer; //gemstone
    GemStoneNeed       :integer;
    GemStoneCount      :integer;                

function SetSkillID :integer;
var
  i:integer;
  TextID:integer;
  MyText:string;  
begin
if (ConnectName=MyName) and (FromClient) then 
begin
    i:=2;
    MyText:=ReadS(i);
    TextID:=ReadD(i);
  if (TextID=3)  then 
  begin     
     SendMsg2( MyName, 'Желаемый AugSkillID: ' + MyText); 
     pck:='';
     try 
      Result:=StrToInt(MyText);
     except
      Result:=0;
     end;               
  end;
end;
end;

procedure ItemList;
var
  i, j, k: integer;
  ListSize: integer;
begin     
  j:=4; //пропускаем дo ListSize
  ListSize:=ReadH(j); 
  for i:=1 to ListSize do
  if (i<=ListSize) then 
  begin
      BaseItems[i,1]:=ReadH(j);  //ItemType1            
      BaseItems[i,2]:=ReadD(j);  //ObjectID      
      BaseItems[i,3]:=ReadD(j);  //ItemID            
      BaseItems[i,4]:=ReadD(j);  //LocationSlot      
      BaseItems[i,5]:=ReadD(j);  //Amount: 
      j:=j+4;                    //Amount:                      
      BaseItems[i,6]:=ReadH(j);  //ItemType2            
      BaseItems[i,7]:=ReadH(j);  //CustomType1      
      BaseItems[i,8]:=ReadH(j);  //isEquipped:             
      BaseItems[i,9]:=ReadD(j);  //BodyPart            
      BaseItems[i,10]:=ReadH(j); //EnchantLevel
      BaseItems[i,11]:=ReadH(j); //CustType2
      BaseItems[i,12]:=ReadD(j); //AugmentationID                  
      inc(j,InventoryOffset);
  end 
  else for k:=1 to 12 do BaseItems[i,k]:=0;
  ReadItems;   
end;

procedure InventoryUpdate; //пакет 21, Создает базу ObjectID по ItemID
var
  i, ii, j, k, ListCount, UpdType : integer;
  ItemType1, ObjectID, ItemID, LocationSlot, Count, ItemType2, CustomType1,
  isEquipped, BodyPart, EnchantLevel, CustType2, AugmentationID :integer;
begin
  ListCount:=ReadH(2); //количество итемов
  j:=4; //смещение для действия с предметом 1-добавлен 2-изменен 3-удален
  for i:=1 to ListCount do
  begin
    UpdType       :=ReadH(j);
    ItemType1     :=ReadH(j);
    ObjectID      :=ReadD(j);
    ItemID        :=ReadD(j);
    LocationSlot  :=ReadD(j);
    Count         :=ReadD(j);
    ItemType2     :=ReadH(j);
    CustomType1   :=ReadH(j);
    isEquipped    :=ReadH(j);
    BodyPart      :=ReadD(j);
    EnchantLevel  :=ReadH(j);
    CustType2     :=ReadH(j);
    AugmentationID:=ReadD(j);
    case UpdType of
//      1: 0;         //добавлен новый предмет, игнорим
      2: //изменен предмет в инвентаре
         for ii:=1 to InventorySize do
         begin
          if (BaseItems[ii,2]=ObjectID) then
           begin
            BaseItems[ii,1]:=ItemType1;
            BaseItems[ii,2]:=ObjectID;
            BaseItems[ii,3]:=ItemID;
            BaseItems[ii,4]:=LocationSlot;
            BaseItems[ii,5]:=Count;
            BaseItems[ii,6]:=ItemType2;
            BaseItems[ii,7]:=CustomType1;
            BaseItems[ii,8]:=isEquipped;
            BaseItems[ii,9]:=BodyPart;
            BaseItems[ii,10]:=EnchantLevel;
            BaseItems[ii,11]:=CustType2;
            BaseItems[ii,12]:=AugmentationID;        
            Break;
           end;
         end;
            
      3: begin         //удален
         for ii:=1 to InventorySize do
          if (BaseItems[ii,2]=ObjectID) then
          begin
            for k:=1 to 12 do BaseItems[ii,k]:=0;
            Break;
          end;
         end;
    end;     
    Inc(j,InventoryOffset);
  end;
  ReadItems;
end;

procedure ReadItems;
begin        
  RefinerItemCount:=GetObjectCount(RefinerItemObjID);
  GemStoneCount:=GetObjectCount(GemStoneItemObjID);
end;

function GetObjectCount(inObjectID :integer) : integer;
var
  i : integer;
begin    
for i:=1 to InventorySize do
if (BaseItems[i,2]=inObjectID) then begin  Result:=BaseItems[i,5]; exit; end;
Result:=-1;  
end;

function GetItemId(inObjectID :integer) : integer;
var
  i  : integer;
begin
for i:=1 to InventorySize do
if (BaseItems[i,2]=inObjectID) then begin  Result:=BaseItems[i,3]; exit; end;
Result:=-1;  
end;

function GetObjectId(inItemID :integer) : integer;
var
  i : integer;
begin    
for i:=1 to InventorySize do
if (BaseItems[i,3]=inItemID) then begin  Result:=BaseItems[i,2]; exit; end;
Result:=-1;  
end;
  
procedure onTimerItemSelect(Sender: TObject);
begin 
  if (GemStoneItemObjID<1) or (RefinerItemCount<1) or (TargetItemObjID<1) then
  begin
    StartAug:=False;
    TimerItemSelect.Enabled:=False;
    TimerAugItem.Enabled:=False;
    SendMsg2 (MyName, 'не установлены параметры или нет предметов! ');    
    Exit;               
  end;      
  if (RefinerItemCount<1) then 
  begin
    StartAug:=False;
    TimerItemSelect.Enabled:=False;
    TimerAugItem.Enabled:=False;
    SendMsg2 (MyName, ' закончились lifestone ');
    Exit;
  end;         
if (GemStoneCount<50) then 
  begin
    StartAug:=False;
    TimerItemSelect.Enabled:=False;
    TimerAugItem.Enabled:=False;
    StartAug:=False;
    SendMsg2 (MyName, ' закончились GemStone ');    
    Exit;               
  end;
    
case AugItemSelectCycle of
1:begin   
    RequestExRqItemLink(MyName, TargetItemObjID);            
    Inc(AugItemSelectCycle);
    Exit;   
  end;
2:begin  
    if (TargetItemObjID>1) then RequestConfirmTargetItem(MyName, TargetItemObjID) 
    else begin StartAug:=False;  TimerItemSelect.Enabled:=False; TimerAugItem.Enabled:=False; Exit; end;   
    Inc(AugItemSelectCycle);
    Exit;    
  end;
3:begin
    if (RefinerItemObjID>1) and (TargetItemObjID>1) then
     RequestConfirmRefinerItem(MyName, TargetItemObjID, RefinerItemObjID) 
    else begin StartAug:=False;  TimerItemSelect.Enabled:=False; TimerAugItem.Enabled:=False; Exit; end;   
    Inc(AugItemSelectCycle);
    Exit;          
   end;
4:begin
    if (RefinerItemObjID>1) and (TargetItemObjID>1) and (GemStoneItemObjID>1) and (GemStoneCount>50)  then
     RequestConfirmGemStone(MyName, TargetItemObjID, RefinerItemObjID, GemStoneItemObjID, GemStoneNeed)
    else begin StartAug:=False;  TimerItemSelect.Enabled:=False; Exit; end;        
    TimerAugItem.Enabled:=True;
    AugItemSelectCycle  := 1;
    TimerItemSelect.Enabled :=False;
    Exit;
   end;   
end;
end;

procedure OnTimerAugItem(Sender: TObject);
begin
  RequestRefine(MyName, TargetItemObjID, RefinerItemObjID, GemStoneItemObjID, GemStoneNeed);  
  TimerAugItem.Enabled:=False;
  TimerItemSelect.Enabled:=True;  
end;

procedure Init;
var
i,k: integer;
begin
   for i:=1 to InventorySize do for k:=1 to 12 do BaseItems[i,k]:=0;
   NeedAugSkillID         :=0; 
   AugItemSelectCycle     :=0;  
   StartAug               :=False;
   TargetItemObjID        :=0;    
   RefinerItemObjID       :=0;
   RefinerItemCount       :=0;            
   GemStoneItemObjID      :=0;
   GemStoneCount          :=0; 
              
   TimerItemSelect:=TTimer.Create(nil);
   TimerItemSelect.OnTimer:=@onTimerItemSelect;
   TimerItemSelect.Enabled:=False;
   TimerItemSelect.Interval:=TimeToSelectItem; 
   
   TimerAugItem:=TTimer.Create(nil);
   TimerAugItem.OnTimer:=@OnTimerAugItem;
   TimerAugItem.Enabled:=False;
   TimerAugItem.Interval:=TimeToWaitAugResult; 
   
   SendMsg2( MyName, '________________________________________' );     
   SendMsg2( MyName, 'В парти чат пишем ID аугментации' );
   SendMsg2( MyName, 'Потом аугментировать вещь один раз' );
   SendMsg2( MyName, 'что бы скрипт распознал предметы ' );            
   SendMsg2( MyName, 'Есть вопросы? "Vilson или *****@ua.fm' );   
   SendMsg2( MyName, '________________________________________' ); 
   SendMsg2( MyName, ' ' );   
   SendMsg2( MyName, 'После распознания предметов: ' );            
   SendMsg2( MyName, '  ТАНЕЦ  сброс парметров' );   
   SendMsg2( MyName, '  СТАРТ  соцдействие  ДА ' );
   SendMsg2( MyName, '  СТОП   соцдействие  НЕТ' );
end;

procedure Free;
begin
  TimerItemSelect.Free;
  TimerAugItem.Free;
end;

procedure myRequestActionUse;
var
i,k: integer;
begin
case ReadD(2) of
  24:begin    // /socialyes 
      RequestItemList(MyName);  
      StartAug:=true;
      AugItemSelectCycle:=1;
      TimerItemSelect.enabled:=true;
      SendMsg2( MyName, ' ПЕРЕБИРАЕМ ВАРИАНТЫ ' );
      pck:='';
      exit;     
     end;
  25:begin    // /socialno
      StartAug:=False;
      TimerItemSelect.Enabled:=False;
      TimerAugItem.Enabled:=False;
      SendMsg2( MyName, '   П А У З А  ' );
      pck:='';
      exit;     
     end; 
  34:begin    // /socialdance
      for i:=1 to InventorySize do for k:=1 to 12 do BaseItems[i,k]:=0;
      NeedAugSkillID         :=0; 
      AugItemSelectCycle     :=0;  
      StartAug               :=False;
      TargetItemObjID        :=0;    
      RefinerItemObjID       :=0;
      RefinerItemCount       :=0;            
      GemStoneItemObjID      :=0;
      GemStoneCount          :=0; 
            
      TimerItemSelect.Enabled:=False;
      TimerAugItem.Enabled:=False;
      SendMsg2( MyName, '   Праметры обнулены  ' );
      pck:='';
      exit;                                
     end;     
end;
end;

begin
if (ConnectName=MyName) and (FromServer) then 
case pck[1] of
#$11:ItemList;    
#$21:InventoryUpdate;
#$FE:if ReadH(2)=108 then //RequestExRqItemLinkReply
     begin
      ReadAugSkillID:=ReadH(34);
      if NeedAugSkillID=ReadAugSkillID then 
      begin       
       TimerItemSelect.Enabled:=False; 
       TimerAugItem.Enabled:=False;
       StartAug:=False;
       SendMsg2(MyName, ' УСПЕШНО ПОЛУЧЕН СКИЛ  : '+IntToStr(NeedAugSkillID));       
       Exit;           
      end;            
      SendMsg2(MyName, 'НУЖЕН : '+IntToStr(NeedAugSkillID)+ ', ПОЛУЧЕНО : '+IntToStr(ReadAugSkillID));
      RequestRefineCancel(MyName, TargetItemObjID);            
      pck:='';
      exit;      
     end;   
end;

if (ConnectName=MyName) and (FromClient) then 
case pck[1] of  
#$49:NeedAugSkillID:=SetSkillID; //Say2
#$56:myRequestActionUse;
#$D0:if  ReadH(2)=65 then //RequestConfirmGemStone 
      begin
       if (TargetItemObjID<1) then TargetItemObjID:=ReadD(4);
       if (RefinerItemObjID<1) then RefinerItemObjID:=ReadD(8); 
       if (GemStoneItemObjID<1) then GemStoneItemObjID:=ReadD(12);
       if (GemStoneCount<1) then GemStoneNeed:=ReadD(16);
       SendMsg2(MyName, ' TargetItemObjID     : '+IntToStr(TargetItemObjID));       
       SendMsg2(MyName, ' NeedAugSkillID     : '+IntToStr(NeedAugSkillID));
       SendMsg2(MyName, ' RefinerItemObjID    : '+IntToStr(RefinerItemObjID));
       SendMsg2(MyName, ' GemStoneItemObjID    : '+IntToStr(GemStoneItemObjID));       
       SendMsg2(MyName, ' GemStoneNeed    : '+IntToStr(GemStoneNeed));                                                
      end;      
end
else exit;

end.

Link to comment
Share on other sites

At least u could hide the script cause it's still hided in the original topic...

Btw on what chronicle u tried it and it gives u error?

well also take in consideration that Anumis made it for IL..

so i'd suggest u the l2phx 3.1.8 version and it should work w/o errors..

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Posts

    • Trustworthy person; hope you find what you're looking for!
    • Customs being added to systextures/animation/texture influences the increase in virtual ram by a very small amount, which means you won't have a headache in the future with critical error issues, unless it's a dubious custom, there are 2 custom weapon packs available for H5 that are "compromised", they didn't make a very good adaptation, one of the packages is the weapons from the goddess of destruction for H5, another is the hero weapons from the goddess of destruction for H5, avoid these customs for your H5 server if you see it on any forum.   Now coming back to your question; one thing that the NCSoft developers never did was add files to their system, probably because they were aware of what could happen when doing that, now think about one thing: the game's system retail itself is no more than 70MB, every time there was an update made by NCSoft they always added the equipment/items/cloaks etc. in their folders intended for that, so why do we do this? I still have my client containing a system with almost 1GB, 1-2h online is the time I can stay online before the ram memory limit, but I have already redone my entire client with customs being destined for textures/systexture/animations, almost all the customs that I had on that client containing a 1GB system I have on my current server, with the difference that I removed everything from the system and critical error is now nothing more than legends, my current server has a total of 220MB in the system folder And theoretically speaking, based on what I've seen, especially on many forums, I believe that the heavier the system folder is, the faster we accelerate the consumption of the client's virtual ram memory, causing countless different types of critical error in one short period of time, in many forums that I've seen on topics involving critical, the solution that stands out the most is about downloading a new clean "system"
    • Do you think that everything on the system is loaded regardless if you use it or not ? or even worst, are they loaded even if they exist as textures/meshes but not defined on the DAT files ?
    • DISCORD : utchiha_market telegram : https://t.me/utchiha_market SELLIX STORE : https://utchihamkt.mysellix.io/ Join our server for more products : https://discord.gg/hoodservices https://campsite.bio/utchihaamkt
    • Yes, it is, it's not hard to do (if you know what you're doing); just time consuming.   To make some things clear: 1. You can not create .ukx files with animated skeletalmeshes inside, by using any of the freeshared L2Editors (basically, no support for .psa files) 2. You need a patched UT2003/UT2004. You can either get your own ut2004 and download Gildor's patch from his web, or use any of these: When you use these, you should be able to import both .psk and .psa animations > link the skeletalmesh to the psa > save as .ukx > use ut2down to convert the file to l2 format > encrypt the .ukx with standard l2 encryption (you can use mxc encdec, you can find it in the folder of the l2editor i shared). Your best bet is to use pawnviewer (aka dev mode) to test that. If you have troubles with that process then leave a reply here, otherwise, if it works correctly, you can move on to adding missing animnotify classes to you unrealed, then proper animnotifies, sounds, effects or w/e is missing from your .ukx files. Keep in mind that this is overall not difficult but a huge amount of work (unless you're good at scripting/macros) since you'd need to manually re-create every single animnotify, by hand. If you have doubts or i wasn't clear enough let me know here. (in case you don't know what an animnotify is: UDN - Two - AnimNotifies (unrealengine.com) )  
  • Topics

×
×
  • Create New...