Ho un problema con l'Automagic Looting che offre l'opzioni: Cut Corpses e Drag after cut, ho il seguente problema: l'opzione Drag after cut non và... cerca di tagliare le pelli dentro il corpo del mostro e ovviamente non si può... Quello dello script dice ti attivare queste Cut Corpses, Drag After Cut e infine Resources, cosa che ho ovviamente fatto ma non và. Vi posto le zone di script dove probabilmente c'è qualcosa che non và:
Sopratutto questa:
Grazie
Sopratutto questa:
codice:
;############################################################ ; MoveAndCut==================== ; %1 is the item ID to drag ; %2 ID of the dest container ;=============================== SUB MoveAndCut SET %mi_itemid %1 SET %mi_destcont %2 IF %mi_itemid <> #FINDID FINDITEM %mi_itemid IF #FINDCNT < 1 RETURN #FALSE SET %mac_cont #FINDBAGID SET %mac_itemtype #FINDTYPE IF %bml_freeshard { ;Cut the resource on the corpse GOSUB Cut %mi_itemid FINDITEM %cutresources C_ , %mac_cont IF #RESULT = #FALSE || #FINDCNT < 1 RETURN #FALSE SET %mi_itemid #FINDID } GOSUB BMWaitAction WAIT %bml_waittime SET %mac_dragtimer #SCNT2 + 50 IF %bml_freeshard GOSUB MoveItem %mi_itemid %mac_cont %mi_destcont ELSE GOSUB MoveItem %mi_itemid %mac_cont #BACKPACKID REPEAT { FINDITEM %mi_itemid C_ , %mac_cont } UNTIL #FINDKIND = -1 || #SCNT2 > %mac_dragtimer IF ! %bml_freeshard { SET %mac_cuttimer #SCNT2 + 50 REPEAT FINDITEM %mac_itemtype #BACKPACKID UNTIL #FINDKIND <> -1 || #SCNT2 > %mac_cuttimer IF #FINDKIND = -1 { DISPLAY OK WTF!? PAUSE } GOSUB Cut #FINDID } RETURN #TRUE
codice:
; CutCorpse===================== ; %1 ID of the corpse to cut ;=============================== SUB CutCorpse { SET !cutid %1 FINDITEM !fcontid . 1 G IF #FINDCNT < 1 || #FINDDIST > 2 RETURN #FALSE cut_corpse: SUB CutCorpse { SET !cutid %1 FINDITEM !fcontid . 1 G IF #FINDCNT < 1 || #FINDDIST > 2 RETURN #FALSE cut_corpse: IF %bml_bwc FINDITEM %bwarcleaver C IF ! %bml_bwc || ( %bml_bwc && #FINDKIND = -1 ) FINDITEM %knives C SET #LOBJECTID #FINDID SET #LTARGETID !cutid SET #LTARGETKIND 1 GOSUB BMWaitAction %bml_action_wait SET !bml_jstart #JINDEX + 1 EVENT MACRO 17 0 TARGET 5s EVENT MACRO 22 0 GOSUB BMWaitAction WAIT %bml_waittime SET !cut_corpse_timeout #SCNT2 + 25 SET !bml_jend #JINDEX + 1 WHILE #SCNT2 < !cut_corpse_timeout { FOR !ji !bml_jstart !bml_jend {SUB CutCorpse { SET !cutid %1 FINDITEM !fcontid . 1 G IF #FINDCNT < 1 || #FINDDIST > 2 RETURN #FALSE cut_corpse: IF %bml_bwc FINDITEM %bwarcleaver C IF ! %bml_bwc || ( %bml_bwc && #FINDKIND = -1 ) FINDITEM %knives C SET #LOBJECTID #FINDID SET #LTARGETID !cutid SET #LTARGETKIND 1 GOSUB BMWaitAction %bml_action_wait SET !bml_jstart #JINDEX + 1 EVENT MACRO 17 0 TARGET 5s EVENT MACRO 22 0 GOSUB BMWaitAction WAIT %bml_waittime SET !cut_corpse_timeout #SCNT2 + 25 SET !bml_jend #JINDEX + 1 WHILE #SCNT2 < !cut_corpse_timeout { FOR !ji !bml_jstart !bml_jend { IF %bml_bwc FINDITEM %bwarcleaver C IF ! %bml_bwc || ( %bml_bwc && #FINDKIND = -1 ) FINDITEM %knives C SET #LOBJECTID #FINDID SET #LTARGETID !cutid SET #LTARGETKIND 1 GOSUB BMWaitAction %bml_action_wait SET !bml_jstart #JINDEX + 1 EVENT MACRO 17 0 TARGET 5s EVENT MACRO 22 0 GOSUB BMWaitAction WAIT %bml_waittime SET !cut_corpse_timeout #SCNT2 + 25 SET !bml_jend #JINDEX + 1 WHILE #SCNT2 < !cut_corpse_timeout { FOR !ji !bml_jstart !bml_jend { ; CheckStatus=================== SUB CheckStatus { IF %cs_statustimer = N/A SET %cs_statustimer #SYSTIME + 600 IF %cs_charpos = N/A SET %cs_charpos #CHARPOSX , #CHARPOSY IF %cs_charpos <> #CHARPOSX , #CHARPOSY { IF #SYSTIME > %cs_statustimer { SET %cs_charpos #CHARPOSX , #CHARPOSY SET %cs_statustimer #SYSTIME + 600 } RETURN #FALSE } IF #LLIFTEDKIND = 1 || #CONTNAME = drag_gump || #CONTNAME = stack_gump || #TARGCURS = 1 || #CLILOGGED = 0 || #CHARGHOST = YES || H IN #CHARSTATUS { WAIT %bml_action_wait GOSUB BMWaitAction RETURN #FALSE } ;Check if other scripts are busy. ;Currently supports CEOMedic and Seg's stable bandage healer >11.0 IF ( N/A NOTIN *BUSY && *BUSY <> 0 ) || ( ok NOTIN *510 && paused NOTIN *510 ) { WAIT %bml_action_wait GOSUB BMWaitAction } RETURN #TRUE } ; CheckWeight================== SUB CheckWeight { IF %bml_maxweight = N/A { IF #MAXWEIGHT = N/A { EVENT MACRO 8 2 GOSUB WaitForVar MAXWEIGHT <> N/A IF ! #RESULT { DISPLAY OK Cannot get your max weight. HALTING! HALT } } SET %bml_maxweight #MAXWEIGHT - 25 IF ! %bml_freeshard { FINDITEM #CHARID IF #FINDTYPE IN HS_IS SET %bml_maxweight %bml_maxweight + 60 } } IF #WEIGHT > %bml_maxweight { ;Call your Bag of Sending script here ;) WHILE #WEIGHT > %bml_maxweight { IF #SCNT > %bml_owspamto || %bml_owspamto = N/A { EVENT EXMSG #CHARID 3 33 Nearly overweight! Please unload some loot. SET %bml_owspamto #SCNT + 6 } WAIT 10 } } RETURN }
codice:
;LootPack===================== ; %1 is the source cont ID ; %2 is the source cont type ;============================= SUB LootPack { IF %1 = %lootbagid || %1 = %regbagid || %1 = #BACKPACKID || %1 = #CHARID || %0 <> 2 RETURN #FALSE SET %idx %idx + 1 NAMESPACE PUSH NAMESPACE LOCAL BMLootPack . %idx SET !fcontid . %idx %1 SET !conttype . %idx %2 SET !success #TRUE ;Make script less intrusive by checking for lifted objects, target cursor, or char movement. REPEAT { GOSUB CheckStatus } UNTIL #RESULT ;Cut corpse if specified IF %bml_cutcorpse && %idx = 1 { GOSUB CutCorpse !fcontid . %idx IF #RESULT <> #TRUE { NAMESPACE CLEAR NAMESPACE POP SET %idx %idx - 1 RETURN #RESULT } } REPEAT { GOSUB CheckStatus } UNTIL #RESULT ;Open corpses and containers near the lower right corner of the game area for 800x600 res. IF %idx <= 1 || !conttype . %idx = YFM GOSUB OpenCorpse !fcontid . %idx IF %idx > 1 || !conttype . %idx <> YFM GOSUB OpenContainer !fcontid . %idx !conttype . %idx IF #RESULT <> #TRUE { NAMESPACE CLEAR NAMESPACE POP SET %idx %idx - 1 RETURN #RESULT } SET !contid . %idx #CONTID IF !contid . %idx <> !fcontid . %idx { FINDITEM YFM CA_ , !fcontid . %idx IF #FINDCNT > 1 SET !success instanced } WAIT %bml_waittime GOSUB BMWaitAction
Commenta