03.11.2018, 18:49
Timerio kvietimas, gali į main() arba OnGameModeInit() dėt:
Tas kintamasis:
Jį reikėtų nustatyt į INVALID_PLAYER_ID iљ pradћių(nu nes jokio iљkvietėjo dar nebūna xd):
Toliau, /priimti komandoj kai jau gauni targetid raљai:
Dabar su ta 1 sekunde (P.S patariu loopint ћaidėjus su foreach, raљau su tuo MAX_PLAYERS tik dėl to, kad tu taip raљai):
Bet dar ne viskas, jeigu iљkvietėjas atsijungtų, tas tikrinimas toliau eitų, tai tau reik daryt:
Nu va, tikiuos viskas čia gerai xd
Code:
SetTimer("OnOneSecondPass", 1000, true);
Code:
new iskvietejoID[MAX_PLAYERS];
Code:
public OnPlayerConnect(playerid)
{
iskvietejoID[playerid] = INVALID_PLAYER_ID;
}
Code:
iskvietejoID[playerid] = targetid;
Code:
forward OnOneSecondPass();
public OnOneSecondPass()
{
for(new i=0; i<MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
if(iskvietejoID[i] != INVALID_PLAYER_ID)
{
new Float:x, Float:y, Float:z;
GetPlayerPos(i, x, y, z);
new Float:atstumas = GetPlayerDistanceFromPoint(iskvietejoID[i], x, y, z);
if(atstumas <= 30.0)
{
SendClientMessage(iskvietejoID[i], -1, "Medikas atvyko (čia tikrinsi pagal profesiją)");
iskvietejoID[i] = INVALID_PLAYER_ID;
}
}
}
}
}
Code:
public OnPlayerDisconnect(playerid, reason)
{
for(new i=0; i<MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
if(iskvietejoID[i] == playerid)
{
SendClientMessage(i, -1, "Tavo klientas atsijungė");
iskvietejoID[i] = INVALID_PLAYER_ID;
}
}
}
}

