Page 1 of 1
Guild ress
Posted: 2013-02-01 02:11:22
by Folka
Hello, I'm trying to make a script that would check journal for constant messages of "DEAD: Guild Player Name was killed in" and then would try to auto res the player(by ID) and if succeded, write the name of the player and that he is ressurected in guild chat.
I want this to be used in all guild so closest people would ressurect.
But I seem to get problems.
Here is my script so far.
Code: Select all
Sub ResGuild()
UO.Print("Guild Ress - ON")
repeat
UO.DeleteJournal()
wait(1000)
if UO.InJournal('DEAD: Player Name was killed in') then
repeat
UO.Exec('usetype 0x0E21')
UO.waittargetobject('Player ID')
UO.DeleteJournal()
uo.getstatus('Player ID')
if uo.gethp('laststatus') == 0 then
wait(500)
else
UO.Say(".gsay "+ uo.getname('laststatus') +" ressurected")
endif
until UO.InJournal("Player Name ressurected")
endif
until false
end sub
Re: Guild ress
Posted: 2013-02-01 10:34:11
by Nmy
This needs testing whether the journal returns player serial or not, im not sure.
First of all show us the printout of [,showjournal 10] when the message appears
And
Code: Select all
uo.print(UO.JournalSerial(UO.InJournal("DEAD: ")-1))
uo.deletejournal()
Re: Guild ress
Posted: 2013-02-01 12:31:28
by Folka
Nmy wrote:This needs testing whether the journal returns player serial or not, im not sure.
First of all show us the printout of [,showjournal 10] when the message appears
And
Code: Select all
uo.print(UO.JournalSerial(UO.InJournal("DEAD: ")-1))
uo.deletejournal()
It detects the player, and resses, but it doesn't stop healing even when the person is full HP.
Edit:
Now I used this:
Code: Select all
Sub ResGuild()
UO.Print("Guild Ress - ON")
repeat
UO.DeleteJournal()
wait(1000)
if UO.InJournal('DEAD: Ryza Lenke was killed in') then
repeat
UO.Exec('usetype 0x0E21')
UO.waittargetobject('0x0001F906')
uo.getstatus('0x0001F906')
if uo.gethp('laststatus') == 0 then
wait(500)
else
UO.Say(".gsay "+ uo.getname('laststatus') +" ressurected")
wait(1000)
endif
until UO.InJournal("Ryza Lenke")
endif
until false
end sub
Got this(first time I was next to the dead player, it ressed, but no .gsay. Second time I was far away. It didn't repeat itself) :

Re: Guild ress
Posted: 2013-02-01 16:18:17
by Nmy
I would not recommend using such autoscript.
it's better if you run to your teammate, drag his hp bar and execute:
Code: Select all
uo.waittargetobject('laststatus')
uo.usetype('0x0E21')
Re: Guild ress
Posted: 2013-02-01 16:31:06
by Folka
We were using your recommended method for a while, I thought I could improve our ressing with this auto script.
The problem is that it just doesn't read the status bar properly, maybye I should add variables of min/max hp? I really want to make this work
Re: Guild ress
Posted: 2013-02-01 16:57:54
by Nmy
Code: Select all
uo.print(str(uo.GetHp('0x0001F906')))
Re: Guild ress
Posted: 2013-02-03 11:51:18
by Nmy
or you can just use bandage count as a true/false flag before/after resurrection
Re: Guild ress
Posted: 2013-02-03 12:01:43
by Folka
I found a script here:
viewtopic.php?f=20&t=7187&start=160#p89847but don't understand why this
Code: Select all
If Char<>0 Then
UO.SetArm('CWeapon')
UO.WaitTargetObject(Char)
UO.UseType('0x0E21')
UO.Print("?anno?aeo!!!")
wait(500)
UO.Exec("bandageself")
wait(500)
UO.Arm('CWeapon')
Else
UO.Print("A?iaa ana ?eau!!!")
EndIf
in the comment
viewtopic.php?f=20&t=7187&start=160#p89848was changed to
Code: Select all
If Char<>0 Then
UO.SetArm('CWeapon')
uo.cast('название каста',Char)
wait(5000) ; пауза для каста заклинания
UO.WaitTargetObject(Char)
UO.UseType('0x0E21')
UO.Print("?anno?aeo!!!")
wait(500)
uo.cast('название каста','self')
wait(500)
UO.Arm('CWeapon')
Else
Why would there be a cast for both char and self? And bandage use for self. This is a friend ress script ^^
Re: Guild ress
Posted: 2013-02-03 15:07:20
by Nmy
Code: Select all
If Char<>0 Then
UO.SetArm('CWeapon')
uo.cast('название каста',Char)
wait(5000) ; пауза для каста заклинания
UO.WaitTargetObject(Char)
UO.UseType('0x0E21')
UO.Print("?anno?aeo!!!")
wait(500)
uo.cast('название каста','self')
wait(500)
UO.Arm('CWeapon')
Else
That doesn't look right. Maybe it's resurrection magic and bandages, both at the same time. or resurrection and heal. the second cast might be self buff
Re: Guild ress
Posted: 2013-04-01 15:42:14
by DracoX
Why are you using 'laststatus' when you can use bandage on the player's id!
I would go for:
Code: Select all
While UO.GetHP('Player ID')<UO.GetMaxHP('PlayerID') And UO.Count('0x0E21')>0 And UO.GetDistance('Player ID')<=??? ; change ??? for the maximum healing distance! And to stop healing, just get away from the player ;) ;
UO.WaitTargetObject('Player ID)
UO.UseType('0x0E21')
Wait(1000) ; Or as much as you think is better ;
WEnd