mirror of
https://github.com/ProjectSWGCore/NGECore2.git
synced 2026-09-11 21:45:43 -04:00
Merge remote-tracking branch 'upstream/master'
This commit is contained in:
+78
-78
@@ -1,95 +1,95 @@
|
||||
goto
|
||||
findobject
|
||||
teleport
|
||||
teleportto
|
||||
invulnerable
|
||||
kill
|
||||
setspeed
|
||||
planetwarp
|
||||
harmfull
|
||||
harmless
|
||||
object
|
||||
searchcorpse
|
||||
giveitem
|
||||
sethue
|
||||
editbank
|
||||
editbankaccount
|
||||
editappearance
|
||||
editstats
|
||||
snoop
|
||||
wipeitems
|
||||
findplayer
|
||||
findobject
|
||||
findobjectbytemplate
|
||||
findcreature
|
||||
getgametime
|
||||
getplayerid
|
||||
getstationname
|
||||
grantbadge
|
||||
grantbadgearea
|
||||
granttitle
|
||||
revokebadge
|
||||
revoketitle
|
||||
gmrevive
|
||||
getrank
|
||||
setfaction
|
||||
settef
|
||||
setfactionstanding
|
||||
setrank
|
||||
killplayer
|
||||
teleporttarget
|
||||
planetwarptarget
|
||||
freezeplayer
|
||||
unfreezeplayer
|
||||
squelch
|
||||
unsquelch
|
||||
adjustlotcount
|
||||
credits
|
||||
editappearance
|
||||
kick
|
||||
maxcombatability
|
||||
maxstats
|
||||
money
|
||||
setfirstname
|
||||
setlastname
|
||||
setname
|
||||
setplayerstate
|
||||
uncityban
|
||||
setbiographyadmin
|
||||
activatequest
|
||||
activateinstance
|
||||
clearcompletedquest
|
||||
completequest
|
||||
listactivequests
|
||||
listcompletedquests
|
||||
grantskill
|
||||
revokeskill
|
||||
setexperience
|
||||
listguildes
|
||||
cityinfo
|
||||
activatequest
|
||||
addbannedplayer
|
||||
adjustlotcount
|
||||
broadcast
|
||||
broadcastarea
|
||||
broadcastplanet
|
||||
broadcastgalaxy
|
||||
addbannedplayer
|
||||
emptymailtarget
|
||||
getaccountinfo
|
||||
removebannedplayer
|
||||
broadcastplanet
|
||||
cityinfo
|
||||
clearcompletedquest
|
||||
clearveteranreward
|
||||
completequest
|
||||
createcreature
|
||||
createnpc
|
||||
createmissionelement
|
||||
createnpc
|
||||
createspawningelement
|
||||
createspawningelementwithdifficulty
|
||||
createstaticitem
|
||||
credits
|
||||
editappearance
|
||||
editappearance
|
||||
editbank
|
||||
editbankaccount
|
||||
editstats
|
||||
emptymailtarget
|
||||
findcreature
|
||||
findobject
|
||||
findobject
|
||||
findobjectbytemplate
|
||||
findplayer
|
||||
freezeplayer
|
||||
getaccountinfo
|
||||
getgametime
|
||||
getplayerid
|
||||
getrank
|
||||
getspawndelays
|
||||
getstationname
|
||||
giveitem
|
||||
gmrevive
|
||||
goto
|
||||
grantbadge
|
||||
grantbadgearea
|
||||
grantskill
|
||||
granttitle
|
||||
harmfull
|
||||
harmless
|
||||
hasveteranreward
|
||||
invulnerable
|
||||
kick
|
||||
kill
|
||||
killplayer
|
||||
listactivequests
|
||||
listcompletedquests
|
||||
listguildes
|
||||
maxcombatability
|
||||
maxstats
|
||||
money
|
||||
object
|
||||
planetwarp
|
||||
planetwarptarget
|
||||
removebannedplayer
|
||||
revokebadge
|
||||
revokeskill
|
||||
revoketitle
|
||||
searchcorpse
|
||||
setbiographyadmin
|
||||
setexperience
|
||||
setfaction
|
||||
setfactionstanding
|
||||
setfirstname
|
||||
sethue
|
||||
setlastname
|
||||
setmaximumspawntime
|
||||
setminimumspawntime
|
||||
setname
|
||||
setplayerstate
|
||||
setrank
|
||||
setspeed
|
||||
settef
|
||||
setveteranreward
|
||||
setveteranrewardtimecs
|
||||
showspawnregion
|
||||
snoop
|
||||
squelch
|
||||
startspawner
|
||||
starttargetspawner
|
||||
stopspawner
|
||||
stoptargetspawner
|
||||
clearveteranreward
|
||||
hasveteranreward
|
||||
setveteranrewardtimecs
|
||||
setveteranreward
|
||||
teleport
|
||||
teleporttarget
|
||||
teleportto
|
||||
uncityban
|
||||
unfreezeplayer
|
||||
unsquelch
|
||||
wipeitems
|
||||
|
||||
+88
-89
@@ -1,103 +1,102 @@
|
||||
gmforcecommand
|
||||
goto
|
||||
findobject
|
||||
teleport
|
||||
teleportto
|
||||
invulnerable
|
||||
kill
|
||||
setspeed
|
||||
planetwarp
|
||||
harmfull
|
||||
harmless
|
||||
object
|
||||
searchcorpse
|
||||
giveitem
|
||||
sethue
|
||||
editbank
|
||||
editbankaccount
|
||||
editappearance
|
||||
editstats
|
||||
snoop
|
||||
wipeitems
|
||||
findplayer
|
||||
findobject
|
||||
findobjectbytemplate
|
||||
findcreature
|
||||
getgametime
|
||||
getplayerid
|
||||
getstationname
|
||||
gmrevive
|
||||
getrank
|
||||
setfaction
|
||||
settef
|
||||
setfactionstanding
|
||||
setrank
|
||||
killplayer
|
||||
teleporttarget
|
||||
planetwarptarget
|
||||
adjustlotcount
|
||||
editappearance
|
||||
kick
|
||||
maxcombatability
|
||||
maxstats
|
||||
setfirstname
|
||||
setlastname
|
||||
setname
|
||||
setplayerstate
|
||||
activtequest
|
||||
activateinstance
|
||||
clearcompletedquest
|
||||
completequest
|
||||
activatequest
|
||||
listactivequests
|
||||
listcompletedquests
|
||||
grantskill
|
||||
revokeskill
|
||||
setexperience
|
||||
listguildes
|
||||
cityinfo
|
||||
createcreature
|
||||
createnpc
|
||||
createmissionelement
|
||||
createspawningelement
|
||||
createspawningelementwithdifficulty
|
||||
createstaticitem
|
||||
getspawndelays
|
||||
setmaximumspawntime
|
||||
setminimumspawntime
|
||||
showspawnregion
|
||||
startspawner
|
||||
starttargetspawner
|
||||
stopspawner
|
||||
stoptargetspawner
|
||||
clearveteranreward
|
||||
hasveteranreward
|
||||
setveteranrewardtimecs
|
||||
setveteranreward
|
||||
adjustlotcount
|
||||
aiignore
|
||||
cityinfo
|
||||
clearcompletedquest
|
||||
clearveteranreward
|
||||
combat
|
||||
craft
|
||||
forcecommand
|
||||
generatecrafteditem
|
||||
getobjvars
|
||||
gmcreateclassresource
|
||||
gmcreatespecificresource
|
||||
manufacture
|
||||
showfactioninformation
|
||||
qatool
|
||||
startrestussstagetwo
|
||||
completerestusstageone
|
||||
spewcommandqueue
|
||||
combatdatarecord
|
||||
combatdataclear
|
||||
combatdatarecord
|
||||
combatdatareport
|
||||
combatdatastop
|
||||
combatmodecheck
|
||||
completequest
|
||||
completerestusstageone
|
||||
craft
|
||||
createcreature
|
||||
createmissionelement
|
||||
createnpc
|
||||
createspawningelement
|
||||
createspawningelementwithdifficulty
|
||||
createstaticitem
|
||||
csdumptarget
|
||||
database
|
||||
destroy
|
||||
dumptargetinformation
|
||||
dumpzoneinformation
|
||||
editappearance
|
||||
editappearance
|
||||
editbank
|
||||
editbankaccount
|
||||
editstats
|
||||
findcreature
|
||||
findobject
|
||||
findobject
|
||||
findobjectbytemplate
|
||||
findplayer
|
||||
forcecommand
|
||||
generatecrafteditem
|
||||
getgametime
|
||||
getobjvars
|
||||
getplayerid
|
||||
getrank
|
||||
getspawndelays
|
||||
getstationname
|
||||
giveitem
|
||||
gmcreateclassresource
|
||||
gmcreatespecificresource
|
||||
gmforcecommand
|
||||
gmrevive
|
||||
goto
|
||||
grantskill
|
||||
harmfull
|
||||
harmless
|
||||
hasveteranreward
|
||||
initializecomponent
|
||||
script
|
||||
invulnerable
|
||||
kick
|
||||
kill
|
||||
killplayer
|
||||
lag
|
||||
csdumptarget
|
||||
listactivequests
|
||||
listcompletedquests
|
||||
listguildes
|
||||
manufacture
|
||||
maxcombatability
|
||||
maxstats
|
||||
object
|
||||
planetwarp
|
||||
planetwarptarget
|
||||
qatool
|
||||
revokeskill
|
||||
script
|
||||
searchcorpse
|
||||
setexperience
|
||||
setfaction
|
||||
setfactionstanding
|
||||
setfirstname
|
||||
sethue
|
||||
setlastname
|
||||
setmaximumspawntime
|
||||
setminimumspawntime
|
||||
setname
|
||||
setplayerstate
|
||||
setrank
|
||||
setspeed
|
||||
settef
|
||||
setveteranreward
|
||||
setveteranrewardtimecs
|
||||
showfactioninformation
|
||||
showspawnregion
|
||||
snoop
|
||||
spewcommandqueue
|
||||
startrestussstagetwo
|
||||
startspawner
|
||||
starttargetspawner
|
||||
stopspawner
|
||||
stoptargetspawner
|
||||
teleport
|
||||
teleporttarget
|
||||
teleportto
|
||||
wipeitems
|
||||
|
||||
+74
-74
@@ -1,80 +1,25 @@
|
||||
goto
|
||||
findobject
|
||||
teleport
|
||||
teleportto
|
||||
invulnerable
|
||||
kill
|
||||
setspeed
|
||||
planetwarp
|
||||
harmfull
|
||||
harmless
|
||||
object
|
||||
searchcorpse
|
||||
giveitem
|
||||
sethue
|
||||
findplayer
|
||||
findobject
|
||||
findobjectbytemplate
|
||||
findcreature
|
||||
getgametime
|
||||
getplayerid
|
||||
getstationname
|
||||
grantbadge
|
||||
grantbadgearea
|
||||
granttitle
|
||||
revokebadge
|
||||
revoketitle
|
||||
gmrevive
|
||||
getrank
|
||||
setfaction
|
||||
settef
|
||||
setfactionstanding
|
||||
setrank
|
||||
killplayer
|
||||
teleporttarget
|
||||
planetwarptarget
|
||||
freezeplayer
|
||||
unfreezeplayer
|
||||
squelch
|
||||
unsquelch
|
||||
adjustlotcount
|
||||
credits
|
||||
editappearance
|
||||
kick
|
||||
maxcombatability
|
||||
maxstats
|
||||
money
|
||||
setfirstname
|
||||
setlastname
|
||||
setname
|
||||
setplayerstate
|
||||
activatequest
|
||||
activateinstance
|
||||
clearcompletedquest
|
||||
completequest
|
||||
listactivequests
|
||||
listcompletedquests
|
||||
grantskill
|
||||
revokeskill
|
||||
setexperience
|
||||
activatequest
|
||||
adjustlotcount
|
||||
broadcast
|
||||
broadcastarea
|
||||
broadcastplanet
|
||||
broadcastgalaxy
|
||||
broadcastplanet
|
||||
clearcompletedquest
|
||||
completequest
|
||||
completerestusstageone
|
||||
createcreature
|
||||
createnpc
|
||||
createmissionelement
|
||||
createnpc
|
||||
createspawningelement
|
||||
createspawningelementwithdifficulty
|
||||
createstaticitem
|
||||
getspawndelays
|
||||
setmaximumspawntime
|
||||
setminimumspawntime
|
||||
showspawnregion
|
||||
startspawner
|
||||
starttargetspawner
|
||||
stopspawner
|
||||
stoptargetspawner
|
||||
credits
|
||||
csstorytellerdestroyallobjects
|
||||
csstorytellerdestroynpcs
|
||||
csstorytellerdestroyparticles
|
||||
csstorytellerdestroyprops
|
||||
editappearance
|
||||
eventbuff
|
||||
eventbuffarea
|
||||
eventbufftarget
|
||||
@@ -88,11 +33,66 @@ eventteftarget
|
||||
eventundomovetome
|
||||
eventvaderchoke
|
||||
eventweapon
|
||||
setplayerappearance
|
||||
findcreature
|
||||
findobject
|
||||
findobject
|
||||
findobjectbytemplate
|
||||
findplayer
|
||||
freezeplayer
|
||||
getgametime
|
||||
getplayerid
|
||||
getrank
|
||||
getspawndelays
|
||||
getstationname
|
||||
giveitem
|
||||
gmrevive
|
||||
goto
|
||||
grantbadge
|
||||
grantbadgearea
|
||||
grantskill
|
||||
granttitle
|
||||
harmfull
|
||||
harmless
|
||||
invulnerable
|
||||
kick
|
||||
kill
|
||||
killplayer
|
||||
listactivequests
|
||||
listcompletedquests
|
||||
maxcombatability
|
||||
maxstats
|
||||
money
|
||||
object
|
||||
planetwarp
|
||||
planetwarptarget
|
||||
revokebadge
|
||||
revokeplayerappearance
|
||||
csstorytellerdestroynpcs
|
||||
csstorytellerdestroyprops
|
||||
csstorytellerdestroyparticles
|
||||
csstorytellerdestroyallobjects
|
||||
revokeskill
|
||||
revoketitle
|
||||
searchcorpse
|
||||
setexperience
|
||||
setfaction
|
||||
setfactionstanding
|
||||
setfirstname
|
||||
sethue
|
||||
setlastname
|
||||
setmaximumspawntime
|
||||
setminimumspawntime
|
||||
setname
|
||||
setplayerappearance
|
||||
setplayerstate
|
||||
setrank
|
||||
setspeed
|
||||
settef
|
||||
showspawnregion
|
||||
squelch
|
||||
startrestussstagetwo
|
||||
completerestusstageone
|
||||
startspawner
|
||||
starttargetspawner
|
||||
stopspawner
|
||||
stoptargetspawner
|
||||
teleport
|
||||
teleporttarget
|
||||
teleportto
|
||||
unfreezeplayer
|
||||
unsquelch
|
||||
|
||||
+130
-130
@@ -1,126 +1,49 @@
|
||||
gmforcecommand
|
||||
goto
|
||||
findobject
|
||||
teleport
|
||||
teleportto
|
||||
invulnerable
|
||||
kill
|
||||
setspeed
|
||||
planetwarp
|
||||
harmfull
|
||||
harmless
|
||||
object
|
||||
searchcorpse
|
||||
giveitem
|
||||
sethue
|
||||
editbank
|
||||
editbankaccount
|
||||
editappearance
|
||||
editstats
|
||||
snoop
|
||||
wipeitems
|
||||
findplayer
|
||||
findobject
|
||||
findobjectbytemplate
|
||||
findcreature
|
||||
getgametime
|
||||
getplayerid
|
||||
getstationname
|
||||
grantbadge
|
||||
grantbadgearea
|
||||
granttitle
|
||||
revokebadge
|
||||
revoketitle
|
||||
gmrevive
|
||||
getrank
|
||||
setfaction
|
||||
settef
|
||||
setfactionstanding
|
||||
setrank
|
||||
killplayer
|
||||
teleporttarget
|
||||
planetwarptarget
|
||||
freezeplayer
|
||||
unfreezeplayer
|
||||
squelch
|
||||
unsquelch
|
||||
adjustlotcount
|
||||
credits
|
||||
editappearance
|
||||
kick
|
||||
maxcombatability
|
||||
maxstats
|
||||
money
|
||||
setfirstname
|
||||
setlastname
|
||||
setname
|
||||
setplayerstate
|
||||
uncityban
|
||||
setbiographyadmin
|
||||
activtequest
|
||||
activateinstance
|
||||
clearcompletedquest
|
||||
completequest
|
||||
listactivequests
|
||||
listcompletedquests
|
||||
grantskill
|
||||
revokeskill
|
||||
setexperience
|
||||
listguildes
|
||||
cityinfo
|
||||
activatequest
|
||||
activatequest
|
||||
addallowedplayer
|
||||
addbannedplayer
|
||||
adjustlotcount
|
||||
aiignore
|
||||
broadcast
|
||||
broadcastarea
|
||||
broadcastplanet
|
||||
broadcastgalaxy
|
||||
addbannedplayer
|
||||
emptymailtarget
|
||||
getaccountinfo
|
||||
removebannedplayer
|
||||
createcreature
|
||||
createnpc
|
||||
createmissionelement
|
||||
createspawningelement
|
||||
createspawningelementwithdifficulty
|
||||
createstaticitem
|
||||
getspawndelays
|
||||
setmaximumspawntime
|
||||
setminimumspawntime
|
||||
showspawnregion
|
||||
startspawner
|
||||
starttargetspawner
|
||||
stopspawner
|
||||
stoptargetspawner
|
||||
broadcastplanet
|
||||
cityinfo
|
||||
clearcompletedquest
|
||||
clearveteranreward
|
||||
hasveteranreward
|
||||
setveteranrewardtimecs
|
||||
setveteranreward
|
||||
aiignore
|
||||
combat
|
||||
craft
|
||||
forcecommand
|
||||
generatecrafteditem
|
||||
getobjvars
|
||||
gmcreateclassresource
|
||||
gmcreatespecificresource
|
||||
manufacture
|
||||
showfactioninformation
|
||||
qatool
|
||||
startrestussstagetwo
|
||||
completerestusstageone
|
||||
spewcommandqueue
|
||||
combatdatarecord
|
||||
combatdataclear
|
||||
combatdatarecord
|
||||
combatdatareport
|
||||
combatdatastop
|
||||
combatmodecheck
|
||||
completequest
|
||||
completerestusstageone
|
||||
completerestusstageone
|
||||
craft
|
||||
createcreature
|
||||
createmissionelement
|
||||
createnpc
|
||||
createspawningelement
|
||||
createspawningelementwithdifficulty
|
||||
createstaticitem
|
||||
credits
|
||||
csdumptarget
|
||||
csstorytellerdestroyallobjects
|
||||
csstorytellerdestroynpcs
|
||||
csstorytellerdestroyparticles
|
||||
csstorytellerdestroyprops
|
||||
database
|
||||
destroy
|
||||
dumptargetinformation
|
||||
dumpzoneinformation
|
||||
initializecomponent
|
||||
script
|
||||
lag
|
||||
csdumptarget
|
||||
editappearance
|
||||
editappearance
|
||||
editbank
|
||||
editbankaccount
|
||||
editstats
|
||||
emptymailtarget
|
||||
eventbuff
|
||||
eventbuffarea
|
||||
eventbufftarget
|
||||
@@ -134,30 +57,107 @@ eventteftarget
|
||||
eventundomovetome
|
||||
eventvaderchoke
|
||||
eventweapon
|
||||
setplayerappearance
|
||||
revokeplayerappearance
|
||||
csstorytellerdestroynpcs
|
||||
csstorytellerdestroyprops
|
||||
csstorytellerdestroyparticles
|
||||
csstorytellerdestroyallobjects
|
||||
startrestussstagetwo
|
||||
completerestusstageone
|
||||
setgodmode
|
||||
server
|
||||
addallowedplayer
|
||||
removeallowedplayer
|
||||
setlogintitle
|
||||
setloginmessage
|
||||
setplanetlimit
|
||||
resendloginmessagetoall
|
||||
findcreature
|
||||
findobject
|
||||
findobject
|
||||
findobjectbytemplate
|
||||
findplayer
|
||||
findwarden
|
||||
forcecommand
|
||||
freezeplayer
|
||||
generatecrafteditem
|
||||
getaccountinfo
|
||||
getgametime
|
||||
getobjvars
|
||||
getplayerid
|
||||
getrank
|
||||
getspawndelays
|
||||
getstationname
|
||||
giveitem
|
||||
gmcreateclassresource
|
||||
gmcreatespecificresource
|
||||
gmforcecommand
|
||||
gmforcerank
|
||||
gmfsvillage
|
||||
gmjedistate
|
||||
gmrevive
|
||||
goto
|
||||
grantbadge
|
||||
grantbadgearea
|
||||
grantpadawantrialseligibility
|
||||
overridepadawantrialseligibility
|
||||
resetjedi
|
||||
setwardenloginmessage
|
||||
findwarden
|
||||
activatequest
|
||||
grantskill
|
||||
granttitle
|
||||
grantwarden
|
||||
harmfull
|
||||
harmless
|
||||
hasveteranreward
|
||||
initializecomponent
|
||||
invulnerable
|
||||
kick
|
||||
kill
|
||||
killplayer
|
||||
lag
|
||||
listactivequests
|
||||
listcompletedquests
|
||||
listguildes
|
||||
manufacture
|
||||
maxcombatability
|
||||
maxstats
|
||||
money
|
||||
object
|
||||
overridepadawantrialseligibility
|
||||
planetwarp
|
||||
planetwarptarget
|
||||
qatool
|
||||
removeallowedplayer
|
||||
removebannedplayer
|
||||
resendloginmessagetoall
|
||||
resetjedi
|
||||
revokebadge
|
||||
revokeplayerappearance
|
||||
revokeskill
|
||||
revoketitle
|
||||
revokewarden
|
||||
script
|
||||
searchcorpse
|
||||
server
|
||||
setbiographyadmin
|
||||
setexperience
|
||||
setfaction
|
||||
setfactionstanding
|
||||
setfirstname
|
||||
setgodmode
|
||||
sethue
|
||||
setlastname
|
||||
setloginmessage
|
||||
setlogintitle
|
||||
setmaximumspawntime
|
||||
setminimumspawntime
|
||||
setname
|
||||
setplanetlimit
|
||||
setplayerappearance
|
||||
setplayerstate
|
||||
setrank
|
||||
setspeed
|
||||
settef
|
||||
setveteranreward
|
||||
setveteranrewardtimecs
|
||||
setwardenloginmessage
|
||||
showfactioninformation
|
||||
showspawnregion
|
||||
snoop
|
||||
spewcommandqueue
|
||||
squelch
|
||||
startrestussstagetwo
|
||||
startrestussstagetwo
|
||||
startspawner
|
||||
starttargetspawner
|
||||
stopspawner
|
||||
stoptargetspawner
|
||||
teleport
|
||||
teleporttarget
|
||||
teleportto
|
||||
uncityban
|
||||
unfreezeplayer
|
||||
unsquelch
|
||||
wipeitems
|
||||
|
||||
+67
-67
@@ -1,82 +1,82 @@
|
||||
goto
|
||||
findobject
|
||||
teleport
|
||||
teleportto
|
||||
invulnerable
|
||||
kill
|
||||
setspeed
|
||||
planetwarp
|
||||
harmfull
|
||||
harmless
|
||||
object
|
||||
searchcorpse
|
||||
giveitem
|
||||
sethue
|
||||
findplayer
|
||||
findobject
|
||||
findobjectbytemplate
|
||||
findcreature
|
||||
getgametime
|
||||
getplayerid
|
||||
getstationname
|
||||
gmrevive
|
||||
getrank
|
||||
setfaction
|
||||
settef
|
||||
setfactionstanding
|
||||
setrank
|
||||
killplayer
|
||||
teleporttarget
|
||||
planetwarptarget
|
||||
setfirstname
|
||||
setlastname
|
||||
setname
|
||||
setplayerstate
|
||||
activatequest
|
||||
activateinstance
|
||||
clearcompletedquest
|
||||
completequest
|
||||
listactivequests
|
||||
listcompletedquests
|
||||
grantskill
|
||||
revokeskill
|
||||
setexperience
|
||||
listguildes
|
||||
activatequest
|
||||
aiignore
|
||||
cityinfo
|
||||
clearcompletedquest
|
||||
combat
|
||||
combatdataclear
|
||||
combatdatarecord
|
||||
combatdatareport
|
||||
combatdatastop
|
||||
combatmodecheck
|
||||
completequest
|
||||
completerestusstageone
|
||||
craft
|
||||
createcreature
|
||||
createnpc
|
||||
createmissionelement
|
||||
createnpc
|
||||
createspawningelement
|
||||
createspawningelementwithdifficulty
|
||||
createstaticitem
|
||||
csdumptarget
|
||||
destroy
|
||||
dumptargetinformation
|
||||
dumpzoneinformation
|
||||
findcreature
|
||||
findobject
|
||||
findobject
|
||||
findobjectbytemplate
|
||||
findplayer
|
||||
forcecommand
|
||||
generatecrafteditem
|
||||
getgametime
|
||||
getobjvars
|
||||
getplayerid
|
||||
getrank
|
||||
getspawndelays
|
||||
getstationname
|
||||
giveitem
|
||||
gmcreateclassresource
|
||||
gmcreatespecificresource
|
||||
gmrevive
|
||||
goto
|
||||
grantskill
|
||||
harmfull
|
||||
harmless
|
||||
invulnerable
|
||||
kill
|
||||
killplayer
|
||||
listactivequests
|
||||
listcompletedquests
|
||||
listguildes
|
||||
manufacture
|
||||
object
|
||||
planetwarp
|
||||
planetwarptarget
|
||||
qatool
|
||||
revokeskill
|
||||
searchcorpse
|
||||
setexperience
|
||||
setfaction
|
||||
setfactionstanding
|
||||
setfirstname
|
||||
sethue
|
||||
setlastname
|
||||
setmaximumspawntime
|
||||
setminimumspawntime
|
||||
setname
|
||||
setplayerstate
|
||||
setrank
|
||||
setspeed
|
||||
settef
|
||||
showfactioninformation
|
||||
showspawnregion
|
||||
spewcommandqueue
|
||||
startrestussstagetwo
|
||||
startspawner
|
||||
starttargetspawner
|
||||
stopspawner
|
||||
stoptargetspawner
|
||||
aiignore
|
||||
combat
|
||||
craft
|
||||
forcecommand
|
||||
generatecrafteditem
|
||||
getobjvars
|
||||
gmcreateclassresource
|
||||
gmcreatespecificresource
|
||||
manufacture
|
||||
showfactioninformation
|
||||
qatool
|
||||
startrestussstagetwo
|
||||
completerestusstageone
|
||||
spewcommandqueue
|
||||
combatdatarecord
|
||||
combatdataclear
|
||||
combatdatareport
|
||||
combatdatastop
|
||||
combatmodecheck
|
||||
dumptargetinformation
|
||||
dumpzoneinformation
|
||||
csdumptarget
|
||||
destroy
|
||||
teleport
|
||||
teleporttarget
|
||||
teleportto
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
gmforcecommand
|
||||
goto
|
||||
findobject
|
||||
teleport
|
||||
teleportto
|
||||
gmforcecommand
|
||||
gmrevive
|
||||
goto
|
||||
harmfull
|
||||
harmless
|
||||
invulnerable
|
||||
kill
|
||||
gmrevive
|
||||
setspeed
|
||||
planetwarp
|
||||
harmfull
|
||||
harmless
|
||||
setspeed
|
||||
teleport
|
||||
teleportto
|
||||
|
||||
@@ -365,30 +365,37 @@ def buff(owner):
|
||||
core.buffService.addBuffToCreature(owner, 'me_buff_health_2', owner)
|
||||
buff = owner.getBuffByName('me_buff_health_2')
|
||||
buff.setDuration(5400)
|
||||
owner.updateBuff(buff)
|
||||
|
||||
core.buffService.addBuffToCreature(owner, 'me_buff_action_3', owner)
|
||||
buff1 = owner.getBuffByName('me_buff_action_3')
|
||||
buff1.setDuration(5400)
|
||||
owner.updateBuff(buff1)
|
||||
|
||||
core.buffService.addBuffToCreature(owner, 'me_buff_agility_3', owner)
|
||||
buff2 = owner.getBuffByName('me_buff_agility_3')
|
||||
buff2.setDuration(5400)
|
||||
owner.updateBuff(buff2)
|
||||
|
||||
core.buffService.addBuffToCreature(owner, 'me_buff_melee_gb_1', owner)
|
||||
buff3 = owner.getBuffByName('me_buff_melee_gb_1')
|
||||
buff3.setDuration(5400)
|
||||
owner.updateBuff(buff3)
|
||||
|
||||
core.buffService.addBuffToCreature(owner, 'me_buff_ranged_gb_1', owner)
|
||||
buff4 = owner.getBuffByName('me_buff_ranged_gb_1')
|
||||
buff4.setDuration(5400)
|
||||
owner.updateBuff(buff4)
|
||||
|
||||
core.buffService.addBuffToCreature(owner, 'me_buff_precision_3', owner)
|
||||
buff5 = owner.getBuffByName('me_buff_precision_3')
|
||||
buff5.setDuration(5400)
|
||||
owner.updateBuff(buff5)
|
||||
|
||||
core.buffService.addBuffToCreature(owner, 'me_buff_strength_3', owner)
|
||||
buff6 = owner.getBuffByName('me_buff_strength_3')
|
||||
buff6.setDuration(5400)
|
||||
owner.updateBuff(buff6)
|
||||
screenOne(core, owner)
|
||||
return
|
||||
|
||||
@@ -728,4 +735,4 @@ def bountyDroids(owner, inventory):
|
||||
probe = core.objectService.createObject('object/tangible/mission/shared_mission_bounty_droid_probot.iff', owner.getPlanet())
|
||||
probe.setUses(20)
|
||||
inventory.add(probe)
|
||||
return
|
||||
return
|
||||
|
||||
@@ -5,11 +5,11 @@ def setup():
|
||||
|
||||
def run(core, actor, target, commandString):
|
||||
|
||||
buffObj = actor.getBuffByCRC(int(commandString))
|
||||
buffObj = actor.getBuffList().get(int(commandString))
|
||||
|
||||
if buffObj is None:
|
||||
return
|
||||
|
||||
if buffObj.isRemovableByPlayer() and buffObj.isDebuff() is False:
|
||||
core.buffService.removeBuffFromCreature(actor, buffObj)
|
||||
return
|
||||
return
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
def setup(core):
|
||||
core.questService.addCollisionEvent('find_majolnir', 'task2', 3526, 5, -4619, 10, 'tatooine')
|
||||
return
|
||||
|
||||
def task2(core, activator, collidable):
|
||||
print ('called.')
|
||||
if activator.getPlayerObject() is None:
|
||||
return
|
||||
|
||||
player = activator.getPlayerObject()
|
||||
|
||||
if player.getQuest('find_majolnir') is None:
|
||||
print ('not in quest journal')
|
||||
return
|
||||
|
||||
quest = player.getQuest('find_majolnir')
|
||||
|
||||
if quest.isCompleted() or quest.getActiveStep() != 2:
|
||||
return
|
||||
|
||||
core.questService.completeActiveTask(activator, quest)
|
||||
return
|
||||
+3
-3
@@ -1,4 +1,4 @@
|
||||
import sys
|
||||
|
||||
def run():
|
||||
import sys
|
||||
|
||||
def run():
|
||||
return "object/tangible/deed/vehicle_deed/shared_landspeeder_xp38_deed.iff"
|
||||
@@ -157,4 +157,31 @@ def addPlanetSpawns(core, planet):
|
||||
aiSvc.setLoiter(r3m6, float(1), float(3))
|
||||
aiSvc.setLoiter(eg1, float(1), float(3))
|
||||
aiSvc.setLoiter(r3j7, float(1), float(3))
|
||||
|
||||
# Looped Patrol must end in same cell like the start point!!!
|
||||
#building id: 1105845 Buildingid + cell !
|
||||
trehla = stcSvc.spawnObject('trehla', 'tatooine', long(1105845 + 8), float(24.21), float(2.12), float(73.49), float(0.92), float(0), float(-0.38), float(0))
|
||||
patrolpointsCells = Vector() # Vector Building reference Patrolpoint CellID
|
||||
aiSvc.addPatrolPointCell(patrolpointsCells, trehla.getGrandparent(), Point3D(float(25.11), float(2.10), float(50.22)), 7)
|
||||
aiSvc.addPatrolPointCell(patrolpointsCells, trehla.getGrandparent(), Point3D(float(21.25), float(0.6), float(45.51)), 6)
|
||||
aiSvc.addPatrolPointCell(patrolpointsCells, trehla.getGrandparent(), Point3D(float(-11.78), float(0.59), float(45.78)), 6)
|
||||
aiSvc.addPatrolPointCell(patrolpointsCells, trehla.getGrandparent(), Point3D(float(-13.67), float(2.6), float(18.27)), 6)
|
||||
aiSvc.addPatrolPointCell(patrolpointsCells, trehla.getGrandparent(), Point3D(float(-6.63), float(2.6), float(17.87)), 6)
|
||||
aiSvc.addPatrolPointCell(patrolpointsCells, trehla.getGrandparent(), Point3D(float(-6.74), float(2.6), float(1.60)), 6)
|
||||
aiSvc.addPatrolPointCell(patrolpointsCells, trehla.getGrandparent(), Point3D(float(-17.92), float(0.6), float(1.88)), 5)
|
||||
aiSvc.addPatrolPointCell(patrolpointsCells, trehla.getGrandparent(), Point3D(float(-18.21), float(0.6), float(9.40)), 5)
|
||||
aiSvc.addPatrolPointCell(patrolpointsCells, trehla.getGrandparent(), Point3D(float(-24.18), float(0.6), float(9.40)), 5)
|
||||
|
||||
aiSvc.addPatrolPointCell(patrolpointsCells, trehla.getGrandparent(), Point3D(float(-24.50), float(0.6), float(-4.08)), 2)
|
||||
aiSvc.addPatrolPointCell(patrolpointsCells, trehla.getGrandparent(), Point3D(float(0.03), float(0.6), float(-4.36)), 1)
|
||||
aiSvc.addPatrolPointCell(patrolpointsCells, trehla.getGrandparent(), Point3D(float(25.03), float(0.6), float(-4.10)), 3)
|
||||
aiSvc.addPatrolPointCell(patrolpointsCells, trehla.getGrandparent(), Point3D(float(24.38), float(0.6), float(9.42)), 3)
|
||||
aiSvc.addPatrolPointCell(patrolpointsCells, trehla.getGrandparent(), Point3D(float(17.98), float(0.6), float(9.14)), 4)
|
||||
aiSvc.addPatrolPointCell(patrolpointsCells, trehla.getGrandparent(), Point3D(float(5.44), float(2.6), float(2.33)), 6)
|
||||
aiSvc.addPatrolPointCell(patrolpointsCells, trehla.getGrandparent(), Point3D(float(9.3), float(2.6), float(18.64)), 6)
|
||||
aiSvc.addPatrolPointCell(patrolpointsCells, trehla.getGrandparent(), Point3D(float(14.65), float(0.92), float(40.72)), 6)
|
||||
aiSvc.addPatrolPointCell(patrolpointsCells, trehla.getGrandparent(), Point3D(float(23.9), float(0.93), float(48.22)), 7)
|
||||
aiSvc.addPatrolPointCell(patrolpointsCells, trehla.getGrandparent(), Point3D(float(26.64), float(2.12), float(57.42)), 7)
|
||||
aiSvc.addPatrolPointCell(patrolpointsCells, trehla.getGrandparent(), Point3D(float(27.64), float(2.12), float(70.07)), 8)
|
||||
aiSvc.setPatrol(trehla, patrolpointsCells)
|
||||
return
|
||||
@@ -665,8 +665,12 @@ public class NGECore {
|
||||
staticService.spawnStatics();
|
||||
|
||||
equipmentService.loadBonusSets();
|
||||
|
||||
playerCityService.loadCityRankCaps();
|
||||
playerCityService.loadCities();
|
||||
|
||||
questService.loadEvents();
|
||||
|
||||
retroService.run();
|
||||
|
||||
browserService = new BrowserService(this);
|
||||
|
||||
@@ -1,91 +0,0 @@
|
||||
/*******************************************************************************
|
||||
* Copyright (c) 2013 <Project SWG>
|
||||
*
|
||||
* This File is part of NGECore2.
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Lesser General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
* Using NGEngine to work with NGECore2 is making a combined work based on NGEngine.
|
||||
* Therefore all terms and conditions of the GNU Lesser General Public License cover the combination.
|
||||
******************************************************************************/
|
||||
package resources.buffs;
|
||||
|
||||
import java.util.Map.Entry;
|
||||
|
||||
import org.apache.mina.core.buffer.IoBuffer;
|
||||
|
||||
import engine.resources.objects.Delta;
|
||||
import resources.objects.SWGMap;
|
||||
|
||||
public class BuffList extends Delta {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private SWGMap<Integer, Buff> list;
|
||||
|
||||
public BuffList(SWGMap<Integer, Buff> list) {
|
||||
this.list = list;
|
||||
}
|
||||
|
||||
public BuffList() {
|
||||
|
||||
}
|
||||
|
||||
public SWGMap<Integer, Buff> getList() {
|
||||
synchronized(objectMutex) {
|
||||
return list;
|
||||
}
|
||||
}
|
||||
|
||||
public byte[] getBytes() {
|
||||
int size = 8 + ((list.size() > 0) ? 4 : 0);
|
||||
|
||||
for (Buff buff : list.values().toArray(new Buff[] { })) {
|
||||
size += (25 + ((buff.getBuffName().equals("")) ? 0 : 4));
|
||||
}
|
||||
|
||||
IoBuffer buffer = createBuffer(size);
|
||||
buffer.putInt(list.size());
|
||||
buffer.putInt(list.getUpdateCounter());
|
||||
for (Entry<Integer, Buff> entry : list.entrySet()) {
|
||||
int crc = entry.getKey();
|
||||
Buff buff = entry.getValue();
|
||||
|
||||
buffer.put(getBoolean(!buff.getBuffName().equals("")));
|
||||
if (!buff.getBuffName().equals("")) {
|
||||
buffer.putInt(0);
|
||||
}
|
||||
buffer.putInt(crc);
|
||||
if (buff.getDuration() > 0) {
|
||||
buffer.putInt((int) (buff.getTotalPlayTime() + buff.getRemainingDuration()));
|
||||
buffer.putInt(0);
|
||||
buffer.putInt((int) buff.getDuration());
|
||||
} else {
|
||||
buffer.putInt(-1);
|
||||
buffer.putInt(0);
|
||||
if (buff.getBuffName().equals("")) {
|
||||
buffer.putInt(0);
|
||||
} else {
|
||||
buffer.putInt(-1);
|
||||
}
|
||||
}
|
||||
buffer.putLong(buff.getOwnerId());
|
||||
}
|
||||
if (list.size() > 0) {
|
||||
buffer.putInt(1);
|
||||
}
|
||||
return buffer.array();
|
||||
}
|
||||
|
||||
}
|
||||
@@ -110,7 +110,7 @@ public class CreatureObject extends TangibleObject implements IPersistent {
|
||||
}
|
||||
|
||||
public void initAfterDBLoad() {
|
||||
super.init();
|
||||
super.initAfterDBLoad();
|
||||
System.out.println("Name: " + getCustomName());
|
||||
System.out.println(" Cash Credits: " + getCashCredits());
|
||||
System.out.println(" Bank Credits: " + getBankCredits());
|
||||
@@ -182,8 +182,8 @@ public class CreatureObject extends TangibleObject implements IPersistent {
|
||||
baseline.put("moodId", (byte) 0);
|
||||
baseline.put("performanceCounter", 0);
|
||||
baseline.put("performanceId", 0);
|
||||
baseline.put("attributes", new SWGList<Integer>(this, 6, 21, false));
|
||||
baseline.put("maxAttributes", new SWGList<Integer>(this, 6, 22, false));
|
||||
baseline.put("attribs", new SWGList<Integer>(this, 6, 21, false));
|
||||
baseline.put("maxAttribs", new SWGList<Integer>(this, 6, 22, false));
|
||||
baseline.put("equipmentList", new SWGList<Equipment>(this, 6, 23, false));
|
||||
baseline.put("appearance", "");
|
||||
baseline.put("visible", true);
|
||||
@@ -823,7 +823,7 @@ public class CreatureObject extends TangibleObject implements IPersistent {
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
public SWGList<Integer> getAttribs() {
|
||||
return (SWGList<Integer>) getBaseline(6).get("attributes");
|
||||
return (SWGList<Integer>) getBaseline(6).get("attribs");
|
||||
}
|
||||
|
||||
public void resetAttribs() {
|
||||
@@ -881,7 +881,7 @@ public class CreatureObject extends TangibleObject implements IPersistent {
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
public SWGList<Integer> getMaxAttribs() {
|
||||
return (SWGList<Integer>) getBaseline(6).get("maxAttributes");
|
||||
return (SWGList<Integer>) getBaseline(6).get("maxAttribs");
|
||||
}
|
||||
|
||||
public int getMaxHealth() {
|
||||
@@ -981,20 +981,10 @@ public class CreatureObject extends TangibleObject implements IPersistent {
|
||||
}
|
||||
|
||||
public void addBuff(Buff buff) {
|
||||
if (buff == null) {
|
||||
System.err.println("CreatureObject:addBuff(): Attempting to add a null Buff object. Something is wrong in BuffService!");
|
||||
}
|
||||
|
||||
synchronized(objectMutex) {
|
||||
PlayerObject player = (PlayerObject) getSlottedObject("ghost");
|
||||
buff.setTotalPlayTime((int) (player.getTotalPlayTime() + (System.currentTimeMillis() - player.getLastPlayTimeUpdate()) / 1000));
|
||||
}
|
||||
|
||||
PlayerObject player = (PlayerObject) getSlottedObject("ghost");
|
||||
buff.setTotalPlayTime((player == null) ? 0 : (int) (player.getTotalPlayTime() + (System.currentTimeMillis() - player.getLastPlayTimeUpdate()) / 1000));
|
||||
buff.setStartTime();
|
||||
getBuffList().put(CRC.StringtoCRC(buff.getBuffName().toLowerCase()), buff);
|
||||
|
||||
synchronized(objectMutex) {
|
||||
buff.setStartTime();
|
||||
}
|
||||
}
|
||||
|
||||
public void removeBuff(Buff buff) {
|
||||
|
||||
@@ -47,6 +47,7 @@ import resources.objects.waypoint.WaypointObject;
|
||||
import resources.quest.Quest;
|
||||
import services.quest.QuestItem;
|
||||
import engine.clients.Client;
|
||||
import engine.resources.common.CRC;
|
||||
import engine.resources.common.StringUtilities;
|
||||
import engine.resources.objects.Baseline;
|
||||
import engine.resources.scene.Planet;
|
||||
@@ -609,6 +610,10 @@ public class PlayerObject extends IntangibleObject implements Serializable {
|
||||
getBaseline(8).set("activeQuest", questCRC);
|
||||
}
|
||||
|
||||
public Quest getQuest(String questName) {
|
||||
return getQuestJournal().get(CRC.StringtoCRC("quest/" + questName));
|
||||
}
|
||||
|
||||
public String getProfessionWheelPosition() {
|
||||
return (String) getBaseline(8).get("professionWheelPosition");
|
||||
}
|
||||
|
||||
@@ -23,10 +23,12 @@ package resources.quest;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.BitSet;
|
||||
import java.util.concurrent.ScheduledFuture;
|
||||
|
||||
import org.apache.mina.core.buffer.IoBuffer;
|
||||
|
||||
import engine.resources.common.CRC;
|
||||
import engine.resources.common.StringUtilities;
|
||||
import engine.resources.objects.Delta;
|
||||
|
||||
public class Quest extends Delta implements Serializable {
|
||||
@@ -35,6 +37,7 @@ public class Quest extends Delta implements Serializable {
|
||||
|
||||
private long ownerId;
|
||||
private int activeStep; // Quest starts at step 0
|
||||
|
||||
private BitSet activeStepBitmask = new BitSet(16);
|
||||
private BitSet completedStepBitmask = new BitSet(16);
|
||||
|
||||
@@ -42,6 +45,7 @@ public class Quest extends Delta implements Serializable {
|
||||
private boolean recievedAward = false;
|
||||
private String name;
|
||||
|
||||
private ScheduledFuture<?> timer;
|
||||
private long waypointId;
|
||||
|
||||
public Quest() {}
|
||||
@@ -120,12 +124,23 @@ public class Quest extends Delta implements Serializable {
|
||||
}
|
||||
|
||||
public void incrementQuestStep() {
|
||||
activeStepBitmask.set(activeStep, false);
|
||||
completedStepBitmask.set(activeStep);
|
||||
this.activeStep++;
|
||||
activeStepBitmask.set(activeStep);
|
||||
activeStepBitmask.set(activeStep, false);
|
||||
|
||||
activeStep++;
|
||||
activeStepBitmask.set(activeStep, true);
|
||||
|
||||
//System.out.println("Active step was "+ (activeStep - 1) + " and is now " + activeStep );
|
||||
}
|
||||
|
||||
public ScheduledFuture<?> getTimer() {
|
||||
return timer;
|
||||
}
|
||||
|
||||
public void setTimer(ScheduledFuture<?> timer) {
|
||||
this.timer = timer;
|
||||
}
|
||||
|
||||
public byte[] getBytes() {
|
||||
byte[] activeStepBytes = activeStepBitmask.toByteArray();
|
||||
byte[] completedStepBytes = completedStepBitmask.toByteArray();
|
||||
@@ -175,6 +190,7 @@ public class Quest extends Delta implements Serializable {
|
||||
|
||||
buffer.flip();
|
||||
|
||||
StringUtilities.printBytes(buffer.array());
|
||||
return buffer.array();
|
||||
}
|
||||
|
||||
|
||||
@@ -1067,6 +1067,27 @@ public class SimulationService implements INetworkDispatch {
|
||||
|
||||
}
|
||||
|
||||
public Point3D convertModelSpaceToPoint(Point3D point, SWGObject object) {
|
||||
|
||||
Point3D position = object.getPosition();
|
||||
WB_M44 translateMatrix = new WB_M44(1, 0, 0, position.x, 0, 1, 0, position.y, 0, 0, 1, position.z, 0, 0, 0, 1);
|
||||
|
||||
float radians = object.getRadians();
|
||||
float sin = (float) Math.sin(radians);
|
||||
float cos = (float) Math.cos(radians);
|
||||
|
||||
WB_M44 rotationMatrix = new WB_M44(cos, 0, sin, 0, 0, 1, 0, 0, -sin, 0, cos, 0, 0, 0, 0, 1); //non-inverse matrix
|
||||
|
||||
WB_M44 modelSpace = translateMatrix.mult(rotationMatrix);
|
||||
|
||||
float x = (float) (modelSpace.m11 * point.x + modelSpace.m12 * point.y + modelSpace.m13 * point.z + modelSpace.m14);
|
||||
float y = (float) (modelSpace.m21 * point.x + modelSpace.m22 * point.y + modelSpace.m23 * point.z + modelSpace.m24);
|
||||
float z = (float) (modelSpace.m31 * point.x + modelSpace.m32 * point.y + modelSpace.m33 * point.z + modelSpace.m34);
|
||||
|
||||
return new Point3D(x, y, z);
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
* Moved this to ConnectionService which will disconnect them
|
||||
* from the server if they don't send packets for 5 minutes or more
|
||||
|
||||
@@ -35,6 +35,8 @@ import resources.common.SpawnPoint;
|
||||
import resources.datatables.Difficulty;
|
||||
import resources.datatables.FactionStatus;
|
||||
import resources.datatables.GcwType;
|
||||
import resources.objects.building.BuildingObject;
|
||||
import resources.objects.cell.CellObject;
|
||||
import resources.objects.creature.CreatureObject;
|
||||
import resources.objects.group.GroupObject;
|
||||
import resources.objects.player.PlayerObject;
|
||||
@@ -213,6 +215,15 @@ public class AIService {
|
||||
actor.setCurrentState(new IdleState());
|
||||
}
|
||||
|
||||
public void addPatrolPointCell(Vector<Point3D> patrolpoints, BuildingObject building, Point3D position, int cellID){
|
||||
if (building==null)
|
||||
return;
|
||||
CellObject cellObj = building.getCellByCellNumber(cellID);
|
||||
if (cellObj!=null)
|
||||
position.setCell(cellObj);
|
||||
patrolpoints.add(position);
|
||||
}
|
||||
|
||||
public void setLoiter(CreatureObject creature, float minDist, float maxDist){
|
||||
AIActor actor = (AIActor) creature.getAttachment("AI");
|
||||
if (actor==null)
|
||||
|
||||
@@ -76,6 +76,15 @@ public abstract class AIState {
|
||||
NGECore core = NGECore.getInstance();
|
||||
Point3D currentPosition = creature.getPosition();
|
||||
Point3D targetPosition = null;
|
||||
// Cell management
|
||||
if (creature.getContainer()!=null && creature.getContainer() instanceof CellObject){
|
||||
CellObject cellObj1 = (CellObject)creature.getContainer();
|
||||
if (cellObj1!=null){
|
||||
currentPosition.setCell(cellObj1);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
float maxDistance = stopDistance;
|
||||
boolean finished = false;
|
||||
float dx, dz, newX = 0, newY = 0, newZ = 0;
|
||||
@@ -85,6 +94,8 @@ public abstract class AIState {
|
||||
//while(!finished && movementPoints.size() != 0) {
|
||||
|
||||
if ((!(actor.getCurrentState() instanceof FollowState)) && movementPoints.size() == 0 && patrolPoints.size() == 0) {
|
||||
if (creature.getTemplate().contains("shared_dressed_tutorial_mentor.iff"))
|
||||
System.out.println("findNewPosition targetPosition null ");
|
||||
DevLog.debugoutai(actor, "Charon", "AI State findnewpos", "Breakout1");
|
||||
return false;
|
||||
}
|
||||
@@ -107,16 +118,31 @@ public abstract class AIState {
|
||||
|
||||
if (actor.getCurrentState().getClass().equals(FollowState.class)){
|
||||
targetPosition = actor.getFollowObject().getWorldPosition();
|
||||
if (actor.getFollowObject().getContainer()!=null && actor.getFollowObject().getContainer() instanceof CellObject){
|
||||
CellObject cellObj1 = (CellObject)actor.getFollowObject().getContainer();
|
||||
if (cell!=null)
|
||||
targetPosition.setCell(cellObj1);
|
||||
}
|
||||
}
|
||||
|
||||
Vector<Point3D> path = core.aiService.findPath(creature.getPlanetId(), currentPosition, targetPosition);
|
||||
|
||||
if (targetPosition==null){
|
||||
if (creature.getTemplate().contains("shared_dressed_tutorial_mentor.iff"))
|
||||
System.out.println("findNewPosition targetPosition null ");
|
||||
DevLog.debugoutai(actor, "Charon", "AI State findnewpos", "Breakout2");
|
||||
return false;
|
||||
}
|
||||
|
||||
float distanceToTarget = targetPosition.getWorldPosition().getDistance(creature.getWorldPosition());
|
||||
|
||||
if (targetPosition.getCell()!=null){
|
||||
//Point3D targetWorldPosition = core.simulationService.convertModelSpaceToPoint(targetPosition, creature.getGrandparent());
|
||||
Point3D targetWorldPosition = targetPosition.getWorldPosition();
|
||||
distanceToTarget = targetWorldPosition.getDistance(creature.getWorldPosition());
|
||||
}
|
||||
|
||||
|
||||
if(distanceToTarget > stopDistance) {
|
||||
maxDistance = Math.min(speed, distanceToTarget - stopDistance);
|
||||
} else {
|
||||
@@ -139,9 +165,7 @@ public abstract class AIState {
|
||||
|
||||
Point3D oldPosition = null;
|
||||
float pathDistance = 0;
|
||||
|
||||
|
||||
|
||||
|
||||
for(int i = 1; i < path.size() && !finished; i++) {
|
||||
|
||||
Point3D currentPathPosition = path.get(i);
|
||||
@@ -153,7 +177,7 @@ public abstract class AIState {
|
||||
|
||||
pathDistance += oldWorldPos.getDistance(currentPathPosition.getWorldPosition());
|
||||
if(pathDistance >= maxDistance || i == path.size() - 1 || currentPathPosition.getCell() != creature.getContainer()) {
|
||||
|
||||
|
||||
finished = true;
|
||||
|
||||
if(movementPoints.size() != 0 && currentPosition.getWorldPosition().getDistance(currentPathPosition.getWorldPosition()) <= stopDistance && cell == creature.getContainer()) {
|
||||
@@ -177,6 +201,7 @@ public abstract class AIState {
|
||||
//float distance = oldWorldPos.getDistance(currentPathPosition.getWorldPosition());
|
||||
float distance = NGECore.getInstance().aiService.distanceSquared(oldWorldPos, currentPathPosition.getWorldPosition()); // Ok to use, as distance is not directly used later
|
||||
float travelDistance = distance - (pathDistance - maxDistance);
|
||||
|
||||
// temp fix for melee npcs
|
||||
travelDistance *= 1.3;
|
||||
if(travelDistance <= 0) {
|
||||
@@ -203,7 +228,7 @@ public abstract class AIState {
|
||||
fullong = (int)(tempdz*100);
|
||||
halfshort = ((int)(tempdx*100)) >> 1;
|
||||
}
|
||||
float deltaDist = (fullong + halfshort)/100;
|
||||
float deltaDist = (fullong + halfshort)/100; // end of approximation
|
||||
|
||||
newX = (float) (oldPosition.x + (speed * (dx / deltaDist)));
|
||||
newZ = (float) (oldPosition.z + (speed * (dz / deltaDist)));
|
||||
@@ -226,6 +251,10 @@ public abstract class AIState {
|
||||
}
|
||||
|
||||
} else {
|
||||
|
||||
if (creature.getTemplate().contains("shared_dressed_tutorial_mentor.iff"))
|
||||
System.out.println("ELSE CASE");
|
||||
|
||||
newX = currentPathPosition.x;
|
||||
newZ = currentPathPosition.z;
|
||||
newY = core.terrainService.getHeight(creature.getPlanetId(), newX, newZ);
|
||||
@@ -742,8 +771,7 @@ public abstract class AIState {
|
||||
if (creature.isInCombat()){
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
|
||||
TangibleObject target = actor.getFollowObject();
|
||||
float speed = (float) creature.getWalkSpeed();
|
||||
float maxDistance = 6;
|
||||
@@ -763,82 +791,98 @@ public abstract class AIState {
|
||||
|
||||
// Manage Patrol points
|
||||
maxDistance = 1;
|
||||
if (actor.getPatrolPoints().size()==0)
|
||||
if (actor.getPatrolPoints().size()==0){
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
|
||||
Point3D currentDestination = actor.getPatrolPoints().get(actor.getPatrolPointIndex());
|
||||
//System.out.println("currentPosition.getDistance2D(currentDestination) " + currentPosition.getDistance2D(currentDestination));
|
||||
if (NGECore.getInstance().aiService.distanceSquared2D(currentPosition, currentDestination)<4){
|
||||
//if (currentPosition.getDistance2D(currentDestination)<4){
|
||||
|
||||
float relDistance = NGECore.getInstance().aiService.distanceSquared2D(currentPosition, currentDestination);
|
||||
|
||||
if (currentDestination.getCell()!=null){
|
||||
//Point3D curdestWS = core.simulationService.convertModelSpaceToPoint(currentDestination, creature.getGrandparent());
|
||||
Point3D curdestWS = currentDestination.getWorldPosition();
|
||||
relDistance = NGECore.getInstance().aiService.distanceSquared2D(currentPosition, curdestWS);
|
||||
}
|
||||
|
||||
if (relDistance<4){
|
||||
|
||||
if (actor.getPatrolPointIndex()<actor.getPatrolPoints().size()-1){
|
||||
actor.setPatrolPointIndex(actor.getPatrolPointIndex()+1);
|
||||
|
||||
} else {
|
||||
if (actor.isPatrolLoop())
|
||||
if (actor.isPatrolLoop()) {
|
||||
actor.setPatrolPointIndex(0);
|
||||
}
|
||||
else {
|
||||
String isInvader = (String) creature.getAttachment("IsInvader");
|
||||
if (isInvader==null)
|
||||
return;
|
||||
// If invader check for in weapon range general
|
||||
if (core.invasionService.getDefensiveGeneral()!=null){
|
||||
if (core.invasionService.getInvasionPhase()==3 && core.invasionService.getDefensiveGeneral().getPosture()!=13 && core.invasionService.getDefensiveGeneral().getPosture()!=14 && core.invasionService.getDistanceToDefensiveGeneral(creature)<2500){
|
||||
actor.addDefender(core.invasionService.getDefensiveGeneral());
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
// Check if there are more than 5 invaders at same spot
|
||||
if (NGECore.getInstance().simulationService.getAllNearSameFactionNPCs(7, creature).size()>=4 && NGECore.getInstance().invasionService.getInvasionPhase()!=3){
|
||||
actor.setAIactive(false); // switch off auto-target-recognition to counter lag
|
||||
actor.setCurrentState(new IdleState());
|
||||
//System.out.println("AI switched off!");
|
||||
return;
|
||||
}
|
||||
|
||||
//actor.setCurrentState(new IdleState());
|
||||
// Wait state() Since this state does not require move,recover and all that its simple task
|
||||
if (isInvader!=null){
|
||||
|
||||
//NGECore.getInstance().aiService.waitForEvent(actor, NGECore.getInstance().invasionService, "isDefendingGeneralAlive", false, WithdrawalState.class);
|
||||
|
||||
return; // Last Patrol point reached and no loop
|
||||
// If invader check for in weapon range general
|
||||
if (core.invasionService.getDefensiveGeneral()!=null){
|
||||
if (core.invasionService.getInvasionPhase()==3 && core.invasionService.getDefensiveGeneral().getPosture()!=13 && core.invasionService.getDefensiveGeneral().getPosture()!=14 && core.invasionService.getDistanceToDefensiveGeneral(creature)<2500){
|
||||
actor.addDefender(core.invasionService.getDefensiveGeneral());
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
// Check if there are more than 5 invaders at same spot
|
||||
if (NGECore.getInstance().simulationService.getAllNearSameFactionNPCs(7, creature).size()>=4 && NGECore.getInstance().invasionService.getInvasionPhase()!=3){
|
||||
actor.setAIactive(false); // switch off auto-target-recognition to counter lag
|
||||
actor.setCurrentState(new IdleState());
|
||||
//System.out.println("AI switched off!");
|
||||
return;
|
||||
}
|
||||
|
||||
//actor.setCurrentState(new IdleState());
|
||||
// Wait state() Since this state does not require move,recover and all that its simple task
|
||||
|
||||
//NGECore.getInstance().aiService.waitForEvent(actor, NGECore.getInstance().invasionService, "isDefendingGeneralAlive", false, WithdrawalState.class);
|
||||
|
||||
return; // Last Patrol point reached and no loop
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {}
|
||||
|
||||
Point3D newPosition = new Point3D();
|
||||
boolean foundNewPos = findNewPosition(actor, speed, maxDistance, newPosition);
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
if(!foundNewPos || (newPosition.x == 0 && newPosition.z == 0))
|
||||
return;
|
||||
|
||||
//Point3D newWorldPos = newPosition.getWorldPosition();
|
||||
Point3D newWorldPos = newPosition;
|
||||
if (newPosition.getCell()==null)
|
||||
newWorldPos = newPosition.getWorldPosition();
|
||||
|
||||
currentPosition = creature.getPosition();
|
||||
|
||||
Point3D newWorldPos = newPosition.getWorldPosition();
|
||||
float direction = (float) Math.atan2(newWorldPos.x - currentPosition.x, newWorldPos.z - currentPosition.z);
|
||||
float direction = (float) Math.atan2(newWorldPos.x - currentPosition.x, newWorldPos.z - currentPosition.z); // +0.973F
|
||||
if(direction < 0)
|
||||
direction = (float) (2 * Math.PI + direction);
|
||||
direction = (float) (2 * Math.PI + direction); // +0.973F
|
||||
|
||||
Quaternion quaternion = new Quaternion((float) Math.cos(direction / 2), 0, (float) Math.sin(direction / 2), 0);
|
||||
if (quaternion.y < 0.0f && quaternion.w > 0.0f) {
|
||||
quaternion.y *= -1;
|
||||
quaternion.w *= -1;
|
||||
}
|
||||
|
||||
// if (newPosition.getCell()==null)
|
||||
// System.out.println("newPosition.getCell() is NULL");
|
||||
try{
|
||||
core.simulationService.moveObject(creature, newPosition, quaternion, creature.getMovementCounter(), speed, newPosition.getCell());
|
||||
} catch (NullPointerException e) {
|
||||
// Just to identify what exactly is null here
|
||||
// if (creature==null)
|
||||
// System.out.print("creature==null" );
|
||||
// if (newPosition==null)
|
||||
// System.out.print("newPosition==null" );
|
||||
// if (quaternion==null)
|
||||
// System.out.print("quaternion==null" );
|
||||
// if (newPosition.getCell()==null)
|
||||
// System.out.print("newPosition.getCell()==null" );
|
||||
//
|
||||
// System.out.print("creature.getMovementCounter() " + creature.getMovementCounter());
|
||||
// if (creature==null)
|
||||
// System.out.print("creature==null" );
|
||||
// if (newPosition==null)
|
||||
// System.out.print("newPosition==null" );
|
||||
// if (quaternion==null)
|
||||
// System.out.print("quaternion==null" );
|
||||
// if (newPosition.getCell()==null)
|
||||
// System.out.print("newPosition.getCell()==null" );
|
||||
//
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1238,21 +1238,19 @@ public class CombatService implements INetworkDispatch {
|
||||
|
||||
if(target.hasBuff("incapWeaken")) {
|
||||
if (!attacker.isPlayer()){
|
||||
AIActor aiActor = (AIActor)attacker.getAttachment("AI");
|
||||
if (aiActor.getMobileTemplate().isDeathblow())
|
||||
deathblowPlayer(attacker, target);
|
||||
deathblowPlayer(attacker, target);
|
||||
} else
|
||||
{
|
||||
deathblowPlayer(attacker, target);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
if (!attacker.isPlayer()){
|
||||
AIActor aiActor = (AIActor)attacker.getAttachment("AI");
|
||||
if (aiActor.getMobileTemplate().isDeathblow()){
|
||||
deathblowPlayer(attacker, target);
|
||||
return;
|
||||
} else {
|
||||
if (!attacker.isPlayer()){
|
||||
AIActor aiActor = (AIActor)attacker.getAttachment("AI");
|
||||
if (aiActor.getMobileTemplate().isDeathblow()){
|
||||
deathblowPlayer(attacker, target);
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -22,9 +22,22 @@
|
||||
package services.quest;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.nio.file.FileVisitResult;
|
||||
import java.nio.file.FileVisitor;
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Path;
|
||||
import java.nio.file.Paths;
|
||||
import java.nio.file.SimpleFileVisitor;
|
||||
import java.nio.file.attribute.BasicFileAttributes;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Map;
|
||||
import java.util.Random;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
import java.util.concurrent.Executors;
|
||||
import java.util.concurrent.ScheduledFuture;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.concurrent.atomic.AtomicInteger;
|
||||
|
||||
import org.apache.mina.core.buffer.IoBuffer;
|
||||
import org.apache.mina.core.session.IoSession;
|
||||
@@ -36,20 +49,24 @@ import protocol.swg.objectControllerObjects.ForceActivateQuest;
|
||||
import protocol.swg.objectControllerObjects.QuestTaskCounterMessage;
|
||||
import protocol.swg.objectControllerObjects.QuestTaskTimerMessage;
|
||||
import protocol.swg.objectControllerObjects.ShowLootBox;
|
||||
import resources.common.Console;
|
||||
import resources.common.ObjControllerOpcodes;
|
||||
import resources.common.OutOfBand;
|
||||
import resources.common.ProsePackage;
|
||||
import resources.common.collidables.CollidableCircle;
|
||||
import resources.datatables.DisplayType;
|
||||
import resources.objects.SWGMap;
|
||||
import resources.objects.creature.CreatureObject;
|
||||
import resources.objects.player.PlayerObject;
|
||||
import resources.objects.tangible.TangibleObject;
|
||||
import resources.objects.waypoint.WaypointObject;
|
||||
import resources.quest.Quest;
|
||||
import main.NGECore;
|
||||
import engine.clientdata.ClientFileManager;
|
||||
import engine.clientdata.visitors.DatatableVisitor;
|
||||
import engine.resources.common.CRC;
|
||||
import engine.resources.objects.SWGObject;
|
||||
import engine.resources.scene.Point3D;
|
||||
import engine.resources.service.INetworkDispatch;
|
||||
import engine.resources.service.INetworkRemoteEvent;
|
||||
|
||||
@@ -58,7 +75,7 @@ public class QuestService implements INetworkDispatch {
|
||||
private NGECore core;
|
||||
private Map<String, QuestData> questMap = new ConcurrentHashMap<String, QuestData>();
|
||||
private Map<String, QuestList> questRewardMap = new ConcurrentHashMap<String, QuestList>();
|
||||
|
||||
|
||||
public QuestService(NGECore core) {
|
||||
this.core = core;
|
||||
}
|
||||
@@ -75,9 +92,6 @@ public class QuestService implements INetworkDispatch {
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void shutdown() { }
|
||||
|
||||
public boolean doesPlayerHaveQuest(CreatureObject creo, String questName) {
|
||||
PlayerObject ghost = creo.getPlayerObject();
|
||||
|
||||
@@ -142,9 +156,6 @@ public class QuestService implements INetworkDispatch {
|
||||
if (player == null)
|
||||
return;
|
||||
|
||||
if (quest.getWaypointId() != 0)
|
||||
core.objectService.destroyObject(quest.getWaypointId());
|
||||
|
||||
int activeStep = quest.getActiveStep();
|
||||
|
||||
QuestTask task = qData.getTasks().get(activeStep);
|
||||
@@ -154,6 +165,16 @@ public class QuestService implements INetworkDispatch {
|
||||
|
||||
switch (type) {
|
||||
|
||||
// quest.task.ground.go_to_location
|
||||
case "go_to_location":
|
||||
Point3D location = new Point3D(task.getLocationX(), task.getLocationY(), task.getLocationZ());
|
||||
WaypointObject wpGoTo = createWaypoint(task.getWaypointName(), location, task.getPlanet());
|
||||
player.getWaypoints().put(wpGoTo.getObjectID(), wpGoTo);
|
||||
|
||||
quest.setWaypointId(wpGoTo.getObjectID());
|
||||
|
||||
break;
|
||||
|
||||
// quest.task.ground.comm_player
|
||||
case "comm_player":
|
||||
|
||||
@@ -169,19 +190,70 @@ public class QuestService implements INetworkDispatch {
|
||||
// TODO: add item count
|
||||
ObjControllerMessage itemCount = new ObjControllerMessage(11, new QuestTaskCounterMessage(quester.getObjectID(), quest.getCrcName(), "@quest/groundquests:retrieve_item_counter"));
|
||||
quester.getClient().getSession().write(itemCount.serialize());
|
||||
|
||||
WaypointObject wpRetrieve = createWaypoint(task.getWaypointName(), new Point3D(task.getLocationX(), task.getLocationY(), task.getLocationZ()), task.getPlanet());
|
||||
player.getWaypoints().put(wpRetrieve.getObjectID(), wpRetrieve);
|
||||
|
||||
quest.setWaypointId(wpRetrieve.getObjectID());
|
||||
break;
|
||||
|
||||
// quest.task.ground.timer
|
||||
case "timer":
|
||||
ObjControllerMessage timer = new ObjControllerMessage(11, new QuestTaskTimerMessage(quester.getObjectID(), quest.getCrcName(), "@quest/groundquests:timer_timertext", 20));
|
||||
quester.getClient().getSession().write(timer.serialize());
|
||||
System.out.println("Sent timer.");
|
||||
AtomicInteger time = new AtomicInteger(new Random(task.getMaxTime()).nextInt((task.getMaxTime() - task.getMinTime()) + task.getMinTime()));
|
||||
|
||||
ScheduledFuture<?> taskTimer = Executors.newSingleThreadScheduledExecutor().scheduleAtFixedRate(() -> {
|
||||
Console.println("Timer is: " + time.get());
|
||||
if (time.get() == 0) {
|
||||
//quest.incrementQuestStep();
|
||||
completeActiveTask((CreatureObject) core.objectService.getObject(quester.getObjectID()), quest.getName());
|
||||
} else {
|
||||
ObjControllerMessage timer = new ObjControllerMessage(11, new QuestTaskTimerMessage(quester.getObjectID(), quest.getCrcName(), "@quest/groundquests:timer_timertext", time.getAndDecrement()));
|
||||
quester.getClient().getSession().write(timer.serialize());
|
||||
}
|
||||
}, 1, 1, TimeUnit.SECONDS);
|
||||
|
||||
quest.setTimer(taskTimer);
|
||||
break;
|
||||
|
||||
// quest.task.ground.show_message_box
|
||||
case "show_message_box":
|
||||
break;
|
||||
|
||||
default:
|
||||
//System.out.println("Don't know what to do for quest task: " + type);
|
||||
break;
|
||||
|
||||
}
|
||||
|
||||
if (!task.isVisible()) {
|
||||
completeActiveTask(quester, quest);
|
||||
return;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void completeActiveTask(CreatureObject quester, String questName) {
|
||||
if (quester.getPlayerObject().getQuestJournal().containsKey(CRC.StringtoCRC("quest/" + questName)) && !quester.getPlayerObject().getQuestJournal().get(CRC.StringtoCRC("quest/" + questName)).isCompleted()) {
|
||||
completeActiveTask(quester, quester.getPlayerObject().getQuestJournal().get(CRC.StringtoCRC("quest/" + questName)));
|
||||
}
|
||||
}
|
||||
|
||||
public void completeActiveTask(CreatureObject quester, Quest quest) {
|
||||
PlayerObject player = quester.getPlayerObject();
|
||||
if (player == null)
|
||||
return;
|
||||
|
||||
QuestData qData = getQuestData(quest.getName());
|
||||
|
||||
int activeStep = quest.getActiveStep();
|
||||
|
||||
QuestTask task = qData.getTasks().get(activeStep);
|
||||
|
||||
//if (quest.getWaypointId() != 0)
|
||||
//core.objectService.destroyObject(quest.getWaypointId());
|
||||
|
||||
if (quest.getTimer() != null)
|
||||
quest.getTimer().cancel(true);
|
||||
|
||||
if (activeStep + 1 >= qData.getTasks().size()) {
|
||||
QuestList listItem = questRewardMap.get(quest.getName());
|
||||
@@ -199,14 +271,12 @@ public class QuestService implements INetworkDispatch {
|
||||
|
||||
if (task.getGrantQuestOnComplete() != null && !task.getGrantQuestOnComplete().equals(""))
|
||||
activateQuest(quester, task.getGrantQuestOnComplete());
|
||||
|
||||
quest.incrementQuestStep(); // After handling the quest type, we can now increment the step
|
||||
|
||||
if (!task.isVisible()) {
|
||||
player.getContainer().getClient().getSession().write(player.getBaseline(8).createDelta(7));
|
||||
activateNextTask(quester, quest);
|
||||
return;
|
||||
}
|
||||
quest.incrementQuestStep();
|
||||
|
||||
player.getContainer().getClient().getSession().write(player.getBaseline(8).createDelta(7));
|
||||
|
||||
activateNextTask(quester, quest);
|
||||
|
||||
}
|
||||
|
||||
@@ -265,7 +335,7 @@ public class QuestService implements INetworkDispatch {
|
||||
// Give quest items
|
||||
|
||||
if (info.getRewardLootName() != null && !info.getRewardLootName().equals("")) {
|
||||
SWGObject rewardLoot = core.objectService.createObject(core.scriptService.getMethod("scripts/quest_rewards/", info.getRewardLootName(), "run").__call__().asString(), creo.getPlanet());
|
||||
SWGObject rewardLoot = core.objectService.createObject(core.scriptService.getMethod("scripts/quests/rewards/", info.getRewardLootName(), "run").__call__().asString(), creo.getPlanet());
|
||||
inventory.add(rewardLoot);
|
||||
recievedItems.add(rewardLoot.getObjectID());
|
||||
}
|
||||
@@ -361,12 +431,27 @@ public class QuestService implements INetworkDispatch {
|
||||
return;
|
||||
|
||||
QuestItem item = player.getQuestRetrieveItemTemplates().get(target.getTemplate());
|
||||
activateNextTask(quester, item.getQuestName());
|
||||
completeActiveTask(quester, item.getQuestName());
|
||||
|
||||
player.getQuestRetrieveItemTemplates().remove(target.getTemplate(), item);
|
||||
|
||||
}
|
||||
|
||||
public WaypointObject createWaypoint(String name, Point3D location, String planet) {
|
||||
WaypointObject waypoint = (WaypointObject) core.objectService.createObject("object/waypoint/shared_waypoint.iff", core.terrainService.getPlanetByName(planet));
|
||||
if (waypoint == null)
|
||||
return null;
|
||||
|
||||
waypoint.setActive(true);
|
||||
waypoint.setColor(WaypointObject.BLUE);
|
||||
waypoint.setName(name);
|
||||
waypoint.setPlanetCrc(CRC.StringtoCRC(planet));
|
||||
waypoint.setStringAttribute("", ""); //This simply allows the attributes to display (nothing else has to be done)
|
||||
waypoint.setPosition(location);
|
||||
|
||||
return waypoint;
|
||||
}
|
||||
|
||||
public QuestData getQuestData(String questName) {
|
||||
if (questMap.containsKey(questName))
|
||||
return questMap.get(questName);
|
||||
@@ -391,6 +476,12 @@ public class QuestService implements INetworkDispatch {
|
||||
}
|
||||
}
|
||||
|
||||
public void addCollisionEvent(String questName, String method, float x, float y, float z, float radius, String planet) {
|
||||
CollidableCircle collision = new CollidableCircle(new Point3D(x,y,z), radius, core.terrainService.getPlanetByName(planet));
|
||||
collision.setCallback(core.scriptService.getMethod("scripts/quests/events/", questName, method));
|
||||
core.simulationService.addCollidable(collision, x, z);
|
||||
}
|
||||
|
||||
public boolean adminActivateQuest(CreatureObject creo, String questName) {
|
||||
|
||||
PlayerObject ghost = creo.getPlayerObject();
|
||||
@@ -472,6 +563,8 @@ public class QuestService implements INetworkDispatch {
|
||||
if (visitor.getObjectByColumnNameAndIndex("ITEM_NAME", r) != null) task.setItemName((String) visitor.getObjectByColumnNameAndIndex("ITEM_NAME", r));
|
||||
if (visitor.getObjectByColumnNameAndIndex("DROP_PERCENT", r) != null) task.setDropPercent((int) visitor.getObjectByColumnNameAndIndex("DROP_PERCENT", r));
|
||||
if (visitor.getObjectByColumnNameAndIndex("RETRIEVE_MENU_TEXT", r) != null) task.setRetrieveMenuText((String) visitor.getObjectByColumnNameAndIndex("RETRIEVE_MENU_TEXT", r));
|
||||
if (visitor.getObjectByColumnNameAndIndex("MIN_TIME", r) != null) task.setMinTime((int) visitor.getObjectByColumnNameAndIndex("MIN_TIME", r));
|
||||
if (visitor.getObjectByColumnNameAndIndex("MAX_TIME", r) != null) task.setMaxTime((int) visitor.getObjectByColumnNameAndIndex("MAX_TIME", r));
|
||||
//if (visitor.getObjectByColumnNameAndIndex("", r))
|
||||
|
||||
data.getTasks().add(task);
|
||||
@@ -519,6 +612,19 @@ public class QuestService implements INetworkDispatch {
|
||||
return qList;
|
||||
}
|
||||
|
||||
public void loadEvents() {
|
||||
FileVisitor<Path> fv = new SimpleFileVisitor<Path>() {
|
||||
@Override
|
||||
public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException
|
||||
{
|
||||
core.scriptService.callScript("scripts/quests/events/", file.getFileName().toString().replace(".py", ""), "setup", core);
|
||||
return FileVisitResult.CONTINUE;
|
||||
}
|
||||
};
|
||||
try { Files.walkFileTree(Paths.get("scripts/quests/events/"), fv); }
|
||||
catch (IOException e) { e.printStackTrace(); }
|
||||
}
|
||||
|
||||
// useful for custom quest scripts, and for the some of the datatables that are all screwed up
|
||||
/*private QuestData parseXmlQuestData(Quest quest) {
|
||||
try {
|
||||
@@ -554,4 +660,8 @@ public class QuestService implements INetworkDispatch {
|
||||
|
||||
return template.replace(file, "shared_" + file);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void shutdown() { }
|
||||
|
||||
}
|
||||
|
||||
@@ -65,6 +65,8 @@ public class QuestTask {
|
||||
private int timeToComplete;
|
||||
private int numRequired;
|
||||
private int dropPercent;
|
||||
private int minTime;
|
||||
private int maxTime;
|
||||
|
||||
private long waitMarkerBuilding;
|
||||
|
||||
@@ -74,6 +76,7 @@ public class QuestTask {
|
||||
private float waitMarkerX;
|
||||
private float waitMarkerY;
|
||||
private float waitMarkerZ;
|
||||
private float radius;
|
||||
|
||||
public QuestTask() {}
|
||||
|
||||
@@ -451,4 +454,28 @@ public class QuestTask {
|
||||
public void setRetrieveMenuText(String retrieveMenuText) {
|
||||
this.retrieveMenuText = retrieveMenuText;
|
||||
}
|
||||
|
||||
public int getMinTime() {
|
||||
return minTime;
|
||||
}
|
||||
|
||||
public void setMinTime(int minTime) {
|
||||
this.minTime = minTime;
|
||||
}
|
||||
|
||||
public int getMaxTime() {
|
||||
return maxTime;
|
||||
}
|
||||
|
||||
public void setMaxTime(int maxTime) {
|
||||
this.maxTime = maxTime;
|
||||
}
|
||||
|
||||
public float getRadius() {
|
||||
return radius;
|
||||
}
|
||||
|
||||
public void setRadius(float radius) {
|
||||
this.radius = radius;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user