fodev.net
FOnline Development => Questions and Answers => Topic started by: Ethanhoff on October 22, 2014, 06:47:38 am
-
compile.bat isnt working shows this:
(https://i.imgur.com/cmnwaNz.png)
what is wrong? how to fix this?
i tried running ASCompiler by itself too, it instantly closes out as soon as i open it
-
You have to run ASCompiler with the name of the script as its first argument:
ASCompiler TheNameOfTheScript.fos
If you don't know how to do that, google "windows command line tutorial" or "how to run program with parameter in windows"
-
this is what i get when i try to compile a script
FOnline AngleScript compiler. Usage:
ASCompiler script_name.fos
[-client] (compile client scripts)
[-mapper] (compile mapper scripts)
[-p preprocessor_output.txt]
[-d SOME_DEFINE]*
[-run func_name]*
[-gc] (collect garbage after execution)
*can be used multiple times
C:\FODM\Server\scripts>ascompiler.exe client_interface.fos
Compiling client_interface.fos ...
./client_gui_ex.fos(1018) : ERROR : Identifier 'CritterCl' is not a data type in
global namespace.
./client_gui_ex.fos(1027) : ERROR : Identifier 'ItemCl' is not a data type in gl
obal namespace.
./lexems_h.fos(61) : ERROR : Identifier 'CritterCl' is not a data type in global
namespace.
./lexems_h.fos(62) : ERROR : Identifier 'ItemCl' is not a data type in global na
mespace.
./lexems_h.fos(64) : ERROR : Identifier 'CritterCl' is not a data type in global
namespace.
./lexems_h.fos(65) : ERROR : Identifier 'ItemCl' is not a data type in global na
mespace.
./lexems_h.fos(65) : ERROR : A function with the same name and parameters alread
y exists.
./lexems_h.fos(68) : ERROR : Identifier 'CritterCl' is not a data type in global
namespace.
./lexems_h.fos(69) : ERROR : Identifier 'ItemCl' is not a data type in global na
mespace.
./lexems_h.fos(69) : ERROR : A function with the same name and parameters alread
y exists.
./lexems_h.fos(73) : ERROR : Identifier 'CritterCl' is not a data type in global
namespace.
./lexems_h.fos(74) : ERROR : Identifier 'ItemCl' is not a data type in global na
mespace.
./lexems_h.fos(74) : ERROR : A function with the same name and parameters alread
y exists.
./lexems_h.fos(77) : ERROR : Identifier 'CritterCl' is not a data type in global
namespace.
./lexems_h.fos(78) : ERROR : Identifier 'ItemCl' is not a data type in global na
mespace.
./lexems_h.fos(78) : ERROR : A function with the same name and parameters alread
y exists.
./prod_ingredients_h.fos(33) : ERROR : Identifier 'ItemCl' is not a data type in
global namespace.
./prod_ingredients_h.fos(34) : ERROR : Identifier 'ItemCl' is not a data type in
global namespace.
./prod_ingredients_h.fos(35) : ERROR : Identifier 'ItemCl' is not a data type in
global namespace.
./prod_ingredients_h.fos(37) : ERROR : Identifier 'ItemCl' is not a data type in
global namespace.
./client_smart_cursor_h.fos(24) : ERROR : Identifier 'ItemCl' is not a data type
in global namespace.
./client_smart_cursor_h.fos(24) : ERROR : Identifier 'ItemCl' is not a data type
in global namespace.
./item_dogtags_h.fos(24) : ERROR : Identifier 'ItemCl' is not a data type in glo
bal namespace.
./item_dogtags_h.fos(27) : ERROR : Identifier 'ItemCl' is not a data type in glo
bal namespace.
./item_dogtags_h.fos(29) : ERROR : Identifier 'ItemCl' is not a data type in glo
bal namespace.
client_interface.fos(44) : ERROR : Identifier 'CritterCl' is not a data type in
global namespace.
client_interface.fos(62) : ERROR : Identifier 'CritterCl' is not a data type in
global namespace.
client_interface.fos(833) : ERROR : Identifier 'ItemCl' is not a data type in gl
obal namespace.
client_interface.fos(1043) : ERROR : Identifier 'CritterCl' is not a data type i
n global namespace.
client_interface.fos(1525) : ERROR : Identifier 'CritterCl' is not a data type i
n global namespace.
client_interface.fos(2119) : ERROR : Identifier 'CritterCl' is not a data type i
n global namespace.
client_interface.fos(2124) : ERROR : Identifier 'ItemCl' is not a data type in g
lobal namespace.
client_interface.fos(2127) : ERROR : Identifier 'ItemCl' is not a data type in g
lobal namespace.
client_interface.fos(2127) : ERROR : Identifier 'ItemCl' is not a data type in g
lobal namespace.
client_interface.fos(2130) : ERROR : Identifier 'ItemCl' is not a data type in g
lobal namespace.
client_interface.fos(2135) : ERROR : Identifier 'ItemCl' is not a data type in g
lobal namespace.
client_interface.fos(2138) : ERROR : Identifier 'ItemCl' is not a data type in g
lobal namespace.
client_interface.fos(2143) : ERROR : Identifier 'ItemCl' is not a data type in g
lobal namespace.
./sprite.fos(23) : INFO : Compiling bool Sprite::Load(string&inout, int).
./sprite.fos(27) : ERROR : No matching signatures to 'LoadSprite(string&, int)'.
./sprite.fos(36) : INFO : Compiling void Sprite::LoadHash(uint, uint8).
./sprite.fos(38) : ERROR : No matching signatures to 'LoadSprite(uint, uint8)'.
./sprite.fos(42) : INFO : Compiling void Sprite::LoadByIni(string&inout, int).
./sprite.fos(44) : ERROR : No matching signatures to 'GetIfaceIniStr(string&)'.
./sprite.fos(46) : ERROR : No matching signatures to 'LoadSprite(string@&, int)'
.
./sprite.fos(52) : INFO : Compiling void Sprite::Draw(int, int).
./sprite.fos(55) : ERROR : No matching signatures to 'DrawSprite(uint&, const in
t, int, int, const int)'.
./sprite.fos(58) : INFO : Compiling void Sprite::RefreshData().
./sprite.fos(62) : ERROR : No matching signatures to 'GetSpriteWidth(uint&, cons
t int)'.
./sprite.fos(63) : ERROR : No matching signatures to 'GetSpriteHeight(uint&, con
st int)'.
./sprite.fos(64) : ERROR : No matching signatures to 'GetSpriteCount(uint&)'.
./client_gui_ex.fos(167) : INFO : Compiling IControl@ Control::Position(string&i
nout).
./client_gui_ex.fos(175) : ERROR : No matching signatures to 'GetIfaceIniStr(str
ing&)'.
./client_gui_ex.fos(253) : INFO : Compiling void Control::ShowWindow().
./client_gui_ex.fos(255) : ERROR : No matching signatures to 'Message(string@&)'
.
./client_gui_ex.fos(257) : INFO : Compiling void Control::ShowWindow(int, int).
./client_gui_ex.fos(259) : ERROR : No matching signatures to 'Message(string@&)'
.
./client_gui_ex.fos(261) : INFO : Compiling void Control::HideWindow().
./client_gui_ex.fos(263) : ERROR : No matching signatures to 'Message(string@&)'
.
./client_gui_ex.fos(462) : INFO : Compiling CButton::CButton(int, int, int, int,
string&inout).
./client_gui_ex.fos(467) : ERROR : No matching signatures to 'Message(string@&)'
.
./client_gui_ex.fos(471) : INFO : Compiling CButton::CButton(int, int, int, int,
string&inout, string&inout).
./client_gui_ex.fos(474) : ERROR : No matching signatures to 'Message(string@&)'
.
./client_gui_ex.fos(476) : ERROR : No matching signatures to 'Message(string@&)'
.
./client_gui_ex.fos(480) : INFO : Compiling CButton::CButton(string&inout, strin
g&inout).
./client_gui_ex.fos(485) : ERROR : No matching signatures to 'Message(string@&)'
.
./client_gui_ex.fos(494) : INFO : Compiling void CButton::Draw().
./client_gui_ex.fos(499) : ERROR : No matching signatures to 'DrawSprite(uint&,
const int, int, int, const int)'.
./client_gui_ex.fos(504) : ERROR : No matching signatures to 'DrawSprite(uint&,
const int, int, int, const int)'.
./client_gui_ex.fos(508) : ERROR : No matching signatures to 'DrawText(string, i
nt, int, int, int, int, const int, uint)'.
./client_gui_ex.fos(525) : INFO : Compiling void CDialogRedButton::Draw().
./client_gui_ex.fos(528) : ERROR : No matching signatures to 'DrawSprite(uint&,
const int, int, int, const int)'.
./client_gui_ex.fos(544) : INFO : Compiling void CSmallButton::Draw().
./client_gui_ex.fos(547) : ERROR : No matching signatures to 'DrawSprite(uint&,
const int, int, int, const int)'.
./client_gui_ex.fos(649) : INFO : Compiling void CLabel::Draw().
./client_gui_ex.fos(651) : ERROR : No matching signatures to 'DrawText(string@&,
int, int, int, int, int&, int&, int&)'.
./client_gui_ex.fos(761) : INFO : Compiling void CTextBox::InsertChar(uint8).
./client_gui_ex.fos(764) : ERROR : No matching signatures to 'string::resize(con
st int)'.
./client_gui_ex.fos(768) : ERROR : No matching signatures to 'string::set_opInde
x(const int, uint8)'.
./client_gui_ex.fos(768) : INFO : Candidates are:.
./client_gui_ex.fos(768) : INFO : void string::set_opIndex(int, const string&in)
const.
./client_gui_ex.fos(773) : INFO : Compiling void CTextBox::Draw().
./client_gui_ex.fos(789) : ERROR : No matching signatures to 'DrawText(string, i
nt, int, int, int, int&, int&, int&)'.
./client_gui_ex.fos(873) : INFO : Compiling void CSprite::Draw().
./client_gui_ex.fos(875) : ERROR : No matching signatures to 'DrawSprite(uint&,
const int, int, int, const int)'.
./client_gui_ex.fos(919) : INFO : Compiling void CSpriteEx::Draw().
./client_gui_ex.fos(922) : ERROR : No matching signatures to 'DrawSprite(uint&,
int&, int, int, int&, int&, bool&, bool&, uint&, bool&)'.
./client_gui_ex.fos(978) : INFO : Compiling void CListBox::Draw().
./client_gui_ex.fos(982) : ERROR : No matching signatures to 'DrawText(string@&,
int, int, int, uint&, uint, const int, const uint)'.
./client_gui_ex.fos(1018) : INFO : Compiling void CContextButton::SetCritter(int
).
./client_gui_ex.fos(1021) : ERROR : Object handle is not supported for this type
.
./client_gui_ex.fos(1022) : ERROR : 'Id' is not a member of 'int'.
./client_gui_ex.fos(1027) : INFO : Compiling void CContextButton::SetItem(int).
./client_gui_ex.fos(1030) : ERROR : Object handle is not supported for this type
.
./client_gui_ex.fos(1031) : ERROR : 'Id' is not a member of 'int'.
./client_gui_ex.fos(1082) : INFO : Compiling void Window::Center().
./client_gui_ex.fos(1084) : ERROR : '__ScreenHeight' is not declared.
./client_gui_ex.fos(1084) : ERROR : '__ScreenWidth' is not declared.
client_interface.fos(85) : INFO : Compiling CDialogImage::CDialogImage().
client_interface.fos(87) : ERROR : No matching signatures to 'DMessage(string@&)
'.
client_interface.fos(91) : INFO : Compiling void CDialogImage::Set(int, int, str
ing&inout).
client_interface.fos(95) : ERROR : No matching signatures to 'LoadSprite(string&
, const int)'.
client_interface.fos(96) : ERROR : No matching signatures to 'DMessage(string@&)
'.
client_interface.fos(99) : INFO : Compiling void CDialogImage::Unset().
client_interface.fos(104) : ERROR : No matching signatures to 'DMessage(string@&
)'.
client_interface.fos(119) : INFO : Compiling void CDialogImage::Draw().
client_interface.fos(126) : ERROR : No matching signatures to 'GetHardcodedScree
nPos(int, int, int)'.
client_interface.fos(135) : ERROR : No matching signatures to 'DrawSprite(int&,
const int, int, int, const int)'.
client_interface.fos(190) : INFO : Compiling void CWorldmapElement::Draw(uint).
client_interface.fos(195) : ERROR : '__GmapZoom' is not declared.
client_interface.fos(195) : ERROR : '__GmapOffsetY' is not declared.
client_interface.fos(195) : ERROR : '__GmapOffsetX' is not declared.
client_interface.fos(197) : ERROR : No matching signatures to 'DrawText(string,
int, int, uint&, uint&, uint&, int&, int&)'.
client_interface.fos(1615) : INFO : Compiling void BagCallbackHide::OnHide(int,
int, int).
client_interface.fos(1618) : ERROR : No matching signatures to 'RefreshItemsColl
ection(const int)'.
client_interface.fos(389) : INFO : Compiling void render_iface(uint).
client_interface.fos(410) : ERROR : Unexpected variable declaration.
client_interface.fos(413) : ERROR : Identifier 'CritterCl' is not a data type.
client_interface.fos(421) : ERROR : Identifier 'ItemCl' is not a data type.
client_interface.fos(422) : ERROR : Identifier 'ItemCl' is not a data type.
client_interface.fos(473) : ERROR : Identifier 'CritterCl' is not a data type.
client_interface.fos(476) : ERROR : Identifier 'ItemCl' is not a data type.
client_interface.fos(483) : ERROR : Identifier 'CritterCl' is not a data type.
client_interface.fos(486) : ERROR : Identifier 'CritterCl' is not a data type.
client_interface.fos(496) : ERROR : Identifier 'ItemCl' is not a data type.
client_interface.fos(508) : ERROR : Identifier 'ItemCl' is not a data type.
client_interface.fos(509) : ERROR : Identifier 'ItemCl' is not a data type.
client_interface.fos(578) : ERROR : Identifier 'CritterCl' is not a data type.
client_interface.fos(606) : INFO : Compiling string generic_description(int, int
&inout, int&inout).
client_interface.fos(608) : ERROR : Identifier 'CritterCl' is not a data type.
client_interface.fos(626) : ERROR : Identifier 'ItemCl' is not a data type.
client_interface.fos(704) : ERROR : Identifier 'ItemCl' is not a data type.
client_interface.fos(833) : INFO : Compiling string item_description(int&inout,
int).
client_interface.fos(835) : ERROR : Identifier 'CritterCl' is not a data type.
client_interface.fos(1043) : INFO : Compiling string critter_description(int&ino
ut, int).
client_interface.fos(1244) : ERROR : Identifier 'CritterCl' is not a data type.
client_interface.fos(1311) : ERROR : Identifier 'ItemCl' is not a data type.
client_interface.fos(1466) : ERROR : Identifier 'ItemCl' is not a data type.
client_interface.fos(1534) : INFO : Compiling void _SetColor(int, int, int, stri
ng@, int[]@).
client_interface.fos(1536) : ERROR : Identifier 'CritterCl' is not a data type.
client_interface.fos(1565) : INFO : Compiling void _RepairSession(int, int, int,
string@, int[]@).
client_interface.fos(1569) : ERROR : No matching signatures to 'RefreshItemsColl
ection(const int)'.
client_interface.fos(1630) : INFO : Compiling void IndicatorMouse(bool, int).
client_interface.fos(1639) : ERROR : '__MouseY' is not declared.
client_interface.fos(1639) : ERROR : '__MouseX' is not declared.
client_interface.fos(1646) : INFO : Compiling bool ReadIniInt(string&inout, int&
inout).
client_interface.fos(1648) : ERROR : No matching signatures to 'GetIfaceIniStr(s
tring&)'.
client_interface.fos(1652) : INFO : Compiling void InitIndicators().
client_interface.fos(1654) : ERROR : '__IndicatorType' is not declared.
client_interface.fos(1662) : ERROR : '__ScreenWidth' is not declared.
client_interface.fos(1674) : ERROR : '__ScreenHeight' is not declared.
client_interface.fos(1675) : WARNING : 'IntY' is not initialized..
client_interface.fos(1679) : ERROR : No matching signatures to 'GetIfaceIniStr(s
tring@&)'.
client_interface.fos(1685) : ERROR : No matching signatures to 'GetIfaceIniStr(s
tring@&)'.
client_interface.fos(1699) : INFO : Compiling void DrawIndicators().
client_interface.fos(1709) : ERROR : Identifier 'CritterCl' is not a data type.
client_interface.fos(1712) : ERROR : Identifier 'ItemCl' is not a data type.
client_interface.fos(1875) : INFO : Compiling void DrawIndicator(Rect@, int[]&in
out, uint, int, uint&inout, bool, bool, uint = 35).
client_interface.fos(1928) : ERROR : No matching signatures to 'DrawPrimitive(co
nst int, int[]&)'.
client_interface.fos(1931) : INFO : Compiling void DrawCounter(Rect@, string&ino
ut, uint, int).
client_interface.fos(1933) : ERROR : No matching signatures to 'DrawText(string&
, int&, int&, int&, int&, uint, int, const int)'.
client_interface.fos(1962) : INFO : Compiling void DrawArea(uint, uint8).
client_interface.fos(1967) : ERROR : Identifier 'CritterCl' is not a data type.
client_interface.fos(2027) : INFO : Compiling void DrawInsideStatus(bool).
client_interface.fos(2029) : ERROR : '__ScreenWidth' is not declared.
client_interface.fos(2053) : INFO : Compiling void InitAreas().
client_interface.fos(2056) : ERROR : No matching signatures to 'IPolygon::GetTri
angulation(uint16[])'.
client_interface.fos(2058) : ERROR : No matching signatures to 'IPolygon::GetTri
angulation(uint16[])'.
client_interface.fos(2060) : ERROR : No matching signatures to 'IPolygon::GetTri
angulation(uint16[])'.
client_interface.fos(2062) : ERROR : No matching signatures to 'IPolygon::GetTri
angulation(uint16[])'.
client_interface.fos(2064) : ERROR : No matching signatures to 'IPolygon::GetTri
angulation(uint16[])'.
client_interface.fos(2066) : ERROR : No matching signatures to 'IPolygon::GetTri
angulation(uint16[])'.
Unable to build.
any ideas ?
-
Client scripts (the ones that have filenames starting with "client_") require additional -client argument when you use ASCompiler. So try:
ascompiler.exe client_interface.fos -client
Similarly you have to use -mapper argument for mapper scripts.
-
Hmm, I try it with -client and get this:
C:\FODM\Server\scripts>ascompiler.exe client_interface.fos -client
Compiling client_interface.fos ...
./sprite.fos(36) : INFO : Compiling void Sprite::LoadHash(uint, uint8).
./sprite.fos(38) : ERROR : No matching signatures to 'LoadSprite(uint, uint8)'.
./sprite.fos(38) : INFO : Candidates are:.
./sprite.fos(38) : INFO : uint LoadSprite(string&inout name, int pathIndex).
./sprite.fos(38) : INFO : uint LoadSprite(uint nameHash).
./client_gui_ex.fos(761) : INFO : Compiling void CTextBox::InsertChar(uint8).
./client_gui_ex.fos(764) : ERROR : No matching signatures to 'string::resize(con
st int)'.
./client_gui_ex.fos(768) : ERROR : No matching signatures to 'string::set_opInde
x(const int, uint8)'.
./client_gui_ex.fos(768) : INFO : Candidates are:.
./client_gui_ex.fos(768) : INFO : void string::set_opIndex(int, const string&in)
const.
./client_gui_ex.fos(919) : INFO : Compiling void CSpriteEx::Draw().
./client_gui_ex.fos(922) : ERROR : No matching signatures to 'DrawSprite(uint&,
int&, int, int, int&, int&, bool&, bool&, uint&, bool&)'.
./client_gui_ex.fos(922) : INFO : Candidates are:.
./client_gui_ex.fos(922) : INFO : void DrawSprite(uint sprId, int frameIndex, in
t x, int y, uint color = 0, bool applyOffsets = false).
./client_gui_ex.fos(922) : INFO : void DrawSprite(uint sprId, int frameIndex, in
t x, int y, int w, int h, bool zoom = false, uint color = 0, bool applyOffsets =
false).
client_interface.fos(190) : INFO : Compiling void CWorldmapElement::Draw(uint).
client_interface.fos(195) : ERROR : No matching signatures to 'DrawSprite(uint&,
const int, float, float, float, float, bool&, bool&, uint&, bool&)'.
client_interface.fos(195) : INFO : Candidates are:.
client_interface.fos(195) : INFO : void DrawSprite(uint sprId, int frameIndex, i
nt x, int y, uint color = 0, bool applyOffsets = false).
client_interface.fos(195) : INFO : void DrawSprite(uint sprId, int frameIndex, i
nt x, int y, int w, int h, bool zoom = false, uint color = 0, bool applyOffsets
= false).
client_interface.fos(197) : WARNING : Float value truncated in implicit conversi
on to integer.
client_interface.fos(197) : WARNING : Float value truncated in implicit conversi
on to integer.
client_interface.fos(389) : INFO : Compiling void render_iface(uint).
client_interface.fos(410) : ERROR : Unexpected variable declaration.
client_interface.fos(1043) : INFO : Compiling string critter_description(Critter
Cl&inout, int).
client_interface.fos(1292) : WARNING : Signed/Unsigned mismatch.
client_interface.fos(1292) : ERROR : No conversion from 'string@&' to 'uint' ava
ilable..
client_interface.fos(1327) : WARNING : Signed/Unsigned mismatch.
client_interface.fos(1327) : ERROR : No conversion from 'string@&' to 'uint' ava
ilable..
client_interface.fos(1327) : WARNING : Signed/Unsigned mismatch.
client_interface.fos(1327) : ERROR : No conversion from 'string@&' to 'uint' ava
ilable..
client_interface.fos(1327) : WARNING : Signed/Unsigned mismatch.
client_interface.fos(1327) : ERROR : No conversion from 'string@&' to 'uint' ava
ilable..
client_interface.fos(1327) : WARNING : Signed/Unsigned mismatch.
client_interface.fos(1327) : ERROR : No conversion from 'string@&' to 'uint' ava
ilable..
client_interface.fos(1327) : WARNING : Signed/Unsigned mismatch.
client_interface.fos(1327) : ERROR : No conversion from 'string@&' to 'uint' ava
ilable..
client_interface.fos(1327) : ERROR : No matching signatures to 'array::find(cons
t string&)'.
client_interface.fos(1327) : INFO : Candidates are:.
client_interface.fos(1327) : INFO : int array::find(const uint8&in) const.
client_interface.fos(1327) : INFO : int array::find(uint, const uint8&in) const.
Unable to build.
Less errors, but still, the hell is going on? I swear I was compiling scripts a few months ago with no problems. This happens for all scripts.
-
Do you use Tortoise or some other SVN client? And did you edit those scripts that show error?
-
Yes, I downloaded the SDK with Tortoise, and I did edit the script, but it shows the same error with the default client_interface.fos as well, and any other script. Is the AScompiler in the repository outdated or something?
-
I think it's the other way around. I suppose you have the latest version of ASCompiler and game executables but the old versions of some of the scripts (because you edited the scripts Tortoise didn't update them). The default client_interface.fos must be old too for some reason, although it's hard to say why without looking into the folder. There were big changes in the SDK in the last year, so you can't use the new compiler with the old versions of the scripts. One way or another you have to update them.
I would just redownload the whole thing to a different, clean folder and see if that works. Then carefully remake the changes you did before. It's not the most sophisticated solution but a simple one (depends how much stuff you changed though).
-
I did a complete re-update, and it fixed the problem. Thanks for the help! If you were curious, I was trying to install this mod:
http://forum.newfmc.pl/index.php?topic=364.0
Got it to work, but when it's active, any windows opened in the game are invisible. It's also not toggleable, but I'm sure I can find a way to make it that way.
Do you have any ideas about the no-windows thing?
It's also quite jumpy - Is there a way I can make it lock to the player's head like names?
-
That sounds like you have some error in render_iface(), check FOnline.log
It's also quite jumpy - Is there a way I can make it lock to the player's head like names?
There are two.
First is to add this snippet from cvet (http://fodev.net/forum/index.php/topic,29490.msg259118.html#msg259118) to client's .dll.
Second is to update game to SDK r413 (https://xp-dev.com/sc/change/76003/413) which have added function exactly for what you want.
However, r413 contains a bug which makes impossible to use any .dlls on client side. That's fixed later but other bugs jumps in~ I think that madness is gone somewhere around r45x, maybe earlier...
If you're not planning to update to fresh SDK any time in future, i'd go with first solution. Fighting SDK just for the sake of one functionality may be overwhelming even for experienced scripters.
-
FOnline.log has 2MB of error and it seems to be repeated, here is a piece:
Game>, state<Exception>, call stack<1>:
0) client_interface : void render_iface(uint) : 1910, 4.
Script exception: Index out of bounds : client_interface : void render_iface(uint) : 1910, 4 : FOClient::DrawIfaceLayer : Game.
Execution of script stopped due to exception.
Context<FOClient::DrawIfaceLayer : Game>, state<Exception>, call stack<1>:
And as for that code from cvet, do I put it into fonline.h around line 1400 or so, where it say
struct CritterCL
?
-
Hehe yeah, render_iface() is fun to debug. And it looks like w/e you added, it have a problem with some array - trying to access element with index bigger than array length.
As for snippet, yeah, you add it to the end of CritterCl.
-
So, I debugged render_iface(), that's no problem anymore.
Though, I tried adding cvet's snippet into fonline.h, at the end of struct CritterCL, but it doesn't change how the HP over head locks to the hex you step on, not the critter itself.
Here's what I pieced together and put in the end of CritterCL:
UShortPairVec MoveSteps;
int CurMoveStep;
bool needReSet;
uint reSetTick;
void* Layers3d;
uint curSpr, lastEndSpr;
uint animStartTick;
typedef vector< CritterAnim > CritterAnimVec;
CritterAnimVec animSequence;
CritterAnim stayAnim;
Animation3d* Anim3d;
Animation3d* Anim3dStay;
bool Visible;
uchar Alpha;
Rect DRect;
bool SprDrawValid;
Sprite* SprDraw;
uint SprId;
short SprOx, SprOy;
bool SprDrawValid;
Sprite* SprDraw;
uint SprId;
short SprOx, SprOy;
short OxExtI, OyExtI;
float OxExtF, OyExtF;
float OxExtSpeed, OyExtSpeed;
uint OffsExtNextTick;
int staySprDir;
uint staySprTick;
uint finishingTime;
bool fadingEnable;
bool fadeUp;
uint FadingTick;
Rect textRect;
uint tickFidget;
string strTextOnHead;
uint tickStartText;
uint tickTextDelay;
uint textOnHeadColor;
short RefCounter;
bool IsNotValid;
char RawData[112];
struct { L, T, R, B } DRect;
bool SprDrawValid;
Sprite* SprDraw;
uint SprId;
short SprOx, SprOy;
char RawData[112];
struct { L, T, R, B } DRect;
bool SprDrawValid;
Sprite* SprDraw;
uint SprId;
short SprOx, SprOy;
char RawData[112];
struct { L, T, R, B } SpriteRect;
bool SprDrawValid;
Sprite* SprDraw;
uint SprId;
short SprOx, SprOy;
char RawData2[44];
struct { L, T, R, B } TextRect;
char RawData[112];
struct { L, T, R, B } SpriteRect;
bool SprDrawValid;
Sprite* SprDraw;
uint SprId;
short SprOx, SprOy;
char RawData2[44];
struct { L, T, R, B } TextRect;
struct { L, T, R, B } - struct { int L, T, R, B; }
What did I do wrong? Maybe I need to edit something in the HP display code? I've noticed it has GetHexPos on critters, maybe it's the module itself doing this and needs to be changed. The link to the mod is on one of my posts above.
-
Adding is one thing, now you need something what get coords [basing on data from expanded CrittterCl] and you're ready to draw them pixels.
-
Can I have hint on how to grab coords, and add to DrawText function? ;D
Do I use TextRect somewhere in here?