Negotiate Features - AssistUO/Razor - Extreme - 09-18-2013 09:27 AM
Hello guys!
Good news for you all...
A month ago I asked the community if someone could help me to make work the Negotiate Features with Server of AssistUO/Razor on our beloved sphere.
One guy named Feeh, my old friend helped me.
I want to give him 50% of the credits for the code because without his help with the sendpacket I wouldn't finish it.
Others 50% would go to me hahahaha
Can't forget Diego and Diogo from making the AssistUO, thats a VERY GOOD player assistant and release the MAPUO Protocol code, that will work with the code I will share.
Okay, let me explain how it works.
Do you remember the light, sound, music, season, weather filters on Razor?
Right, they are present on AssistUO too.
But with the right code, we can block them, so you will have your players always playing as you want to.
MapUO Protocol - Created by Diego (MapUO code) and modified by me to work the Negotiate Features.
PHP Code:
// MAPUO PROTOCOL SUPPORT // AUTHOR: DIEGO@RUNUO.COM // LAST UPDATE: 11/04/2013 // LAST UPDATE: 10/09/2013 - EXTREME // // INSTRUCTIONS: // // OPEN SPHERE.INI AND INSERT THE FOLLOWING LINE: // PACKET240=F_HANDLER_EXTENDEDPROTOCOL // // RESTART OR RESYNC THE SERVER IF NECESSARY. // YOU CAN ADJUST THE FOLLOWING DEFS AS YOU WISH
[DEFNAME MAPUO_SETTINGS] MAPUO_PARTY_ENABLED 1 MAPUO_GUILD_ENABLED 1 MAPUO_GUILD_HITPOINTS 1 MAPUO_GUILD_DISABLETAG MAPUO_INVISIBLE NEGOTIATE_FEATURES_ENABLED 1
[DEFNAME FEATURES] // 1 = BLOCK | 0 = ALLOW FEATURE.1 1,FilterWeather //= 1 << 0, // Weather filter FEATURE.2 1,FilterLight //= 1 << 1, // Light filter FEATURE.3 1,SmartTarget //= 1 << 2, // Smart targeting option FEATURE.4 1,RangedTarget //= 1 << 3, // Range check for targeting option FEATURE.5 0,AutoOpenDoors //= 1 << 4, // Automatically open doors FEATURE.6 0,DequipOnCast //= 1 << 5, // Clear hands before casting FEATURE.7 0,AutoPotionEquip //= 1 << 6, // Dequip and equip hands for potions FEATURE.8 0,PoisonedChecks //= 1 << 7, // Poisoned checks for macros and block heal if poisoned option FEATURE.9 0,LoopedMacros //= 1 << 8, // Looped macros FEATURE.10 0,UseOnceAgent //= 1 << 9, // Use once agent and command FEATURE.11 0,RestockAgent //= 1 << 10, // Restock agent FEATURE.12 0,SellAgent //= 1 << 11, // Vendor sell agent FEATURE.13 0,BuyAgent //= 1 << 12, // Vendor buy agent FEATURE.14 0,PotionHotkeys //= 1 << 13, // Potions hotkeys FEATURE.15 0,RandomTargets //= 1 << 14, // Random targeting hotkeys and commands FEATURE.16 0,ClosestTargets //= 1 << 15, // Closest targeting hotkeys and commands FEATURE.17 0,OverheadHealth //= 1 << 16, // Display health percentage over head FEATURE.18 1,AutolootAgent //= 1 << 17, // Autoloot agent FEATURE.19 1,BoneCutterAgent //= 1 << 18, // Bone cutter agent FEATURE.20 1,AdvancedMacros //= 1 << 19, // Advanced macros engine FEATURE.21 0,AutoRemount //= 1 << 20, // Automatically remound after dismount FEATURE.22 1,AutoBandage //= 1 << 21, // Automatically apply bandages FEATURE.23 1,BuffChecks //= 1 << 22, // Buff bar checks for macros FEATURE.24 1,FilterSeason //= 1 << 23, // Season filter
[DIALOG D_NEGOTIATE_FEATURES] 0,0 NOMOVE NOCLOSE GUMPPICTILED 0 0 806 606 2624 CHECKERTRANS 0 0 806 606
[FUNCTION F_FEATURES] LOCAL.FEATURES 0 SERV.LOG SETTING THE FEATURES TO NEGOTIATE FOR I 1 24 IF <GETARGVX 1,<DEF.FEATURE.<dLOCAL.I>>> == 1 LOCAL.FEATURES |= <HVAL 2@(<dLOCAL.I>-1)> SERV.LOG - <GETARGVX 2,<DEF.FEATURE.<dLOCAL.I>>> ENDIF ENDFOR SERV.LOG NEGOTIATE FEATURES SET <STRTOUPPER <LOCAL.FEATURES>> VAR.FEATURES <LOCAL.FEATURES> RETURN 1
[FUNCTION F_NEGOTIATE_FEATURES] SDIALOG D_NEGOTIATE_FEATURES TAG.NEGOTIATEFEATURES 1 FLAGS |= STATF_FREEZE SENDPACKET 0F0 00 0C 0FE D00 D<VAR.FEATURES> SYSMESSAGE @063,,1 To play here, you must use AssistUO or Razor and have 'Negotiate Features with Server' enabled. If it's disabled, you have 8 seconds to enable it or will be disconnected in 10 seconds. TIMERF 8,SENDPACKET 0F0 00 0C 0FE D00 D<VAR.FEATURES> TIMERF 10,F_NEGOTIATE_FEATURES_2 RETURN 1
[FUNCTION F_NEGOTIATE_FEATURES_2] IF <dTAG.NEGOTIATEFEATURES> FLAGS &= ~STATF_FREEZE SYSMESSAGE @026,,1 You must activate 'Negotiate Features with Server' in your assistant to play. IF <ISONLINE> SENDPACKET 082 04 ENDIF ENDIF RETURN 1
[FUNCTION F_NEGOTIATE_FEATURES_3] TAG.NEGOTIATEFEATURES FLAGS &= ~STATF_FREEZE TRYSRC <UID> DIALOGCLOSE D_NEGOTIATE_FEATURES SYSMESSAGE @044,,1 You negotiated the features with server and you're ready to play. UPDATEX RETURN 1
[FUNCTION F_HANDLER_EXTENDEDPROTOCOL] IF (<dLOCAL.NUM> <= 8) REF1 <LOCAL.CHAR> IF (<dARGN1> != 240) RETURN 1 ELSEIF (<dLOCAL.3> == 255) && (<REF1.dTAG.NEGOTIATEFEATURES>) REF1.F_NEGOTIATE_FEATURES_3 ELSEIF (<dLOCAL.3> == 0) && (<dDEF.MAPUO_PARTY_ENABLED> == 1) REF1.F_MAPUO_HANDLE_PARTY ELSEIF (<dLOCAL.3> == 1) && (<dDEF.MAPUO_GUILD_ENABLED> == 1) REF1.F_MAPUO_HANDLE_GUILD <dLOCAL.4> ENDIF RETURN 1 ENDIF
[FUNCTION F_MAPUO_HANDLE_PARTY] IF !<ISINPARTY> RETURN ENDIF LOCAL.DATA = <HVAL 01> LOCAL.COUNT = 0 FOR X 0 <EVAL <PARTY.MEMBERS> - 1> REF1 = <PARTY.MEMBER.<DLOCAL.X>> IF (<REF1>) && (<REF1> != <UID>) && (<DISTANCE <REF1>> >= 18) LOCAL.COUNT ++ LOCAL.DATA = <LOCAL.DATA> D<HVAL <REF1.UID>> W<HVAL <REF1.P.X>> W<HVAL <REF1.P.Y>> <HVAL <REF1.MAP>> ENDIF ENDFOR IF <DLOCAL.COUNT> > 0 LOCAL.DATA = <LOCAL.DATA> D<HVAL 00> LOCAL.LENGTH = <EVAL 4 + (<LOCAL.COUNT> * 9) + 4> SENDPACKET 0F0 W<HVAL <LOCAL.LENGTH>> <LOCAL.DATA> ENDIF
[FUNCTION F_MAPUO_HANDLE_GUILD] IF !<GUILD> SENDPACKET 0F0 W<HVAL 9> <HVAL 2> <HVAL 0> D<HVAL 00> RETURN ENDIF LOCAL.DATA = <HVAL 02> <HVAL <ARGN1>> LOCAL.COUNT = 0 FOR X 0 <EVAL <GUILD.MEMBER.COUNT> - 1> REF1 = <GUILD.MEMBER.<DLOCAL.X>.UID> IF (<REF1>) && (<REF1> != <UID>) && (<REF1.ISONLINE>) && (<DREF1.TAG0.<DEF.MAPUO_GUILD_DISABLETAG>> == 0) IF (<DARGN1> == 0) || ((<DARGN1> == 1) && (<DISTANCE <REF1>> >= 18)) LOCAL.COUNT ++ LOCAL.DATA = <LOCAL.DATA> D<HVAL <REF1.UID>> IF (<DARGN1> == 1) LOCAL.DATA = <LOCAL.DATA> W<HVAL <REF1.P.X>> W<HVAL <REF1.P.Y>> <HVAL <REF1.MAP>> <HVAL <REF1.F_MAPUO_HITSPERCENT>> ENDIF ENDIF ENDIF ENDFOR LOCAL.DATA = <LOCAL.DATA> D<HVAL 00> IF (<DARGN1> == 0) LOCAL.LENGTH = <EVAL 5 + (<LOCAL.COUNT> * 4) + 4> ELSE LOCAL.LENGTH = <EVAL 5 + (<LOCAL.COUNT> * 10) + 4> ENDIF SENDPACKET 0F0 W<HVAL <LOCAL.LENGTH>> <LOCAL.DATA>
[FUNCTION F_MAPUO_HITSPERCENT] IF (<dDEF.MAPUO_GUILD_HITPOINTS>) && (<MAXHITS> > 0) RETURN <FEVAL <FLOATVAL (<HITS> / <MAXHITS>) * 100>> ELSE RETURN 0 ENDIF
[EOF]
PHP Code:
[FUNCTION F_ONSERVER_START] F_FEATURES
On Sphere_skills.scp
PHP Code:
ON=@LOGIN IF <dDEF.NEGOTIATE_FEATURES_ENABLED> == 1 F_NEGOTIATE_FEATURES ENDIF
If you don't have this function, copy it.
PHP Code:
[PLEVEL 7] GETARGVX
[FUNCTION GETARGVX] IF <ARGV[0]> == -1 RETURN <EVAL <ARGV>-1> ELSE RETURN <ARGV[<ARGV[0]>]> ENDIF
[EOF]
Quick Guide
- Add the "PACKET240=F_HANDLER_EXTENDEDPROTOCOL" on Sphere.ini;
- Add the "F_FEATURES" function on Sphere_serv_triggers.scp;
- Add the "F_NEGOTIATE_FEATURES" on @Login in Sphere_skills.scp;
- Set what you want to block/allow on DEFNAMES and save; (Note: the features will be calculated on F_FEATURES, so it will be calculated on F_ONSERVER_START or you can use .F_FEATURES)
- To login, use AUO or Razor with the 'Negotiate features with server' enabled;
- Give me millions of +rep;
- Enjoy.
Edit: added defname to enable/disable the negotiate features.
RE: Negotiate Features - AssistUO/Razor - XuN - 09-18-2013 09:48 AM
Just one word: EPIC
RE: Negotiate Features - AssistUO/Razor - RanXerox - 09-18-2013 09:56 AM
Nice job
RE: Negotiate Features - AssistUO/Razor - Soulless - 09-18-2013 09:59 AM
This is really good. well done sir.
RE: Negotiate Features - AssistUO/Razor - XuN - 09-18-2013 05:35 PM
I asume this is about them (AssistUO) but if you tick Light filter and then log in you get the light filter even if you blocked it, but in this moment you can't tick it out.
And dunno if I'm doing anything wrong (instructions about installing it are very simple) but I can't do more than few steps upon login, I must move using teleports!
RE: Negotiate Features - AssistUO/Razor - Extreme - 09-18-2013 08:36 PM
(09-18-2013 05:35 PM)XuN Wrote: I asume this is about them (AssistUO) but if you tick Light filter and then log in you get the light filter even if you blocked it, but in this moment you can't tick it out.
And dunno if I'm doing anything wrong (instructions about installing it are very simple) but I can't do more than few steps upon login, I must move using teleports!
Oh, just forgot the UPDATEX on the player.
Code updated.
Thanks XuN.
RE: Negotiate Features - AssistUO/Razor - Mordaunt - 09-18-2013 08:42 PM
Well.. no one else has posted anything so I guess it's just me but....
Code:
05:39:(negotiate.scp,55)SETTING THE FEATURES TO NEGOTIATE
05:39:ERROR:(negotiate.scp,57)Can't resolve <GETARGVX 1,1,FilterWeather>
05:39:ERROR:(negotiate.scp,57)Undefined symbol ''
05:39:ERROR:(negotiate.scp,57)Can't resolve <GETARGVX 1,0,FilterLight>
05:39:ERROR:(negotiate.scp,57)Undefined symbol ''
05:39:ERROR:(negotiate.scp,57)Can't resolve <GETARGVX 1,1,SmartTarget>
05:39:ERROR:(negotiate.scp,57)Undefined symbol ''
05:39:ERROR:(negotiate.scp,57)Can't resolve <GETARGVX 1,1,RangedTarget>
05:39:ERROR:(negotiate.scp,57)Undefined symbol ''
05:39:ERROR:(negotiate.scp,57)Can't resolve <GETARGVX 1,0,AutoOpenDoors>
05:39:ERROR:(negotiate.scp,57)Undefined symbol ''
05:39:ERROR:(negotiate.scp,57)Can't resolve <GETARGVX 1,0,DequipOnCast>
05:39:ERROR:(negotiate.scp,57)Undefined symbol ''
05:39:ERROR:(negotiate.scp,57)Can't resolve <GETARGVX 1,0,AutoPotionEquip>
05:39:ERROR:(negotiate.scp,57)Undefined symbol ''
05:39:ERROR:(negotiate.scp,57)Can't resolve <GETARGVX 1,0,PoisonedChecks>
05:39:ERROR:(negotiate.scp,57)Undefined symbol ''
05:39:ERROR:(negotiate.scp,57)Can't resolve <GETARGVX 1,0,LoopedMacros>
05:39:ERROR:(negotiate.scp,57)Undefined symbol ''
05:39:ERROR:(negotiate.scp,57)Can't resolve <GETARGVX 1,0,UseOnceAgent>
05:39:ERROR:(negotiate.scp,57)Undefined symbol ''
05:39:ERROR:(negotiate.scp,57)Can't resolve <GETARGVX 1,0,RestockAgent>
05:39:ERROR:(negotiate.scp,57)Undefined symbol ''
05:39:ERROR:(negotiate.scp,57)Can't resolve <GETARGVX 1,0,SellAgent>
05:39:ERROR:(negotiate.scp,57)Undefined symbol ''
05:39:ERROR:(negotiate.scp,57)Can't resolve <GETARGVX 1,0,BuyAgent>
05:39:ERROR:(negotiate.scp,57)Undefined symbol ''
05:39:ERROR:(negotiate.scp,57)Can't resolve <GETARGVX 1,0,PotionHotkeys>
05:39:ERROR:(negotiate.scp,57)Undefined symbol ''
05:39:ERROR:(negotiate.scp,57)Can't resolve <GETARGVX 1,0,RandomTargets>
05:39:ERROR:(negotiate.scp,57)Undefined symbol ''
05:39:ERROR:(negotiate.scp,57)Can't resolve <GETARGVX 1,0,ClosestTargets>
05:39:ERROR:(negotiate.scp,57)Undefined symbol ''
05:39:ERROR:(negotiate.scp,57)Can't resolve <GETARGVX 1,0,OverheadHealth>
05:39:ERROR:(negotiate.scp,57)Undefined symbol ''
05:39:ERROR:(negotiate.scp,57)Can't resolve <GETARGVX 1,1,AutolootAgent>
05:39:ERROR:(negotiate.scp,57)Undefined symbol ''
05:39:ERROR:(negotiate.scp,57)Can't resolve <GETARGVX 1,1,BoneCutterAgent>
05:39:ERROR:(negotiate.scp,57)Undefined symbol ''
05:39:ERROR:(negotiate.scp,57)Can't resolve <GETARGVX 1,1,AdvancedMacros>
05:39:ERROR:(negotiate.scp,57)Undefined symbol ''
05:39:ERROR:(negotiate.scp,57)Can't resolve <GETARGVX 1,0,AutoRemount>
05:39:ERROR:(negotiate.scp,57)Undefined symbol ''
05:39:ERROR:(negotiate.scp,57)Can't resolve <GETARGVX 1,1,AutoBandage>
05:39:ERROR:(negotiate.scp,57)Undefined symbol ''
05:39:ERROR:(negotiate.scp,57)Can't resolve <GETARGVX 1,1,BuffChecks>
05:39:ERROR:(negotiate.scp,57)Undefined symbol ''
05:39:ERROR:(negotiate.scp,57)Can't resolve <GETARGVX 1,1,FilterSeason>
05:39:ERROR:(negotiate.scp,57)Undefined symbol ''
05:39:(negotiate.scp,62)NEGOTIATE FEATURES SET 00
Took 7 steps ingame after it allowed me in and then it froze up...
Your UPDATEX does not solve the walking issue...
Just tried it.
RE: Negotiate Features - AssistUO/Razor - Extreme - 09-19-2013 01:01 AM
(09-18-2013 08:42 PM)Mordaunt Wrote: Well.. no one else has posted anything so I guess it's just me but....
Took 7 steps ingame after it allowed me in and then it froze up...
Your UPDATEX does not solve the walking issue...
Just tried it.
Updated the first post with GETARGVX function, so you can get it there.
Whats the walking issue?
RE: Negotiate Features - AssistUO/Razor - Mordaunt - 09-19-2013 01:26 AM
Sphere build: Sep 15 2013 (00:05:19), internal build #1626
UO Client: 7.0.32.11
Razor: 1.0.13
Errors fixed now.
However same issue as Xun.... take 7 to 11 steps and then unable to move anymore
Can talk, cast e.t.c..
Teleporting to a new location frees the player up for another 7 to 11 steps then same issue
RE: Negotiate Features - AssistUO/Razor - XuN - 09-19-2013 01:59 AM
Yes, the problem is only that, we can everything except moving. I also had the getargvx error, but I changed with my function and forgot about it
|