Hi everyone, I am writing a function for detect bank locations and ATMs. In this moment, I have got this:
main.nut
// BANK LOCATIONS
banks <- [
"-921.229, -355.514, -928.713, -326.602, -901.457, -326.602, -901.457, -355.519", // elBancoCorruptoGrande
"357.028, 1127.34, 356.961, 1132.15, 359.17, 1132.33, 359.462, 1127.27", // atmMall
"6.47041, -949.763, 1.30694, -949.764, 1.51372, -947.378, 6.33632, -947.53", // atmWashingtonMallRightSide
"1.44156, -928.274, 6.39117, -928.274, 6.37502, -930.697, 1.46436, -930.314" // atmWashingtonMallLeftSide
]
another_one.nut
function isPlayerIntoBank(player) {
local found = false;
for(local i = 0; i < banks.len() && !found; i++) {
if(InPoly(player.Pos.x, player.Pos.y, banks[i]))
found = true;
}
return found;
}
(https://s33.postimg.cc/5p4sbcp9b/Vice_City_Multiplayer_GTA_VC_acd9d3f2397b867f209970db7f5117e6.png)
In the wiki say that the arguments are two floats (player.Pos) and an string / array / floats, but fails.
Use DistanceFromPoint() instead.
Quote from: Athanatos on Jul 16, 2018, 05:18 PMUse DistanceFromPoint() instead.
This function doesn't allow me to make geometric shapes like a rectangle / square.
Also, the previous function should work.
Alrighty then, are you sure InPoly works with strings?
That function expects floats, not strings.
Quote from: Athanatos on Jul 16, 2018, 06:42 PMAlrighty then, are you sure InPoly works with strings?
Quote from: Xmair on Jul 16, 2018, 07:20 PMThat function expects floats, not strings.
In the Wiki it puts the opposite.(I didn't try with floats.)
(https://s33.postimg.cc/y68c6gbrz/wiki.png)
Quote from: Ququr_Uxcho on Jul 16, 2018, 08:44 PMQuote from: Athanatos on Jul 16, 2018, 06:42 PMAlrighty then, are you sure InPoly works with strings?
Quote from: Xmair on Jul 16, 2018, 07:20 PMThat function expects floats, not strings.
In the Wiki it puts the opposite.(I didn't try with floats.)
(https://s33.postimg.cc/y68c6gbrz/wiki.png)
Are you talking about client-side or server-side?
According to source code, server-side supports string.
https://bitbucket.org/stormeus/0.4-squirrel/src/cdeaf615b61b5c94d79f4a1e342d911b168c3cb3/FunctionHandler.cpp?at=newapi&fileviewer=file-view-default#FunctionHandler.cpp-2018
Quote from: ysc3839 on Jul 17, 2018, 12:26 AMQuote from: Ququr_Uxcho on Jul 16, 2018, 08:44 PMQuote from: Athanatos on Jul 16, 2018, 06:42 PMAlrighty then, are you sure InPoly works with strings?
Quote from: Xmair on Jul 16, 2018, 07:20 PMThat function expects floats, not strings.
In the Wiki it puts the opposite.(I didn't try with floats.)
(https://s33.postimg.cc/y68c6gbrz/wiki.png)
Are you talking about client-side or server-side?
According to source code, server-side supports string.
https://bitbucket.org/stormeus/0.4-squirrel/src/cdeaf615b61b5c94d79f4a1e342d911b168c3cb3/FunctionHandler.cpp?at=newapi&fileviewer=file-view-default#FunctionHandler.cpp-2018
About server-side. Although It says It works with string but It tried It and It fails.
In my code they are string but it returns the previous garbage exception output.
Is it possible that is a bug?
Possible. Try using an array of floats.
function isPlayerIntoBank(player) {
for(local i = 0; i < banks.len(); i++) {
if(InPoly(player.Pos.x, player.Pos.y, banks[i][0], banks[i][1], banks[i][2], banks[i][3], banks[i][4], banks[i][5], banks[i][6], banks[i][7]))
{
return true;
break;
}
}
return false;
}
Quote from: Athanatos on Jul 17, 2018, 06:21 PMPossible. Try using an array of floats.
I did, but that should not be the solution. If I can use floats, I should be able to use string or arrays.
@Stormeus I would like to know if it is an error or whatever.
Quote from: Pop360 on Jul 17, 2018, 06:51 PMfunction isPlayerIntoBank(player) {
for(local i = 0; i < banks.len(); i++) {
if(InPoly(player.Pos.x, player.Pos.y, banks[i][0], banks[i][1], banks[i][2], banks[i][3], banks[i][4], banks[i][5], banks[i][6], banks[i][7]))
{
return true;
break;
}
}
return false;
}
Yes, these is my current solution.