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






Post Reply 
 
Thread Rating:
  • 0 Votes - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Runebook...
Author Message
Soulless
Super Moderator
****

Posts: 335
Likes Given: 29
Likes Received: 49 in 27 posts
Joined: Jun 2012
Reputation: 12

Ye Olde Sphere

Post: #4
RE: Runebook...
try this out

Code:
//Runebook 1.1
//Scripted by Soulless
//uses spheres internal functions for recall/gate and just prevents skillcheck and consumption of reags/ mana for runebook charge


[itemdef i_runebook]
id=i_spellbook
name=runebook
type=t_container
skillmake=inscription 95.0
resources=1 i_scroll_recall, 1 i_scroll_gate_travel, 1 i_rune_marker, 8 i_scroll_blank
value=8000
weight=1

category=Other
subsection=Books
description=Runebook

on=@create
attr=attr_newbie
color=045e
more1=5
more2=50

on=@click
message <name> <qval <isempty <tag.name>>?:(<tag0.name>)>
return 1

on=@dclick
sdialog d_runebook
return 1

on=@dropon_self

/////ADD CHARGE TO THE RUNEBOOK
if (<argo.baseid>==i_scroll_recall) || (<argo.baseid>==i_scroll_gate_travel)
  if <more1> < <more2>
    local.charges=<eval <argo.amount>*<qval <argo.baseid>==i_scroll_gate_travel?2:1> >
    more1 += <local.charges>
    src.sysmessage You add <dlocal.charges> charges to the runebook.
    argo.consume <local.charges>
    return 1
  endif
endif

/////ADD RUNE TO THE RUNEBOOK
if <argo.type> != t_rune        //can only hold runes
  src.sysmessage Can't add this to the runebook
  return 1
endif

if !<argo.morep>        //runes must have a marked location
  src.sysmessage That rune does not have a marked location.
  return 1
endif

if <count> >= 16
  src.sysmessage The runebook is full
  return 1
endif

for 16
  if <uid.<tag0.rune<dlocal._for>>.cont> != <uid>
    tag0.rune<dlocal._for>==<argo>
    src.sysmessage You scribe the rune into slot <dlocal._for>
    return 0
  endif
endfor




[dialog d_runebook]
200,200

page 0
    
gumppic 10 10 2200     //runebook background

dtext 50 38 100 Charges: <dmore1>    //charges
gumppic 35 50 57
for 7
  gumppic <eval 55+(<local._for>*10)> 50 58
endfor
gumppic 135 50 59

dtext 210 38 100 Max Charges: <dmore2>        //max charges
gumppic 200 50 57
for 7
  gumppic <eval 220+(<local._for>*10)> 50 58
endfor
gumppic 300 50 59

for 1 8        //rune page buttons
  button <eval <qval <local._for> < 5?5:30>+(<local._for>*35)> 187 22<eval 24+<local._for>> 22<eval 24+<local._for>> 0 <eval <local._for>+1>
endfor

page 1

button 90 17 2472 2473 1 0 1        //rename button
dtext 115 20 100 Rename

dcroppedtext 205 20 90 15 100 <qval <isempty <tag.name>>?:<tag0.name>>

button 300 15 2206 2206 0 2        //page forward

for 1 16        //list of runes
  button <qval <local._for> < 9?40:200> <eval 50+((<local._for>-<qval <local._for> < 9?0:8>)*15)> 2104 2103 1 0 <eval <local._for>+1>
  if <uid.<tag0.rune<dlocal._for>>.cont>==<uid>
    dcroppedtext <qval <local._for> < 9?55:215> <eval 43+((<local._for>-<qval <local._for> < 9?0:8>)*15)> 110 15 1947 <uid.<tag0.rune<dlocal._for>>.name>
    else
     dtext <qval <local._for> < 9?55:215> <eval 43+((<local._for>-<qval <local._for> < 9?0:8>)*15)> 1947 Empty
  endif
endfor


////PAGE 2,9
for 2 9
page <local._for>

button 30 15 2205 2205 0 <eval <local._for>-1>        //page back

//FIRST RUNE ON PAGE
dtext 80 15 100 Page <eval (<local._for>*2)-3>        //page listing
if <uid.<tag0.rune<eval (<local._for>*2)-3>>.cont>==<uid>        //only list the run if its in the runebook
  button 40 65 2104 2103 2 0 <eval (<local._for>*2)-2>
  dcroppedtext 55 60 110 15 1947 <uid.<tag0.rune<eval (<local._for>*2)-3>>.name>
  dtext 60 80 1947 <sextantp <uid.<tag0.rune<eval (<local._for>*2)-3>>.morep>>
  button 45 110 4005 4006 1 0 <eval (300+(<local._for>*2)-3)>             //drop first rune
  dtext 80 110 1947 Drop Rune
  button 50 140 2271 2271 1 0 <eval (100+(<local._for>*2)-3)>               //recall
  button 100 140 2291 2291 1 0 <eval (200+(<local._for>*2)-3)>
  else
  dtext 55 60 1947 Empty
endif

//SECOND RUNE ON PAGE
dtext 220 15 100 Page <eval (<local._for>*2)-2>        //page listing
if <uid.<tag0.rune<eval (<local._for>*2)-2>>.cont>==<uid>        //only list the run if its in the runebook
  button 200 65 2104 2103 2 0 <eval (<local._for>*2)-1>
  dcroppedtext 215 60 110 15 1947 <uid.<tag0.rune<eval (<local._for>*2)-2>>.name>
  dtext 220 80 1947 <sextantp <uid.<tag0.rune<eval (<local._for>*2)-2>>.morep>>
  button 205 110 4005 4006 1 0 <eval (300+(<local._for>*2)-2)>              //drop second rune
  dtext 240 110 1947 Drop Rune
  button 210 140 2271 2271 1 0 <eval (100+(<local._for>*2)-2)>               //recall
  button 260 140 2291 2291 1 0 <eval (200+(<local._for>*2)-2)>
  else
dtext 215 60 1947 Empty
endif

if <local._for> < 9
  button 300 15 2206 2206 0 <eval <local._for>+1>    //page forward
endif
endfor

[dialog d_runebook button]

onbutton=1        //rename runebook
src.sysmessage What would you like to name this runebook?
src.ctag.runebook=<uid>
promptconsole rename_runebook
    
onbutton=2,17        //use a charge
//<uid.<tag0.rune<eval <argn1>-1>>> is the rune marker uid
if !<more1>
  src.sysmessage The runebook is out of charges.    //check for charges
  return 1
endif

src.events=+e_using_runebook_charge
src.ctag0.runebook=<uid>
src.actarg1=32        //set spell to recall
src.act=<uid.<tag0.rune<eval <argn1>-1>>>    //set act to rune marker's uid
src.action=25        //set action to magery

onbutton=100,116     //use recall spell
//<uid.<tag0.rune<eval <argn1>-100>>> is the rune marker uid
src.actarg1=32        //set spell to recall
src.act=<uid.<tag0.rune<eval <argn1>-100>>>    //set act to rune marker's uid
src.action=25        //set action to magery


onbutton=200,216    //use gate spell
//<uid.<tag0.rune<eval <argn1>-200>>> is the rune marker uid
src.actarg1=52        //set spell to gate travel
src.act=<uid.<tag0.rune<eval <argn1>-200>>>    //set act to rune marker's uid
src.action=25        //set action to magery

onbutton 300,316    //drop a rune
src.bounce <uid.<tag0.rune<eval <argn1>-300>>>
tag0.rune<eval <argn1>-300>=

[events e_using_runebook_charge]    //sets spell difficulty to 0 and skips reagent and mana consumption

on=@spellcast
argn2=0

on=@spellselect        //do not consume mana or reagents when using runebook charges
ref1=<argo.ctag0.runebook>
//if <argn3> != 01
  argo.events=-e_using_runebook_charge
  ref1.more1 -= 1
  argo.ctag0.runebook=
  return 6
//endif

[function rename_runebook]
ref1=<ctag0.runebook>
src.ctag.runebook=
if (<isempty <args>>) || (<isnum <args>>)
  Sysmessage The name entered was either invalid or empty.
  return 1
endif

ref1.tag0.name=<args>
  sysmessage Runebook renamed to <args>
endif


[EOF]
05-10-2017 03:02 AM
Visit this user's website Find all posts by this user Like Post Quote this message in a reply
[+] 2 users Like Soulless's post
Post Reply 


Messages In This Thread
Runebook... - Jozack - 05-05-2017, 01:26 AM
RE: Runebook... - Leonidas - 05-05-2017, 09:38 AM
RE: Runebook... - Jozack - 05-05-2017, 09:41 AM
RE: Runebook... - Soulless - 05-10-2017 03:02 AM
RE: Runebook... - Jozack - 05-11-2017, 01:42 PM

Forum Jump:


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