Jump to content
Vital

GetUpText and rs_GetTextAt

Recommended Posts

I use resizeable screen with hi-graphic settings.

Looks like GetUpText doesn't work this way.

So i try rs_GetTextAt function instead but it doesn't work too.

function rs_GetTextAt(Font: LongInt; x: LongInt; y: LongInt): AnsiString

I used rs_LoadChars before to load ..SCAR Divi\Includes\OSI\RS2\Fonts\UpChars font and it works.

I changed options at rs_GetTextAt function randomly.

The problem is that i don't know what x and y valuables means.

I tried different values and with

Writeln(rs_GetTextAt(UpChars, 8, 57)) 

it began work but result looks like this:

 

::::-
::::-
::::-
-::: ::- -

(this text is appears when i move mouse and upper text is changed )

 

Is anybody have any idea?

Thanks.

Link to comment
Share on other sites

You sure you loaded them correctly? See how they are loaded with OSI

 

https://github.com/OSI1/OSI1/blob/master/OSI.scar

 

[sCAR]{=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

procedure SetUpOSI;

Contributors: Wanted, Timer, Freddy, LordJashin.

Description: Sets up OSI.

Date Created: August 7th, 2011. By Wanted

Last Modified: October 14th, 2012. By LordJashin. RS2 Build 735.

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=}

 

procedure SetUpOSI;

{$IFDEF RS2}

var

RS2FontFolder: string;

{$ENDIF}

{$IFDEF SMART}

i: Integer;

{$ENDIF}

begin

try

OSI_Variance := 3.0;

OSI_WriteAndLog('Routines Enabled');

{$IFDEF BASS}

Lib_Bass_Init('Divi\Libraries\Bass.dll');

{$ENDIF}

{$IFDEF RS2}

FriendChars := 0;

RS2GlobalVars;

if RS2_CheckForUpdates then

RSupdateGlobals;

RS2FontFolder := '';

OSI_WriteAndLog('RS2: Routines Enabled');

{$IFDEF OSI_Color_Anti_Randoms}

OSI_WriteAndLog('RS2: Color Random Detection and Solving Enabled');

InitiateAntiRandoms;

{$ELSE}

OSI_WriteAndLog('RS2: Color Random Detection and Solving Disabled');

{$ENDIF}

{$IFNDEF DisableRS2Fonts}

RS2FontFolder := IncludesPath + 'OSI\RS2\Fonts\';

if (not (DirectoryExists(RS2FontFolder))) then

RS2FontFolder := FontsPath;

OptionChars := rs_LoadChars(RS2FontFolder + 'ScreenChars\');

UpChars := rs_LoadChars(RS2FontFolder + 'UpChars\');

ScreenChars := LoadChars2(RS2FontFolder + 'ScreenChars\');

NPCChars := LoadChars2(RS2FontFolder + 'NPCChars\');

SmallChars := LoadChars2(RS2FontFolder + 'SmallChars\');

StatChars := LoadChars2(RS2FontFolder + 'StatChars\');

FriendChars := LoadChars2(RS2FontFolder + 'FriendChars\');

LoginChars := LoadChars2(RS2FontFolder + 'LoginChars\');

XPChars := LoadChars2(RS2FontFolder + 'UpChars\');

OSI_WriteAndLog('RS2: Loaded Fonts: OptionChars, ScreenChars, NPCChars, UpChars, SmallChars, StatChars, FriendChars, LoginChars, XPChars');

{$ELSE}

OSI_WriteAndLog('RS2: Font Loading Disabled.');

{$ENDIF}

SetLength(Players, 1);

LoadRS2WorldArray;

AllowQuickChat := True;

AllowLootShare := True;

{$IFDEF SMART}

if (SMART_Server = 0) and (Length(Players[CurrentPlayer].WorldInfo) > 1) then

for i := 0 to high(RS2WorldArray) do

if Players[CurrentPlayer].WorldInfo[1] = i + 1 then

SMART_Server := i + 1;

if (SMART_Server = 0) then

SMART_Server := RandomWorld(false);

if InitSmartLib(IncludesPath + 'OSI\RS2\Misc\libsmartremote32.dll') then

SMART_Path := IncludesPath + 'OSI\RS2\Misc\'

else if InitSmartLib(ScriptPath + 'OSI\RS2\Misc\libsmartremote32.dll') then

SMART_Path := ScriptPath + 'OSI\RS2\Misc\'

else if InitSmartLib(ScriptPath + 'RS2\Misc\libsmartremote32.dll') then

SMART_Path := ScriptPath + 'RS2\Misc\'

else

begin

OSI_WriteAndLog('RS2: Couldn''t load SMART (libsmartremote32.dll)' + #13#10 +

'RS2: Try restarting SCAR Divi, SMART, or Re-installing OSI' + #13#10 +

'RS2: If problems persist post a thread on the forums at http://www.scar-divi.com');

TerminateScript;

end;

if (not (NonAutomaticSMART)) then

InitiateSMART;

{$ELSE}

GetClient.Activate;

RSClientOriginalImageArea := GetClient.ImageArea;

RSClientOriginalInputArea := GetClient.InputArea;

UpdateRSClient;

OSI_WriteAndLog('RS2: Looking for (Login Screen, Lobby Screen, or LoggedIn)...8-13secs');

if not WaitFunc(@RSReady, True, 100, 250, 8000, 13000) then

FixLoginScreen;

{$ENDIF}

PlayerStartTime := GetSystemTime;

{$ENDIF}

MouseSpeed := 15;

SetColorSpeed2Modifiers(0.2, 0.2);

ColorToleranceSpeed(1);

except

HandleOSIException;

finally

if not OSIExceptionThrown then

begin

IsOSISetup := True;

OSI_WriteAndLog('Successfully Setup!');

end;

end;

end;[/sCAR]

Link to comment
Share on other sites

I use resizeable screen with hi-graphic settings.
A lot of the functions (not just text functions) don't work unless you are using FIXED mode and SAFE MODE graphics. There is a way around it if you read from the desktop rather than the client itself. It is a bit of work to setup since you have to figure out what part of the desktop corresponds to the client etc.
Link to comment
Share on other sites

I got it!!!

i set up such code:

      for i:=1 to 100 do
       for j:=50 to 100 do
         begin
           Writeln(rs_GetTextAt(UpChars, i, j));
           Writeln('i'+IntToStr(i))
           Writeln('j'+IntToStr(j))
         end;

and with i=1 and j=56 it works, i got upper text!

so the final result for my personal display settings is:

Writeln(rs_GetTextAt(UpChars, 1, 56))

 

Thank you very much guys!

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
  • Create New...