The following warnings occurred:
Warning [2] Use of undefined constant SAPI_NAME - assumed 'SAPI_NAME' (this will throw an Error in a future version of PHP) - Line: 3388 - File: inc/functions.php PHP 7.4.33-nmm7 (Linux)
File Line Function
/inc/functions.php 3388 errorHandler->error
/showthread.php 116 build_archive_link
Warning [2] Use of undefined constant IN_ARCHIVE - assumed 'IN_ARCHIVE' (this will throw an Error in a future version of PHP) - Line: 3331 - File: inc/functions.php PHP 7.4.33-nmm7 (Linux)
File Line Function
/inc/functions.php 3331 errorHandler->error
/inc/functions.php 3324 build_forum_breadcrumb
/showthread.php 195 build_forum_breadcrumb
Warning [2] Use of undefined constant IN_ARCHIVE - assumed 'IN_ARCHIVE' (this will throw an Error in a future version of PHP) - Line: 3331 - File: inc/functions.php PHP 7.4.33-nmm7 (Linux)
File Line Function
/inc/functions.php 3331 errorHandler->error
/showthread.php 195 build_forum_breadcrumb
Warning [2] count(): Parameter must be an array or an object that implements Countable - Line: 786 - File: showthread.php PHP 7.4.33-nmm7 (Linux)
File Line Function
/showthread.php 786 errorHandler->error






Post Reply 
 
Thread Rating:
  • 0 Votes - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Patrol script with lists, suggestion & improvements
Author Message
Crusader
Master
**

Posts: 254
Likes Given: 7
Likes Received: 19 in 12 posts
Joined: Apr 2012
Reputation: 6

Erehwon New Hera

Post: #1
Patrol script with lists, suggestion & improvements
This is just an embrional script, but i would like ideas for improvement and make it work better (if possible)

Code:
[FUNCTION f_assegna_patrol]
//serv.log <args> <- i tried to check if there aren't arguments..but doesn't work like this... help?
//IF !(<args>)
//src.Sysmessage You need 6 arguments: Continent (ex Sigil), Region (ex Lumen), Type (ex Guard), Route (ex 1), How Many chars(ex 4), Radius(4)
//ELSE
TARGETF f_patrol <argv[0]>,<argv[1]>,<argv[2]>,<argv[3]>,<argv[4]>,<argv[5]>
src.sysmessage On whom u wanna put a patrol script?
//ENDIF
RETURN 1

[FUNCTION f_patrol]
local.npchome=<serv.list.Patrol_<argv[0]>_<argv[1]>_<argv[2]>_<argv[3]>.0>
FORCHARS <eval <argv[5]>> // //note: actually the forchars starts from the player not from the targetted npc... meh =/
IF ((<ISCHAR>) && (<brain>))
    events +e_patrol
    tag.status = 2
    tag.patrol_routenum=<argv[3]>
    home = <local.npchome>
    homedist = 3
    goto <home>
    LOCAL.FIND_PATROLCHAR=1
ENDIF
ENDFOR
IF (<LOCAL.FIND_PATROLCHAR>)
    serv.newitem i_patrol_controller
    new.tag.infolist=<argv[0]>,<argv[1]>,<argv[2]>,<argv[3]>,<argv[4]>
    new.tag.patrol_now=0
    new.p = <local.npchome>
    new.more1=0
    new.timer=5
ENDIF

[ITEMDEF i_patrol_controller]
ID=I_CRYSTAL_RED
Name=Patrolling Controller [DO NOT REMOVE!]
TYPE=t_eq_script

ON=@CREATE
ATTR=ATTR_Invis|attr_move_never

ON=@TIMER
REF1=<uid>
IF <MORE1>=0
    LOCAL.TIMERVAR=0
    LOCAL.LIGHTGREEN=0
    LOCAL.PATROL_COUNT=0
    FORCHARS 3
    IF (<tag0.status> == 2)
        LOCAL.PATROL_MAXCHARCOUNT=<ritorna 5,<ref1.tag.infolist>> //n of npc patrolling together
        IF <eval <TAG.PATROL_ROUTENUM>> == <ritorna 4,<ref1.tag.infolist>> //which route
            LOCAL.PATROL_COUNT += 1
            IF <dLOCAL.PATROL_COUNT> == <dLOCAL.PATROL_MAXCHARCOUNT>
                REF1.MORE1=1
                LOCAL.TIMERVAR=-12
            ENDIF
        ENDIF
    ENDIF
    ENDFOR
ELSE
    tag.homecoord=<serv.list.Patrol_<ritorna 1,<tag.infolist>>_<ritorna 2,<tag.infolist>>_<ritorna 3,<tag.infolist>>_<ritorna 4,<tag.infolist>>.<tag.patrol_now>>
    FORCHARS 3
        IF (<tag0.status> == 2) && (<eval <TAG.PATROL_ROUTENUM>> == <ritorna 4,<ref1.tag.infolist>>)
            home = <ref1.tag.homecoord>
            goto <home>
        ENDIF
    ENDFOR
    IF (<tag.patrol_now> == <eval <serv.list.Patrol_<ritorna 1,<tag.infolist>>_<ritorna 2,<tag.infolist>>_<ritorna 3,<tag.infolist>>_<ritorna 4,<tag.infolist>>.COUNT>-1>)
        tag.patrol_now=0
    ELSE
        tag.patrol_now += 1
    ENDIF
    REF1.P = <tag.homecoord>
    LOCAL.TIMERVAR=0
    MORE1=0
ENDIF
TIMER=<eval <LOCAL.TIMERVAR>+15>
RETURN 1

[EVENTS e_patrol]

[function patrol_list]
//serv.list.Patrol_Continent_Region_Type_0.ADD 4511,1439,0        // example

serv.list.Patrol_Trammel_Britain_Guard_0.ADD 1110,1222,0    
serv.list.Patrol_Trammel_Britain_Guard_0.ADD 1130,1222,0
sserv.list.Patrol_Trammel_Britain_Guard_0.ADD 1150,1222,0
serv.list.Patrol_Trammel_Britain_Guard_0.ADD 1170,1222,0
serv.list.Patrol_Trammel_Britain_Guard_0.ADD 1190,1222,0    

serv.list.Patrol_LostLands_Papua_Citizen_0.ADD 4110,1222,0    
serv.list.Patrol_LostLands_Papua_Citizen_0.ADD 4210,1322,0

serv.list.Patrol_LostLands_Papua_Citizen_1.ADD 4510,1222,0    
serv.list.Patrol_LostLands_Papua_Citizen_1.ADD 4610,1322,0

[FUNCTION ritorna]  // returns a tag array cell value
return <argv[<argn1>]>
01-12-2014 12:06 PM
Find all posts by this user Like Post Quote this message in a reply
Post Reply 


Messages In This Thread
Patrol script with lists, suggestion & improvements - Crusader - 01-12-2014 12:06 PM

Forum Jump:


User(s) browsing this thread: 2 Guest(s)