Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # Created by AlexALX (c) 2011
- # Modified for optimised dialing
- # For addon Stargate Carter Addon Pack
- # http://sg-carterpack.com/
- @name stargate fast-slow dial 2 wl
- @inputs Start SG:wirelink Address:string #Ring_Symbol:string Chevron Active Inbound Earth_Point_of_Origin
- @outputs #Close Rotate_Ring Chevron_Encode Chevron_7_Lock Ring_Speed_Mode
- @persist Address:string Stop Dialling LastSymbol:string
- @trigger
- RingSymsCW="#DVY27WCO58UA4E1SFQ@?LPGI96H*XZBM3RTNKJ0"
- if(!SG["Earth Point of Origin",number]){RingSymsCW="?DVY27WCO58UA4E1SFQ@#LPGI96H*XZBM3RTNKJ0"}
- if (!Address) {
- Address = "H5C?W#3E*"
- }
- runOnTick(1)
- SG["Disable Autoclose",number] = 0
- SG["Ring Speed Mode",number] = 3
- SG["Chevron Encode",number] = 0
- SG["Chevron 7 Lock",number] = 0
- SG["Set Point of Origin",number] = 1
- SG:stargateSetLocal(0)
- SG:stargateSetAddress("ASURND")
- SG:stargateSetName("ASURAN")
- SG:stargateSetBlocked(0)
- I = SG["Chevron",number]+1
- if (Start == 1) {
- if(Dialling!=1){
- if(clk("stdly")){#Rotate_Ring =0
- Dialling = 1} #ready to dial
- elseif(!SG["Rotate Ring",number]&&!Dialling){
- if(SG["Ring Symbol",string]!=""){Dialling=1} #check ring position before dialing
- else{
- SG["Rotate Ring",number]=1
- Dialling = -1
- }
- }
- elseif(SG["Ring Symbol",string]!=""){
- SG["Rotate Ring",number] =0
- timer("stdly",80) #some delay for ring sound failure workaround
- #Dialling = 1
- }
- #if(clk("dly1")
- #Dialling = 1
- }elseif(Dialling){
- if (clk("delay")) {
- SG["Chevron Encode",number] = 1
- timer("delay2", 2600)
- }
- if (clk("delay2")) {
- Stop = 0
- }
- if (clk("delay3")) {
- SG["Chevron 7 Lock",number] = 1
- }
- if (Stop == 0) {
- L=RingSymsCW:find(LastSymbol)
- N=RingSymsCW:find(Address[I])
- if(N>=L){
- if(N-L<RingSymsCW:length()/2){SG["Rotate Ring",number]=2}
- else{SG["Rotate Ring",number]=3}
- }
- else
- {
- if(L-N<RingSymsCW:length()/2){SG["Rotate Ring",number]=3}
- else{SG["Rotate Ring",number]=2}
- }
- # Rotate_Ring = 1
- }
- if (I < Address:length() & SG["Ring Symbol",string]==Address[I] && Stop == 0) {
- SG["Rotate Ring",number] = 0
- Stop = 1
- timer("delay", 50)
- } elseif (I == Address:length() & SG["Ring Symbol",string]==Address[I] && Stop == 0) {
- SG["Rotate Ring",number] = 0
- Stop = 1
- timer("delay3", 50)
- }
- }
- } elseif (!Start) {
- if (SG["Active",number] & Dialling) {
- SG["Close",number] = 1
- }
- SG["Rotate Ring",number] = 0
- Stop = 0
- Dialling = 0
- timer("close", 1000)
- if (clk("close")) {
- SG["Close",number] = 0
- }
- }
- if(SG["Ring Symbol",string]!=""){LastSymbol=SG["Ring Symbol",string]}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement