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-nmm6 (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-nmm6 (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-nmm6 (Linux)
File Line Function
/inc/functions.php 3331 errorHandler->error
/showthread.php 195 build_forum_breadcrumb






Post Reply 
 
Thread Rating:
  • 0 Votes - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Creatures casting spells
Author Message
Samba
Apprentice
*

Posts: 9
Likes Given: 0
Likes Received: 0 in 0 posts
Joined: Jan 2014
Reputation: 0



Post: #1
Creatures casting spells
Hello,
I've searched everywhere but I couldn't manage to find anything about making a character cast a spell at will.
I'm imagining a "follower" that I can control with words or something like that...

Is that possible?

Oh, and furthermore: I've an issue.
I'm trying to make a copy of myself that dies after some seconds, this is what I did:
Code:
[function f_createIllusion]
NEW.TAG.NOMOVETILL = <EVAL <SERV.TIME> + 100>
NEW.NAME <SRC.NAME>
REF1 = <SRC>
REF2 = <NEW>
FOR X 1 24
    SERV.NEWDUPE <REF1.FINDLAYER.<EVAL <LOCAL.X>>>
    if !( <NEW.UID> == 0 )
        REF2.EQUIP <NEW.UID>
    ENDIF
ENDFOR

return

I execute this everytime I cast a spell:

Code:
on=@SpellCast
    if ( <EVAL <SRC.CTAG0.NumberOfSpellCast>> >= 1 )
        SRC.SAY Illusion time biatch!
        SERV.NEWNPC = c_h_copy
        NEW.MOVENEAR <SRC.UID> 0
        NEW.f_createIllusion
        SRC.CTAG.NumberOfSpellCast = 0
    else
        SRC.CTAG0.NumberOfSpellCast += 1
        SRC.Say I've casted <EVAL <SRC.CTAG0.NumberOfSpellCast>>
    endif
    
    return

But when I tested it with the spell "teleport", when the server spawn my doppleganger on me, it won't let me teleport to where I said but, instead, it telelports on the same spot where I was when I casted teleport.

The code for the c_h_copy:


Code:
[CHARDEF c_h_copy]
DEFNAME = c_h_copy
NAME = temp
CAN=MT_WALK
ID = C_MAN

ON=@Create
   STR={161 189}
   MAXHITS={686 874}
   TIMERF 3, REMOVE 1

Oh, and by the way, is there a way to make the SRC of a @Create someone who's not the server? (UID: 00)
(This post was last modified: 02-05-2014 05:17 AM by Samba.)
02-05-2014 05:11 AM
Find all posts by this user Like Post Quote this message in a reply
darksun84
Sir Spamalot
****

Posts: 1,687
Likes Given: 245
Likes Received: 162 in 151 posts
Joined: Mar 2012
Reputation: 35



Post: #2
RE: Creatures casting spells
Looks like that the FOR along with serv.newdupe changes the act value to the uid of the last duped item .

The correct value of act should be 0 at end of the teleport spell, but instead i got
0:47:(H_PlayerEvents.scp,17)Final Act value 040001be8 -> backpack

Probably serv.newdupe goes mad when used inside a for or it's not used correctly, don't know yet
(This post was last modified: 02-05-2014 05:57 AM by darksun84.)
02-05-2014 05:57 AM
Find all posts by this user Like Post Quote this message in a reply
Samba
Apprentice
*

Posts: 9
Likes Given: 0
Likes Received: 0 in 0 posts
Joined: Jan 2014
Reputation: 0



Post: #3
RE: Creatures casting spells
Well forcharlayer doesn't work, for me, so I figured I should use that to cycle through all my equipped items...
Have you got any ideas regarding the spell casting npc?
02-05-2014 08:25 AM
Find all posts by this user Like Post Quote this message in a reply
XuN
Sphere Developer
*****

Posts: 852
Likes Given: 102
Likes Received: 156 in 119 posts
Joined: Jul 2013
Reputation: 30



Post: #4
RE: Creatures casting spells
Code:
[function f_createIllusion]
local.act=<act> //save your current act to restore it later.
NEW.TAG.NOMOVETILL = <EVAL <SERV.TIME> + 100>
NEW.NAME <SRC.NAME>
REF1 = <SRC>
REF2 = <NEW>
FOR X 1 24
    SERV.NEWDUPE <REF1.FINDLAYER.<EVAL <LOCAL.X>>>
    if !( <NEW.UID> == 0 )
        REF2.EQUIP <NEW.UID>
    ENDIF
ENDFOR
act=<local.act>//restore old act.
return
(This post was last modified: 02-05-2014 09:13 AM by XuN.)
02-05-2014 09:13 AM
Find all posts by this user Like Post Quote this message in a reply
Samba
Apprentice
*

Posts: 9
Likes Given: 0
Likes Received: 0 in 0 posts
Joined: Jan 2014
Reputation: 0



Post: #5
RE: Creatures casting spells
btw, works if i put the act save/restore on the @CastSpell trigger of characters, thanks!
Any insights on making the summoned creatures casting spell?
I would have to make it cast on enemies the summoner's see hostiles...
How do you recognize if someone's your enemy? (enemy because of your guild's war status or by karma or by whatever reason!)

Edit: I probably found something, i'm gonna play around with it: spellflag_field

Ok... managed to make it cast something, is there a way to see what and how does a brain_ AI system works?
(This post was last modified: 02-05-2014 08:59 PM by Samba.)
02-05-2014 08:22 PM
Find all posts by this user Like Post Quote this message in a reply
darksun84
Sir Spamalot
****

Posts: 1,687
Likes Given: 245
Likes Received: 162 in 151 posts
Joined: Mar 2012
Reputation: 35



Post: #6
RE: Creatures casting spells
If i remember well, in the file spherebackwardsomething.scp there is a function named npccast that allows npc to cast all the spells you want
02-05-2014 09:29 PM
Find all posts by this user Like Post Quote this message in a reply
XuN
Sphere Developer
*****

Posts: 852
Likes Given: 102
Likes Received: 156 in 119 posts
Joined: Jul 2013
Reputation: 30



Post: #7
RE: Creatures casting spells
You can copy the player's memory's items with a for loop and create a dupe of them in the new character.
02-05-2014 11:19 PM
Find all posts by this user Like Post Quote this message in a reply
Samba
Apprentice
*

Posts: 9
Likes Given: 0
Likes Received: 0 in 0 posts
Joined: Jan 2014
Reputation: 0



Post: #8
RE: Creatures casting spells
It works just fine!
Thanks darksun & xun
Now I only need to make him attack whatever the master sees as hostile! Tongue
Code:
on=@SpellCast
    if ( <EVAL <SRC.CTAG0.NumberOfSpellCast>> >= 1 )
        SERV.NEWNPC = c_h_copy
        NEW.MOVENEAR <SRC.UID> 0
        local.act = <act>
        NEW.f_createIllusion
        act = <local.act>
        SRC.CTAG.NumberOfSpellCast = 0
    else
        SRC.CTAG0.NumberOfSpellCast += 1
        SRC.Say I've casted <EVAL <SRC.CTAG0.NumberOfSpellCast>>
    endif
    
    return
(This post was last modified: 02-05-2014 11:59 PM by Samba.)
02-05-2014 11:55 PM
Find all posts by this user Like Post Quote this message in a reply
Post Reply 


Forum Jump:


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