easier way? - x77x - 05-30-2017 06:50 AM
Code:
[REGIONTYPE r_britain]
ON=@ENTER
IF (<SRC.MEMORYFINDTYPE.0400.LINK>==040004000) && (<UID.040004100.LINK>==01000)//shan
SRC.SYSMESSAGE There's no place like home...
RETURN 0
ELSE
IF (<SRC.MEMORYFINDTYPE.0400.LINK>>040004000) && (<UID.040004100.LINK>==01000)//shan
SRC.SYSMESSAGE You are in enemy territory...
REF1 = <UID.040004000>
REF1.ALLMEMBERS -1,SYSMESSAGE @090 An enemy soldier has been spotted in <UID.040004100.NAME>.
RETURN 0
//wu
ELSE
IF (<SRC.MEMORYFINDTYPE.0400.LINK>==040004001) && (<UID.040004100.LINK>==01001)//graham
SRC.SYSMESSAGE There's no place like home...
RETURN 0
ELSE
IF (<SRC.MEMORYFINDTYPE.0400.LINK>==040004000) || (<SRC.MEMORYFINDTYPE.0400.LINK>>040004001) && (<UID.040004100.LINK>==01001)//graham
SRC.SYSMESSAGE You are in enemy territory...
REF1 = <UID.040004001>
REF1.ALLMEMBERS -1,SYSMESSAGE @090 An enemy soldier has been spotted in <UID.040004100.NAME>.
RETURN 0
//shu
ELSE
IF (<SRC.MEMORYFINDTYPE.0400.LINK>==040004002) && (<UID.040004100.LINK>==01002)//rhast
SRC.SYSMESSAGE There's no place like home...
RETURN 0
ELSE
IF (<SRC.MEMORYFINDTYPE.0400.LINK>==040004000) || (<SRC.MEMORYFINDTYPE.0400.LINK>==040004001) || (<SRC.MEMORYFINDTYPE.0400.LINK>>040004002) && (<UID.040004100.LINK>==01002)//rhast
SRC.SYSMESSAGE You are in enemy territory...
REF1 = <UID.040004002>
REF1.ALLMEMBERS -1,SYSMESSAGE @090 An enemy soldier has been spotted in <UID.040004100.NAME>.
RETURN 0
//ys
ELSE
IF (<SRC.MEMORYFINDTYPE.0400.LINK>==040004003) && (<UID.040004100.LINK>==01003)//mulldawg
SRC.SYSMESSAGE There's no place like home...
RETURN 0
ELSE
IF (<SRC.MEMORYFINDTYPE.0400.LINK>==040004000) || (<SRC.MEMORYFINDTYPE.0400.LINK>==040004001) || (<SRC.MEMORYFINDTYPE.0400.LINK>==040004002) || (<SRC.MEMORYFINDTYPE.0400.LINK>>040004003) && (<UID.040004100.LINK>==01003)//mulldawg
SRC.SYSMESSAGE You are in enemy territory...
REF1 = <UID.040004003>
REF1.ALLMEMBERS -1,SYSMESSAGE @090 An enemy soldier has been spotted in <UID.040004100.NAME>.
RETURN 0
//lb
ELSE
IF (<SRC.MEMORYFINDTYPE.0400.LINK>==040004004) && (<UID.040004100.LINK>==01004)//warchild
SRC.SYSMESSAGE There's no place like home...
RETURN 0
ELSE
IF (<SRC.MEMORYFINDTYPE.0400.LINK>==040004000) || (<SRC.MEMORYFINDTYPE.0400.LINK>==040004001) || (<SRC.MEMORYFINDTYPE.0400.LINK>==040004002) || (<SRC.MEMORYFINDTYPE.0400.LINK>==040004003) || (<SRC.MEMORYFINDTYPE.0400.LINK>>040004004) && (<UID.040004100.LINK>==01004)//warchild
SRC.SYSMESSAGE You are in enemy territory...
REF1 = <UID.040004004>
REF1.ALLMEMBERS -1,SYSMESSAGE @090 An enemy soldier has been spotted in <UID.040004100.NAME>.
RETURN 0
//yt
ELSE
IF (<SRC.MEMORYFINDTYPE.0400.LINK>==040004005) && (<UID.040004100.LINK>==01005)//jerico
SRC.SYSMESSAGE There's no place like home...
RETURN 0
ELSE
IF (<SRC.MEMORYFINDTYPE.0400.LINK>==040004000) || (<SRC.MEMORYFINDTYPE.0400.LINK>==040004001) || (<SRC.MEMORYFINDTYPE.0400.LINK>==040004002) || (<SRC.MEMORYFINDTYPE.0400.LINK>==040004003) || (<SRC.MEMORYFINDTYPE.0400.LINK>==040004004) || (<SRC.MEMORYFINDTYPE.0400.LINK>>040004005) && (<UID.040004100.LINK>==01005)//jerico
SRC.SYSMESSAGE You are in enemy territory...
REF1 = <UID.040004005>
REF1.ALLMEMBERS -1,SYSMESSAGE @090 An enemy soldier has been spotted in <UID.040004100.NAME>.
RETURN 0
//mh
ELSE
IF (<SRC.MEMORYFINDTYPE.0400.LINK>==040004006) && (<UID.040004100.LINK>==01006)//spanky
SRC.SYSMESSAGE There's no place like home...
RETURN 0
ELSE
IF (<SRC.MEMORYFINDTYPE.0400.LINK>==040004000) || (<SRC.MEMORYFINDTYPE.0400.LINK>==040004001) || (<SRC.MEMORYFINDTYPE.0400.LINK>==040004002) || (<SRC.MEMORYFINDTYPE.0400.LINK>==040004003) || (<SRC.MEMORYFINDTYPE.0400.LINK>==040004004) || (<SRC.MEMORYFINDTYPE.0400.LINK>==040004005) || (<SRC.MEMORYFINDTYPE.0400.LINK>>040004006) && (<UID.040004100.LINK>==01006)//spanky
SRC.SYSMESSAGE You are in enemy territory...
REF1 = <UID.040004006>
REF1.ALLMEMBERS -1,SYSMESSAGE @090 An enemy soldier has been spotted in <UID.040004100.NAME>.
RETURN 0
ELSE
IF (<SRC.MEMORYFINDTYPE.0400.LINK>==040004007) && (<UID.040004100.LINK>==01007)//darkstarr
SRC.SYSMESSAGE There's no place like home...
RETURN 0
ELSE
IF (<SRC.MEMORYFINDTYPE.0400.LINK>==040004000) || (<SRC.MEMORYFINDTYPE.0400.LINK>==040004001) || (<SRC.MEMORYFINDTYPE.0400.LINK>==040004002) || (<SRC.MEMORYFINDTYPE.0400.LINK>==040004003) || (<SRC.MEMORYFINDTYPE.0400.LINK>==040004004) || (<SRC.MEMORYFINDTYPE.0400.LINK>==040004005) || (<SRC.MEMORYFINDTYPE.0400.LINK>==040004006) || (<SRC.MEMORYFINDTYPE.0400.LINK>>040004007) && (<UID.040004100.LINK>==01007)//darkstarr
SRC.SYSMESSAGE You are in enemy territory...
REF1 = <UID.040004007>
REF1.ALLMEMBERS -1,SYSMESSAGE @090 An enemy soldier has been spotted in <UID.040004100.NAME>.
RETURN 0
ELSE
IF (<SRC.MEMORYFINDTYPE.0400.LINK>==040004008) && (<UID.040004100.LINK>==01008)//gfresh
SRC.SYSMESSAGE There's no place like home...
RETURN 0
ELSE
IF (<SRC.MEMORYFINDTYPE.0400.LINK>==040004000) || (<SRC.MEMORYFINDTYPE.0400.LINK>==040004001) || (<SRC.MEMORYFINDTYPE.0400.LINK>==040004002) || (<SRC.MEMORYFINDTYPE.0400.LINK>==040004003) || (<SRC.MEMORYFINDTYPE.0400.LINK>==040004004) || (<SRC.MEMORYFINDTYPE.0400.LINK>==040004005) || (<SRC.MEMORYFINDTYPE.0400.LINK>==040004006) || (<SRC.MEMORYFINDTYPE.0400.LINK>==040004007) || (<SRC.MEMORYFINDTYPE.0400.LINK>>040004008) && (<UID.040004100.LINK>==01008)//gfresh
SRC.SYSMESSAGE You are in enemy territory...
REF1 = <UID.040004008>
REF1.ALLMEMBERS -1,SYSMESSAGE @090 An enemy soldier has been spotted in <UID.040004100.NAME>.
RETURN 0
ENDIF
RE: easier way? - Coruja - 05-30-2017 01:05 PM
all these numbers seems to follow the same logic, so instead write the same logic many times, you can replace it with just a single logic that is valid for all values
I have no idea if this is correct because I don't know the rest of the code
Code:
[REGIONTYPE r_britain]
ON=@Enter
IF (<SRC.GUILD>)
REF1=040004100
REF2=<eval <REF1.LINK>+040003000>
IF (<SRC.GUILD.LINK>==<REF2>)
SRC.SYSMESSAGE There's no place like home...
ELSE
SRC.SYSMESSAGE You are in enemy territory...
REF2.ALLMEMBERS -1,SYSMESSAGE @090 An enemy soldier has been spotted in <REF1.NAME>.
ENDIF
ENDIF
RE: easier way? - x77x - 05-30-2017 04:58 PM
that is the whole code...
IF (<SRC.MEMORYFINDTYPE.0400.LINK>==040004000) && (<UID.040004100.LINK>==01000)//shan
is your guildstone owner and you the town owner the same
if not, you are in enemy territory and it warns the guild who owns the town
040004000
040004001
040004002
040004003
040004004
040004005
040004006
040004007
040004008
are the guildstone IDs
01000
01001
01002
01003
01004
01005
01006
01007
01008
are the guildstone owners IDs
[REGIONTYPE r_britain]
040004100 is the townstone in brit
[REGIONTYPE r_yew]
040004101 is the townstone in yew
[REGIONTYPE r_cove]
040004102 is the townstone in cove
ect...
the townstones link is the guildmasters id, who owns the town
RE: easier way? - Coruja - 05-31-2017 04:24 AM
yes that's what I thought
all these numbers follow the same logic of "base value" + x
using an random number as example, 2 is the cove guild, so cove guildstone will be 040004000 + 2 and cove owner is 01000 + 2
with just these 2 values you can check if the player is on cove guild, if the player is on home/enemy territory, etc
RE: easier way? - x77x - 05-31-2017 11:07 AM
this?
Code:
[REGIONTYPE r_britain]//040004100 brit townstone
ON=@Enter
IF (<SRC.GUILD>)
REF1=<UID.040004100.LINK>
REF2=<UID.040004100>
IF (<SRC.MEMORYFINDTYPE.0400.LINK>==<REF1>)
SRC.SYSMESSAGE There's no place like home...
ELSEIF !(<SRC.MEMORYFINDTYPE.0400.LINK>==<REF1>)
SRC.SYSMESSAGE You are in enemy territory...
REF1.ALLMEMBERS -1,SYSMESSAGE @090 An enemy soldier has been spotted in <REF2.NAME>.
ENDIF
ENDIF
or this?
Code:
[REGIONTYPE r_britain]//040004100 brit townstone
ON=@Enter
IF (<SRC.GUILD>)
REF1=<UID.040004100>
IF (<SRC.MEMORYFINDTYPE.0400.LINK>==<REF1.LINK>)
SRC.SYSMESSAGE There's no place like home...
ELSEIF !(<SRC.MEMORYFINDTYPE.0400.LINK>==<REF1.LINK>)
SRC.SYSMESSAGE You are in enemy territory...
REF1.ALLMEMBERS -1,SYSMESSAGE @090 An enemy soldier has been spotted in <REF1.NAME>.
ENDIF
ENDIF
just have to change the townstone link to the guild owners uid =)
RE: easier way? - Coruja - 06-01-2017 05:29 PM
both seems to be the same thing and can be optimized:
Code:
[REGIONTYPE r_britain]
ON=@Enter
IF (<SRC.GUILD>)
REF1=040004100 //brit townstone
IF (<SRC.GUILD.LINK>==<REF1.LINK>)
SRC.SYSMESSAGE There's no place like home...
ELSE
SRC.SYSMESSAGE You are in enemy territory...
REF1.ALLMEMBERS -1,SYSMESSAGE @090 An enemy soldier has been spotted in <REF1.NAME>.
ENDIF
ENDIF
I don't know if on your server ppl can have guildstones linked to this townstone, or if the player guild is already the townstone. This code seems to work on both cases, but if the player guild is already the townstone, you can skip these LINK checks replacing (<SRC.GUILD.LINK>==<REF1.LINK>) with (<SRC.GUILD>==<REF1>)
PS: <MEMORYFINDTYPE.0400> = <MEMORYFINDTYPE.memory_guild> = <GUILD>
|