kucklovod1998
Компетентный
В общем в моде есть система золото-искателя , В ней я чуть не разбираюсь по поводу координат , мне надо разобратся как правильно раставить координаты , с меня много ++ ))
Сама зона где искать золото
тут проблем нету
Сток вместе с ним :
Вот еще чтото :
И вот еще , именно тут ничего не ясно , за что отвечают эти координаты
Сама зона где искать золото
PHP:
GoldZone = CreateDynamicRectangle(-1002.5670, -1065.6648, -1198.7295, -912.7361);
GoldGZ = GangZoneCreate(-1002.5670, -1065.6648, -1198.7295, -912.7361);
Сток вместе с ним :
PHP:
stock CreateRandomGold()
{
for(new i; i < GetMaxPlayersEx(); i ++)
{
if(!IsPlayerConnected(i)) continue;
if(GetPlayerInterior(i) > 0) continue;
if(!IsPlayerInDynamicArea(i, GoldZone)) continue;
if(GoldDrip[i] == -1) continue;
return true;
}
for(new i; i < sizeof(GoldPos); i ++)
{
new randomiz_1 = floatround(-1198.7295 - -1002.5670);
new randomiz_2 = floatround(-912.7361 - -1002.5670);
GoldPos[i][0] = -1002.5670 + float(random(randomiz_1));
GoldPos[i][1] = -1065.6648 + float(random(randomiz_2));
}
return true;
}
PHP:
stock GetPlayerDistanceFromGold(playerid, goldid)
{
new Float:Distance[2], Float:X, Float:Y, Float:Z;
GetPlayerPos(playerid, X, Y, Z);
Distance[0] = X - GoldPos[goldid][0];
Distance[1] = Y - GoldPos[goldid][1];
if(Distance[0] < 0) Distance[0] *= -1.0;
if(Distance[1] < 0) Distance[1] *= -1.0;
return floatround(Distance[0] + Distance[1]);
}
И вот еще , именно тут ничего не ясно , за что отвечают эти координаты
PHP:
stock CheckFindedGold(playerid, goldid)
{
if(GoldPos[goldid][0] == 0.0 && GoldPos[goldid][1] == 0.0) return false;
new distance = GetPlayerDistanceFromGold(playerid, goldid);
new draw = NowGoldDraw[playerid];
if( distance < 2 )
{
if(draw != 16)
{
NowGoldDraw[playerid] = 16;
for(new i; i < 16; i ++) TextDrawShowForPlayer(playerid, GoldDraw[1][i]);
TextDrawShowForPlayer(playerid, EnterDrip);
FindedGold[playerid] = goldid;
}
return true;
}
else if( distance < 10 )
{
if(draw == 16)
{
for(new i; i < 16; i ++) TextDrawHideForPlayer(playerid, GoldDraw[1][i]);
TextDrawHideForPlayer(playerid, EnterDrip);
}
else if(draw != -1)
{
TextDrawHideForPlayer(playerid, GoldDraw[1][draw]);
}
new angle = GetPlayerAngleToPoint(playerid, GoldPos[goldid][0], GoldPos[goldid][1]);
if(SuccesAngle(angle, 0.0, 22.5) || SuccesAngle(angle, -360.0, -337.5)) NowGoldDraw[playerid] = 0;
else if(SuccesAngle(angle, 22.5, 45.0) || SuccesAngle(angle, -337.5, -315.0)) NowGoldDraw[playerid] = 1;
else if(SuccesAngle(angle, 45.0, 67.5) || SuccesAngle(angle, -315.0, -292.5)) NowGoldDraw[playerid] = 2;
else if(SuccesAngle(angle, 67.5, 90.0) || SuccesAngle(angle, -292.5, -270.0)) NowGoldDraw[playerid] = 3;
else if(SuccesAngle(angle, 90.0, 112.5) || SuccesAngle(angle, -270.0, -247.5)) NowGoldDraw[playerid] = 4;
else if(SuccesAngle(angle, 112.5, 135.0) || SuccesAngle(angle, -247.5, -225.0)) NowGoldDraw[playerid] = 5;
else if(SuccesAngle(angle, 135.0, 157.5) || SuccesAngle(angle, -225.0, -202.5)) NowGoldDraw[playerid] = 6;
else if(SuccesAngle(angle, 157.5, 180.0) || SuccesAngle(angle, -202.5, -180.0)) NowGoldDraw[playerid] = 7;
else if(SuccesAngle(angle, -180.0, -157.5) || SuccesAngle(angle, 180.0, 202.5)) NowGoldDraw[playerid] = 8;
else if(SuccesAngle(angle, -157.5, -135.0) || SuccesAngle(angle, 202.5, 225.0)) NowGoldDraw[playerid] = 9;
else if(SuccesAngle(angle, -135.0, -112.5) || SuccesAngle(angle, 225.0, 247.5)) NowGoldDraw[playerid] = 10;
else if(SuccesAngle(angle, -112.5, -90.0) || SuccesAngle(angle, 247.5, 270.0)) NowGoldDraw[playerid] = 11;
else if(SuccesAngle(angle, -90.0, -67.5) || SuccesAngle(angle, 270.0, 292.5)) NowGoldDraw[playerid] = 12;
else if(SuccesAngle(angle, -67.5, -45.0) || SuccesAngle(angle, 292.5, 315.0)) NowGoldDraw[playerid] = 13;
else if(SuccesAngle(angle, -45.0, -22.5) || SuccesAngle(angle, 315.0, 337.5)) NowGoldDraw[playerid] = 14;
else if(SuccesAngle(angle, -22.5, -0.0) || SuccesAngle(angle, 337.5, 360.0)) NowGoldDraw[playerid] = 15;
else NowGoldDraw[playerid] = -1;
draw = NowGoldDraw[playerid];
if(draw != -1) TextDrawShowForPlayer(playerid, GoldDraw[1][draw]);
FindedGold[playerid] = goldid;
return true;
}
else
{
if(FindedGold[playerid] == goldid)
{
FindedGold[playerid] = -1;
NowGoldDraw[playerid] = -1;
if(draw != -1) TextDrawHideForPlayer(playerid, GoldDraw[1][draw]);
}
}
return false;
}
