Soulless
Super Moderator
Posts: 335
Likes Given: 29
Likes Received: 49 in 27 posts
Joined: Jun 2012
Reputation: 12
Ye Olde Sphere
|
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 |
|
The following 2 users Like Soulless's post:2 users Like Soulless's post
Gon (09-03-2018), Jozack (05-11-2017)
|