Hi everyone!
It's my first own topic in this forum, so let me introduce my self
I'm DracoX, Dimension Free Shard (Brazilian Shard), Staff Member (currently Seer) and Injection Scripter (it's been a while... can't remember when i begun to script in Injection). And the most important part of me... i don't understand Russian !
I'm here to bring you my small list (ironic) of support/auxiliar/utility/whatever script/function list.
If anyone needs me to explain one or all plz ask which one(s) and i'll do my best to describe them in english!
Here they go:
Code: ; 7 - Auxiliares ; {
; 7.00 - Sobrevivência ; { ; 7.00.000 - Recuperar ; { Sub Recuperar(guardas) var verif If UO.InJournal(msgAtacado) Or UO.Life<UO.Str Or UO.Poisoned() Then If guardas==1 Then UO.Exec('exec Guardas') End If PM('Estou sendo atacado! Estou na posição '+str(UO.GetX())+','+str(UO.GetY())+','+str(UO.GetZ())) CancelarWarMode() ApagaDoJournal(msgBloqueioMagery) While ((UO.Life<UO.Str And (UO.Count(typeBandage)>0 Or Not UO.InJournal(msgBloqueioMagery))) Or (UO.Poisoned() And Not UO.InJournal(msgBloqueioMagery))) And Not UO.Dead() While UO.Poisoned() And Not UO.InJournal(msgBloqueioMagery) While UO.Poisoned() And UO.Mana<m23 CancelarWarMode() EsperaMeditacao(m23) WEnd If UO.Poisoned() And UO.Mana>=m23 Then Cast(n23,m23,d23,s23,p23,'s') EsperaMagia() End If WEnd If UO.Life<UO.Str And (UO.Count(typeBandage)>0 Or Not UO.InJournal('An anti-magic field disturbs the spells.')) Then If UO.Count(typeBandage)>0 Then If UO.GetGlobal('Bandage')=='1' Then verif=(delayBandage+5)*1000 Repeat Wait(100) If UO.InJournal(msgSalvandoMundo) Then verif=verif+30000 ApagaDoJournal(msgSalvandoMundo) End If verif=verif-100 Until UO.GetGlobal('Bandage')<>'1' Or verif<=0 If verif<=0 Then ReiniciarDelayBandage() End If Else ApagaDoJournal(msgUsandoHealing+'|'+msgUsouHealing+'|'+msgFalhaHealing+'|'+msgEsperaSkill+'|'+msgBloqueioHealing) UO.BandageSelf() EsperaBandage() End If Else While UO.Mana<m14 And Not UO.Poisoned() CancelarWarMode() EsperaMeditacao(m14) WEnd If UO.Mana>=m14 And Not UO.Poisoned() Then Cast(n14,m14,d14,s14,p14,'s') EsperaMagia() End If End If End If WEnd CancelarWarMode() End If End Sub ; ; } ; 7.00.001 - Chamar Guardas ; { Sub Guardas() var antiflood=0 If UO.InJournal(msgAtacado) Then UO.Msg(msgGuardas) ApagaDoJournal(msgAtacado) Wait(delayGuardas*1000) End If While UO.Life<UO.Str Or UO.Poisoned() Or UO.Dead() If antiflood<=0 then antiflood=delayGuardas*1000 UO.Msg(msgGuardas) End If Wait(100) antiflood=antiflood-100 WEnd End Sub ; ; } ; 7.00.002 - Alimentar Personagem ; { Sub Comer(tipo) If tipo<>'0x0000' Then If UO.Count(tipo)>0 Then var t=25 UO.Msg('.fome') Wait(100) EsperaSalvarMundo() EsperaAtraso() If TextoMeuServidor(msgFomeVazio) And Not UO.Dead() Then Repeat UO.UseType(tipo) t=t-1 Wait(100) EsperaSalvarMundo() Until TextoMeuServidor(msgFomeCheio) Or UO.Count(tipo)<=0 Or t<=0 Or UO.Dead() End If If TextoMeuServidor(msgFomeCheio) Or UO.Count(tipo)<=0 Or UO.Dead() Then ApagaDoJournal(msgFomeVazio+'|'+msgFomeCheio) End If End If End If End Sub ; ; } ; 7.00.003 - Reviver ; { Sub Reviver() var c While UO.Dead() UO.LClick(xBotaoHelp,yBotaoHelp) EsperaGump('text', 0, gumpHelpPage0, 1) If usarGump==1 Then UO.LClick(xBotaoHelpRoom-xGumpHelp+UO.LastGump('x'),yBotaoHelpRoom-yGumpHelp+UO.LastGump('y')) Else UO.LClick(xBotaoHelpRoom,yBotaoHelpRoom) End If EsperaGump('text', 10, gumpHelpRoom10, 1) If usarGump==1 Then UO.LClick(xBotaoConfirmaHelpRoom-xGumpHelp+UO.LastGump('x'),yBotaoConfirmaHelpRoom-yGumpHelp+UO.LastGump('y')) Else UO.LClick(xBotaoConfirmaHelpRoom,yBotaoConfirmaHelpRoom) End If EsperaGump('text', 0, gumpHelpRoomConfirma0, delayHelpRoomMorto+2.5) If usarGump==1 Then UO.LClick(xBotaoAceitaHelpRoom-xGumpAceitaHelpRoom+UO.LastGump('x'),yBotaoAceitaHelpRoom-yGumpAceitaHelpRoom+UO.LastGump('y')) Else UO.LClick(xBotaoAceitaHelpRoom,yBotaoAceitaHelpRoom) End If c=(delayHelpRoomConfirma+2.5)*1000 Repeat Wait(10) c=c-10 Until Not UO.Dead() Or c<=0 WEnd End Sub ; ; } ; ; }
; 7.01 - Esperas ; { ; 7.01.000 - Espera Atraso de Comunicação ; { Sub EsperaAtraso() var ping=0 ApagaDoJournal('backpack') UO.Click('backpack') Repeat Wait(1) ping=ping+1 Until UO.InJournal('backpack') If modoDebug==1 then UO.CharPrint(corCharPrintDebug,'Atraso Debug: '+str(ping)+'ms') End If return ping End Sub ; ; } ; 7.01.001 - Espera Salvar Mundo ; { Sub EsperaSalvarMundo() var debug=0 If TextoMeuServidor(msgSalvandoMundo) Then Repeat Wait(10) debug=debug+10 Until UO.InJournal(msgSalvouMundo) Or debug>=delaySave*1000 End If ApagaDoJournal(msgSalvandoMundo+'|'+msgSalvouMundo) End If If modoDebug==1 then UO.CharPrint(corCharPrintDebug,'Salvar Mundo Debug: '+str(debug/1000)+'s') End If End Sub ; ; } ; 7.01.002 - Espera Usar Bandage ; { Sub EsperaBandage() var d=delayBandage*1000 var debug=0 While Not UO.Injournal(msgUsandoHealing+'|'+msgFalhaHealing+'|'+msgEsperaSkill+'|'+msgBloqueioHealing+'|'+msgNaoUsouHealing) Wait(10) WEnd Repeat If TextoMeuServidor(msgSalvandoMundo) And Not TextoMeuServidor(msgSalvouMundo) Then Wait(10) If modoDebug==1 Then UO.CharPrint(corCharPrintDebug,'Bandage Desconsiderando delay por estar salvando o mundo') End If Else Wait(10) d=d-10 debug=debug+10 End If Until d<=0 Or TextoMeuServidor(msgUsouHealing+'|'+msgFalhaHealing+'|'+msgEsperaSkill+'|'+msgBloqueioHealing+'|'+msgNaoUsouHealing) Or UO.Dead() If d<=0 Or TextoMeuServidor(msgFalhaHealing+'|'+msgEsperaSkill+'|'+msgBloqueioHealing) Then ApagaDoJournal(msgUsandoHealing+'|'+msgUsouHealing+'|'+msgFalhaHealing+'|'+msgEsperaSkill+'|'+msgBloqueioHealing+'|'+msgNaoUsouHealing) return false Else If modoDebug==1 And Not TextoMeuServidor(msgNaoUsouHealing) Then UO.CharPrint(corCharPrintDebug,'Bandage Debug: '+str(debug/1000)+'s') End If ApagaDoJournal(msgUsandoHealing+'|'+msgUsouHealing+'|'+msgFalhaHealing+'|'+msgEsperaSkill+'|'+msgBloqueioHealing+'|'+msgNaoUsouHealing) return true End If End Sub ; ; } ; 7.01.003 - Espera Magia ; { Sub EsperaMagia() var mana=UO.Mana var vida=UO.Life var debug=0 EsperaAtraso() If Not TextoMeuServidor(msgFalhaAlvo+'|'+msgFalhaAlvoMagery+'|'+msgBloqueioMagery+'|'+msgBloqueioRecall+'|'+msgFaltaMagery) Then Repeat If UO.Mana>mana then mana=UO.Mana End If If UO.Life>vida Then vida=UO.Life End If Wait(10) debug=debug+10 Until UO.Mana<mana Or UO.Life<vida Or TextoMeuServidor(msgFalhaMagery+'|'+msgBloqueioMagery+'|'+msgBloqueioRecall+'|'+msgFalhaAlvo+'|'+msgFalhaAlvoMagery+'|'+msgFaltaMagery) Or UO.Dead() End If If UO.Mana<mana Then If modoDebug==1 then UO.CharPrint(corCharPrintDebug,'Magia Debug: '+str(debug/1000)+'s') End If return true End If If TextoMeuServidor(msgFalhaMagery+'|'+msgBloqueioMagery+'|'+msgBloqueioRecall+'|'+msgFalhaAlvo+'|'+msgFalhaAlvoMagery+'|'+msgFaltaMagery) Or UO.Dead() Then CancelarWarMode() ApagaDoJournal(msgFalhaMagery+'|'+msgBloqueioMagery+'|'+msgBloqueioRecall+'|'+msgFalhaAlvo+'|'+msgFalhaAlvoMagery+'|'+msgFaltaMagery) End If return false End Sub ; ; } ; 7.01.004 - Espera Meditação ; { Sub EsperaMeditacao(v) If UO.Mana<v And UO.Mana<UO.Int Then var debug=0 ApagaDoJournal(msgUsandoMeditation+'|'+msgUsouMeditation+'|'+msgNaoUsouMeditation+'|'+msgFalhaMeditation) UO.UseSkill('Meditation') If modoDebug==1 Then Repeat Wait(10) Until UO.InJournal(msgUsandoMeditation) End If Repeat Wait(10) debug=debug+10 Until UO.Mana>=v OR UO.Mana>=UO.Int Or TextoMeuServidor(msgUsouMeditation+'|'+msgNaoUsouMeditation+'|'+msgFalhaMeditation) If TextoMeuServidor(msgFalhaMeditation) Then CancelarWarMode() ApagaDoJournal(msgFalhaMeditation) return false Else If UO.Mana>=UO.Int Then Repeat Wait(10) debug=debug+10 Until TextoMeuServidor(msgUsouMeditation+'|'+msgNaoUsouMeditation+'|'+msgFalhaMeditation) End If If modoDebug==1 Then UO.CharPrint(corCharPrintDebug,'Meditação Debug: '+str(debug/1000)+'s') End If return true End If Else return true End If End Sub ; ; } ; 7.01.005 - Espera Alvo ; { Sub EsperaAlvo() var debug=0 While UO.Targeting() Wait(10) debug=debug+10 WEnd If modoDebug==1 then UO.CharPrint(corCharPrintDebug,'Alvo Debug: '+str(debug/1000)+'s') End If End Sub ; ; } ; 7.01.006 - Espera Gump ; { Sub EsperaGump(t,p,i,d) d=d*1000 var debug=0 If usarGump==1 Then If t=='text' Or t=='serial' Or t=='gumpid' Then Repeat Wait(100) d=d-100 debug=debug+100 EsperaSalvarMundo() Until d<=0 Or (UO.LastGump('replyed')==0 And ContemTexto(UO.LastGump(t,p),i)) Else Repeat Wait(100) d=d-100 debug=debug+100 EsperaSalvarMundo() Until d<=0 Or (UO.LastGump('replyed')==0 And UO.LastGump(t)==i) End If If modoDebug==1 then UO.CharPrint(corCharPrintDebug,'Gump Debug: '+str(debug)+'ms') End If Else EsperaSalvarMundo() Wait(d) End If End Sub ; ; } ; 7.01.007 - Espera Fechar Gump ; { Sub EsperaFecharGump(t,p,i,d) d=d*1000 var debug=0 If usarGump==1 Then If t=='text' Or t=='serial' Or t=='gumpid' Then Repeat Wait(100) d=d-100 debug=debug+100 EsperaSalvarMundo() Until d<=0 Or UO.LastGump('replyed')<>0 Or Not ContemTexto(UO.LastGump(t,p),i) Else Repeat Wait(100) d=d-100 debug=debug+100 EsperaSalvarMundo() Until d<=0 Or UO.LastGump('replyed')<>0 Or UO.LastGump(t)<>i End If If modoDebug==1 then UO.CharPrint(corCharPrintDebug,'Gump Debug: '+str(debug)+'ms') End If Else EsperaSalvarMundo() Wait(d) End If End Sub ; ; } ; 7.01.008 - Espera Resposta em Texto de Alguém ; { Sub EsperaResposta(alvo,tempomax) tempomax=tempomax*1000 ApagaDoJournal(UO.GetName(alvo)) Repeat Repeat Wait(100) tempomax=tempomax-100 Until UO.InJournal(UO.GetName(alvo)) Or tempomax<=0 If UO.InJournal(UO.GetName(alvo)) And Not UO.JournalSerial(UO.InJournal(UO.GetName(alvo))-1)==UO.GetSerial(alvo) Then UO.SetJournalLine(UO.InJournal(UO.GetName(alvo))-1,'') End If Until UO.JournalSerial(UO.InJournal(UO.GetName(alvo))-1)==UO.GetSerial(alvo) Or tempomax<=0 If tempomax>0 Or UO.JournalSerial(UO.InJournal(UO.GetName(alvo))-1)==UO.GetSerial(alvo) Then If Len(UO.Journal(UO.InJournal(UO.GetName(alvo))-1))>=Len(UO.GetName(alvo))+2 Then return Right(UO.Journal(UO.InJournal(UO.GetName(alvo))-1),Len(UO.Journal(UO.InJournal(UO.GetName(alvo))-1))-Len(UO.GetName(alvo))-2) End If End If return '' End Sub ; ; } ; ; }
; 7.02 - Utilitários ; { ; 7.02.000 - Cancelamento com Warmode ; { Sub CancelarWarMode() var debug=0 If UO.WarMode()==0 Then UO.WarMode(1) ApagaDoJournal('backpack') UO.Click('backpack') Repeat Wait(1) debug=debug+1 Until UO.WarMode()==1 Or UO.InJournal('backpack') UO.WarMode(0) Repeat Wait(1) debug=debug+1 Until UO.WarMode()==0 Else UO.WarMode(0) Repeat Wait(1) debug=debug+1 Until UO.WarMode()==0 End If If modoDebug==1 then UO.CharPrint(corCharPrintDebug,'WarMode Debug: '+str(debug)+'ms') End If End Sub ; ; } ; 7.02.001 - Seleção de Alvo para Próxima Ação ; { Sub UsaAlvo(alvo) If alvo=='c' Or alvo=='cancel' Then If UO.Waiting() Then UO.CancelTarget() End If Else If alvo=='s' Or alvo=='self' Then UO.WaitTargetSelf() Else If alvo=='sg' Or alvo=='selfground' Then UO.WaitTargetTile('#0x400',UO.GetX(),UO.GetY(),UO.GetZ()) Else If alvo=='l' Or alvo=='lasttarget' Then UO.WaitTargetLast() Else If alvo=='lg' Or alvo=='lasttargetground' Then UO.WaitTargetTile('#0x400',UO.GetX('lasttarget'),UO.GetY('lasttarget'),UO.GetZ('lasttarget')) Else If Left(alvo,2)=='o ' Then UO.WaitTargetObject(Right(alvo,10)) Else If Left(alvo,2)=='og' Then UO.WaitTargetTile('#0x400',UO.GetX(Right(alvo,10)),UO.GetY(Right(alvo,10)),UO.GetZ(Right(alvo,10))) End If End If End If End If End If End If End If End Sub ; ; } ; 7.02.002 - Abrir Banco ; { Sub Bank() var placa='0x00000000' UO.IgnoreReset() UO.Set('finddistance',5) UO.FindType(typePlaca,corQualquer,'ground') While UO.FindCount()>0 If UO.GetDistance('finditem')<UO.GetDistance(placa) Or placa=='0x00000000' Then placa=UO.GetSerial('finditem') End If UO.Ignore('finditem') UO.FindType(typePlaca,corQualquer,'ground') WEnd If placa=='0x00000000' Then If UO.GetNotoriety('self')<=1 Then UO.Msg(msgBanco+' '+msgGuardas) Else UO.Msg(msgBanco) End If Else UO.UseObject(placa) EsperaGump('text',6,gumpPlacaCasa6,1) If usarGump==1 Then UO.LClick(xBotaoPlacaBanco-xGumpPlacaCasa+UO.LastGump('x'),yBotaoPlacaBanco-yGumpPlacaCasa+UO.LastGump('y')) Else UO.LClick(xBotaoPlacaBanco,yBotaoPlacaBanco) End If End If EsperaAtraso() UO.IgnoreReset() End Sub ; ; } ; 7.02.003 - Caminhar Até Posição ou Próximo; { Sub Caminhar(x,y,dist) var c=0 var cx var cy var limite=3000 var dir var loop Dim Anda[8] Anda[0]=33 ; N ; Anda[1]=39 ; NE ; Anda[2]=34 ; E ; Anda[3]=40 ; SE ; Anda[4]=35 ; S ; Anda[5]=37 ; SW ; Anda[6]=36 ; W ; Anda[7]=38 ; NW ; While (UO.GetX()>x+dist Or UO.GetX()<x-dist Or UO.GetY()>y+dist Or UO.GetY()<y-dist) And c<10 And limite>0 cx=UO.GetX() cy=UO.GetY() If (UO.GetX()<=x+dist And UO.GetX()>=x-dist) And UO.GetY()>y+dist Then dir=0 End If If UO.GetX()<x-dist And UO.GetY()>y+dist Then dir=1 End If If UO.GetX()<x-dist And (UO.GetY()<=Y+dist And UO.GetY()>=Y-dist) Then dir=2 End If If UO.GetX()<x-dist And UO.GetY()<y-dist Then dir=3 End If If (UO.GetX()<=x+dist And UO.GetX()>=x-dist) And UO.GetY()<y-dist Then dir=4 End If If UO.GetX()>x+dist And UO.GetY()<y-dist Then dir=5 End If If UO.GetX()>x+dist And (UO.GetY()<=Y+dist And UO.GetY()>=Y-dist) Then dir=6 End If If UO.GetX()>x+dist And UO.GetY()>y+dist Then dir=7 End If EsperaSalvarMundo() If c<=5 Then UO.Press(Anda[dir]) Wait(100) Else dir=UO.Random(8) For loop=0 to UO.Random(5)+2 UO.Press(Anda[dir]) Wait(100) Next End If If UO.GetX()==cx And UO.GetY()==cy Then c=c+1 Else c=0 End If limite=limite-1 WEnd End Sub ; ; } ; 7.02.004 - Contar Item por Tipo e Local ; { Sub ContarItem(tipo,cor,local) var cont=0 UO.IgnoreReset() If local=='ground' Then UO.Set('finddistance',distPegaChao) End If UO.FindType(tipo,cor,local) While UO.FindCount()>0 cont=cont+UO.GetQuantity('finditem') UO.Ignore('finditem') UO.FindType(tipo,cor,local) WEnd UO.IgnoreReset() return cont End Sub ; ; } ; 7.02.005 - Mover Item por Tipo e Local ; { Sub MoverItem(tipo,cor,localDe,localPara,modo,quant) var contDe=ContarItem(tipo,cor,localDe) var contPara=ContarItem(tipo,cor,localPara) var movidoDe=0 var movidoPara=0 var antesDe var antesPara var mover=0 var pesoitem=10 If modo=='obter' Then If (quant-contPara)>contDe Then quant=contDe Else quant=quant-contPara End If Else If modo=='sobrar' Then quant=contDe-quant Else If quant>contDe Then quant=contDe End If End If End If var loop=quant*2 While movidoPara<quant And movidoDe<quant And loop>0 And (localPara<>UO.GetSerial('backpack') Or UO.Weight<40+(UO.Str*3.5)-pesoitem) antesDe=contDe antesPara=contPara UO.FindType(tipo,cor,localDe) If UO.FindCount()>0 Then pesoitem=UO.Weight If movidoPara>=movidoDe Then mover=quant-movidoPara Else mover=quant-movidoDe End If If localPara=='ground' Then UO.Drop(mover,UO.GetX()-2+UO.Random(5),UO.GetY()-2+UO.Random(3)+UO.Random(2),UO.GetZ(),'finditem') Else UO.MoveItem('finditem',mover,localPara) End If Wait(1500) EsperaAtraso() EsperaSalvarMundo() pesoitem=(UO.Weight-pesoitem)/mover End If contDe=ContarItem(tipo,cor,localDe) contPara=ContarItem(tipo,cor,localPara) movidoDe=movidoDe-contDe+antesDe movidoPara=movidoPara+contPara-antesPara loop=loop-1 WEnd End Sub ; ; } ; 7.02.006 - Sair da Help Room ; { Sub SairHelpRoom() While UO.GetX()>=posHelpRoomW And UO.GetX()<=posHelpRoomE And UO.GetY()>=posHelpRoomN And UO.GetY()<=posHelpRoomS If UO.GetY()<yHelpRoomGate Then If UO.GetX()<xHelpRoomGate Then Caminhar(xHelpRoomGate-5,yHelpRoomGate-1,1) Else Caminhar(xHelpRoomGate+5,yHelpRoomGate-1,1) End If End If Caminhar(xHelpRoomGate,yHelpRoomGate+1+UO.Random(2),0) If UO.GetY()>yHelpRoomGate And UO.GetX()==xHelpRoomGate Then UO.Press(33) Wait(100) UO.Press(33) Wait(100) UO.Press(33) Wait(100) UO.Press(33) End If Wait(100) WEnd End Sub ; ; } ; 7.02.007 - Mandar Mensagem Privada (PM) ; { Sub PM(t) If pmAviso1<>'' Then UO.Msg('.pm '+pmAviso1) EsperaGump('text',1,gumpPM1,1) UO.Say(t) Wait(Len(t)*2) If usarGump==1 Then UO.LClick(xBotaoPM-xGumpPM+UO.LastGump('x'),yBotaoPM-yGumpPM+UO.LastGump('y')) Else UO.LClick(xBotaoPM,yBotaoPM) End If End If If pmAviso2<>'' Then UO.Msg('.pm '+pmAviso2) EsperaGump('text',1,gumpPM1,1) UO.Say(t) Wait(Len(t)*2) If usarGump==1 Then UO.LClick(xBotaoPM-xGumpPM+UO.LastGump('x'),yBotaoPM-yGumpPM+UO.LastGump('y')) Else UO.LClick(xBotaoPM,yBotaoPM) End If End If End Sub ; ; } ; 7.02.008 - Pega a vida do Inimigo (%) ; { Sub VerificaVida(a) var vida=0 If UO.GetSerial(a)==UO.GetSerial('self') Then vida=UO.Str If vida>0 Then vida=UO.Life/vida End If Else vida=UO.GetHP(a) If vida>0 Then vida=vida/UO.GetMaxHP(a) End If End If return int(100*vida) End Sub ; ; } ; ; }
; 7.03 - Textos ; { ; 7.03.000 - Contém Texto ; { Sub ContemTexto(t1,t2) var tmaior=t1 var tmenor=t2 If Len(t1)<Len(t2) Then tmaior=t2 tmenor=t1 End If If Len(tmenor)<=0 Then return true End If var pos=Len(tmaior)-Len(tmenor) While pos>=0 If Mid(tmaior,pos,Len(tmenor))==tmenor Then return true End If pos=pos-1 WEnd return false End Sub ; ; } ; 7.03.001 - Apaga Linha do Journal ; { Sub ApagaDoJournal(t) While UO.InJournal(t) UO.SetJournalLine(UO.InJournal(t)-1,'') WEnd End Sub ; ; } ; 7.03.002 - Texto Meu ou do Servidor ; { Sub TextoMeuServidor(t) While UO.InJournal(t) If UO.JournalSerial(UO.InJournal(t)-1)==UO.GetSerial('self') Or UO.JournalSerial(UO.InJournal(t)-1)=='0xFFFFFFFF' Then return true Else UO.SetJournalLine(UO.InJournal(t)-1,'') End If WEnd return false End Sub ; ; } ; 7.03.003 - Dono do Texto ; { Sub TextoDono(t) var d='0x00000000' If UO.InJournal(t) Then d=UO.JournalSerial(UO.InJournal(t)-1) UO.SetJournalLine(UO.InJournal(t)-1,'') End If return d End Sub ; ; } ; 7.03.004 - Procura Texto Entre Posição Inicial e Texto Final ; { Sub TextoPosTxt(texto,p,t) If p>Len(texto) Then p=Len(texto) End If If p<0 Then p=0 End If var pos=p While pos<=Len(texto)-Len(t) And Mid(texto,pos,Len(t))<>t And Len(t)>0 pos=pos+1 WEnd If pos>Len(texto)-Len(t) Then pos=Len(texto)-p End If return Mid(texto,p,pos-p) End Sub ; ; } ; 7.03.005 - Procura Texto Entre Texto Inicial e Texto Final ; { Sub TextoTxtTxt(texto,ti,tf) var pos=0 While pos<=Len(texto)-Len(ti) And Mid(texto,pos-Len(ti),Len(ti))<>ti And Len(ti)>0 pos=pos+1 WEnd var posi=pos While pos<=Len(texto)-Len(tf) And Mid(texto,pos-Len(tf),Len(tf))<>tf And Len(tf)>0 pos=pos+1 WEnd If pos>Len(texto)-Len(tf) Then pos=Len(texto)-posi End If return Mid(texto,posi,pos-posi) End Sub ; ; } ; 7.03.006 - Procura Texto Entre Texto Inicial e Posição Final ; { Sub TextoTxtPos(texto,t,p) var pos=0 While pos<=Len(texto)-Len(t) And Mid(texto,pos-Len(t),Len(t))<>t And Len(t)>0 pos=pos+1 WEnd If pos>p Then return '' End If return Mid(texto,pos,p-pos) End Sub ; ; } ; 7.03.007 - Substituir Texto ; { Sub Substituir(texto,torig,tsubs) If ContemTexto(texto,torig) Then texto=TextoPosTxt(texto,0,torig)+tsubs+TextoTxtPos(texto,torig,Len(texto)) End If return texto End Sub ; ; } ; ; }
; 7.04 - Números ; { ; 7.04.000 - Módulo ; { Sub Modulo(n) If n<0 Then return -n End If return n End Sub ; ; } ; 7.04.001 - Resto da Divisão de Inteiros ; { Sub Mod(n,div) If div<>0 Then return int((n/div-int(n/div))*div) Else return 0 End If End Sub ; ; } ; 7.04.002 - Potência ; { Sub Potencia(nbase,bexp) var inv=0 var resp=nbase If bexp==0 Then return 1 End If If bexp==1 Then return nbase End If If bexp<0 Then inv=1 bexp=-bexp End If While bexp>1 resp=resp*nbase bexp=bexp-1 WEnd If inv==1 Then If resp<>0 Then return 1/resp Else return 0 End If End If return resp End Sub ; ; } ; 7.04.003 - Segundos para Horas, Minutos e Segundos ; { Sub Hora(seg) var hora=0 var min=0 var resp='' seg=int(seg) While seg<0 seg=seg+(24*60*60) WEnd While seg>(24*60*60) seg=seg-(24*60*60) WEnd If seg>60*60 Then hora=int(seg/(60*60)) seg=seg-int(seg/(60*60))*60*60 End If If seg>60 Then min=int(seg/60) seg=seg-int(seg/60)*60 End If If hora<10 Then resp=resp+'0' End If resp=resp+str(hora)+':' If min<10 Then resp=resp+'0' End If resp=resp+str(min)+':' If seg<10 Then resp=resp+'0' End If resp=resp+str(seg) return resp End Sub ; ; } ; 7.04.004 - Formatar Dinheiro ; { Sub Dinheiro(n) var msg='gp' var aux While n>=1000 msg=str(Mod(n,1000))+msg If Mod(n,1000)<100 and n/1000>=1 Then msg='0'+msg End If If Mod(n,1000)<10 and n/1000>=1 Then msg='0'+msg End If msg='.'+msg n=int(n/1000) WEnd return str(n)+msg End Sub ; ; } ; ; }
; 7.05 - Arquivo ; { ; 7.05.000 - Escrever Novo Arquivo ; { Sub ArquivoNovo(nome,texto) var a=file(nome) a.open() a.create() safe call a.writeln(texto) a.close() End Sub ; ; } ; 7.05.001 - Adicionar a Arquivos ; { Sub ArquivoAdicionar(nome,texto) var a=file(nome) a.open() var t='' var aux=safe call a.readString() While aux<> msgFimArquivo t=t+aux aux=safe call a.readString() WEnd safe call a.writeln(texto) a.close() End Sub ; ; } ; 7.05.002 - Ler Arquivo ; { Sub ArquivoLer(nome,p) var a=file(nome) var t='' var aux='' var i a.open() If p<=0 Then aux=safe call a.readString() While aux<> msgFimArquivo t=t+aux aux=safe call a.readString() WEnd Else If p>=2 Then For i=2 to p safe call a.readString() Next End If t=safe call a.readString() End If a.close() return t End Sub ; ; } ; 7.05.003 - Apresentar Todo o Arquivo ; { Sub ArquivoApresentar(nome) var a=file(nome) var t='' UO.TextOpen() UO.TextClear() a.open() UO.TextPrint('Arquivo '+nome+':') UO.TextPrint('') t=safe call a.readString() While t<> msgFimArquivo UO.TextPrint(t) t=safe call a.readString() WEnd a.close() UO.TextPrint('') UO.TextPrint('Fim do arquivo!') End Sub ; ; } ; ; }
; ; }
The Reason you see brackets comented is that I use notepad++ with my own language made for Injection, and this brackets are usefull for folding some scripts of my 9 thousand lines autoload (still developing... much to do yet... not even 1 skill training function was made for this autoload )
|