Âñåì ïðèâåò .
ïðîøó ïîìîùè, íóæíî íåìíîãî äîäåëàòü à÷ íà òåëåïîðò, íåìíîãî íå ïîíèìàþ ëîãèêè.
âîò ïðèìåðíûé êîä:
_aSetPlayerPos(playerid, Float:x, Float:y, Float:z )
{
PlayerInfo[playerid][ TimeTP ] = gettime();
PlayerInfo[playerid][pX] = x;
PlayerInfo[playerid][pY] = y;
PlayerInfo[playerid][pZ] = z;
SetPlayerPos( playerid, Float:x, Float:y, Float:z ) ;
return true;
}
È ñàì êîä àíòè÷èòà:
new Float: x[3];
GetPlayerPos(i, x, ,x ,x );
if( gettime() - PlayerInfo[i][ TimeTP ] > 3)
{
Åñëè ïðîøëî áîëüøå òðåõ ñåêóíä ñ ìîìåíòà ñåðâåðâíîãî ÒÏ, òî íà÷èíàåì ïðîâåðÿòü åãî íà ÒÏ, àèðáðåéêè, ôëàèè òä.
}
else
{
åñëè ìåíüøå, òî, ÷òîáû áûëî ìåíüøå îøèáîê àíòè÷èò èç-çà ëàãîâ èãðîêà\ñåðâåðà, ìû çàïèñûâåì íîâûå êîîðäèíàòû â ïåðåìåííûå:
PlayerInfo[i][pX] = x;
PlayerInfo[i][pY] = x;
PlayerInfo[i][pZ] = x;
}
Ðàáîòàåò âñå íîðìàëüíî, êðîìå òîãî, ÷òî åñòü äûðà â äàííîé ðåàëèçàöèè, êîãäà íàì ìåíÿåò ïîçèöèþ ñåðâåð(âõîä\âûõîä èç èíòåðüåðà), òî ó íàñ åñòü ýòè ñàìûå òðè ñåêóíäû, â êîòîðûå ìû ìîæåì òåëåïîðòèðîâàòüñÿ êóäà óãîäíî è ïîòîì ñàì ñåðâåð çàïèøåò íàøè êîîðäèíàòû íà íîâûå è ñåðâåð íå óâèäèò, ÷òî ýòî ÷èò.
Ïðîáîâàë è çàïîìèíàòü ïîçèöèþ ïåðåä òï, à â ýòè òðè ñåêóíäû çàñòîÿ ñðàâíèâàòü, ÷òî åñëè èãðîê íå ñòîèò íà íîâûõ è íà ñòàðûõ - òî ÷èò.
Íî âñå ðàâíî î÷åíü êîðÿâî ðàáîòàåò.
Íàäåþñü íà ïîìîùü.
Ñïàñèáî.
ïðîøó ïîìîùè, íóæíî íåìíîãî äîäåëàòü à÷ íà òåëåïîðò, íåìíîãî íå ïîíèìàþ ëîãèêè.
âîò ïðèìåðíûé êîä:
_aSetPlayerPos(playerid, Float:x, Float:y, Float:z )
{
PlayerInfo[playerid][ TimeTP ] = gettime();
PlayerInfo[playerid][pX] = x;
PlayerInfo[playerid][pY] = y;
PlayerInfo[playerid][pZ] = z;
SetPlayerPos( playerid, Float:x, Float:y, Float:z ) ;
return true;
}
È ñàì êîä àíòè÷èòà:
new Float: x[3];
GetPlayerPos(i, x, ,x ,x );
if( gettime() - PlayerInfo[i][ TimeTP ] > 3)
{
Åñëè ïðîøëî áîëüøå òðåõ ñåêóíä ñ ìîìåíòà ñåðâåðâíîãî ÒÏ, òî íà÷èíàåì ïðîâåðÿòü åãî íà ÒÏ, àèðáðåéêè, ôëàèè òä.
}
else
{
åñëè ìåíüøå, òî, ÷òîáû áûëî ìåíüøå îøèáîê àíòè÷èò èç-çà ëàãîâ èãðîêà\ñåðâåðà, ìû çàïèñûâåì íîâûå êîîðäèíàòû â ïåðåìåííûå:
PlayerInfo[i][pX] = x;
PlayerInfo[i][pY] = x;
PlayerInfo[i][pZ] = x;
}
Ðàáîòàåò âñå íîðìàëüíî, êðîìå òîãî, ÷òî åñòü äûðà â äàííîé ðåàëèçàöèè, êîãäà íàì ìåíÿåò ïîçèöèþ ñåðâåð(âõîä\âûõîä èç èíòåðüåðà), òî ó íàñ åñòü ýòè ñàìûå òðè ñåêóíäû, â êîòîðûå ìû ìîæåì òåëåïîðòèðîâàòüñÿ êóäà óãîäíî è ïîòîì ñàì ñåðâåð çàïèøåò íàøè êîîðäèíàòû íà íîâûå è ñåðâåð íå óâèäèò, ÷òî ýòî ÷èò.
Ïðîáîâàë è çàïîìèíàòü ïîçèöèþ ïåðåä òï, à â ýòè òðè ñåêóíäû çàñòîÿ ñðàâíèâàòü, ÷òî åñëè èãðîê íå ñòîèò íà íîâûõ è íà ñòàðûõ - òî ÷èò.
Íî âñå ðàâíî î÷åíü êîðÿâî ðàáîòàåò.
Íàäåþñü íà ïîìîùü.
Ñïàñèáî.