Sziasztok.
Valamivel nem lehet megoldani, hogy mikor elkezdem vonszolni a csávót egyenlőre nem történik semmi, viszont azt szeretném , hogy kérje le 2 másodpercenként a játékos koordinátáját és a bilincselt koordinátáját és ha nem egyeznek akkor teleportálja oda a játékoshoz.
Ezt hogy lehetne megvalósítani?
if(strcmp(cmd, \"/visz\", true) == 0)
{
if(IsPlayerConnected(playerid))
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GRAD2, \"Használat: /visz [JátékosID/NévRészlet]\");
return 1;
}
giveplayerid = ReturnUser(tmp);
if(IsPlayerConnected(giveplayerid))
{
if(giveplayerid != INVALID_PLAYER_ID)
{
if (GetDistanceBetweenPlayers(playerid,giveplayerid) < 3)
{
if(giveplayerid == playerid) { SendClientMessage(playerid, COLOR_GRAD2, \"Magadat akarod vonszolni?\"); return 1; }
if(PlayerCuffed[giveplayerid] == 2 || PlayerInfo[giveplayerid][Animban] == 1 || PlayerTied[giveplayerid] == 1)
{
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
format(stringx, sizeof(stringx), \"%s elkezdett vonszolni.\", sendername);
SendClientMessage(giveplayerid, COLOR_LIGHTBLUE, stringx);
format(stringx, sizeof(stringx), \"Vonszolod %s.\", rag(giveplayer,3));
SendClientMessage(playerid, COLOR_LIGHTBLUE, stringx);
format(stringx, sizeof(stringx), \"* %s elkezdte vonszolni %s.\", sendername ,rag(giveplayer,3));
ProxDetector(30.0, playerid, stringx, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
PlayerInfo[playerid][vonszol] = 1;
PlayerInfo[giveplayerid][vonszol] = 2+playerid;
} else SendClientMessage(playerid, COLOR_GRAD2, \"A játékos nincs animban/bilincsben!\");
} else SendClientMessage(playerid, COLOR_GRAD2, \"Nincs elég közel a játékos.\");
} else SendClientMessage(playerid, COLOR_GRAD2, \"A játékos nem elérhető!\");
}
} return 1;
}
Megoldható, mint ,ahogy az előttem válaszoló írta, úgy meg tudod oldani. Azt ne várd el, hogy helyetted írjuk. ::|
Ne legyél paraszt, semmi értelme nem volt a megnyílvánulásodnak.
Tessék:
new VonszolTimer[MAX_PLAYERS];
if(strcmp(cmd, \"/visz\", true) == 0)
{
if(IsPlayerConnected(playerid))
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GRAD2, \"Használat: /visz [JátékosID/NévRészlet]\");
return 1;
}
giveplayerid = ReturnUser(tmp);
if(IsPlayerConnected(giveplayerid))
{
if(giveplayerid != INVALID_PLAYER_ID)
{
if (GetDistanceBetweenPlayers(playerid,giveplayerid) < 3)
{
if(giveplayerid == playerid) { SendClientMessage(playerid, COLOR_GRAD2, \"Magadat akarod vonszolni?\"); return 1; }
if(PlayerCuffed[giveplayerid] == 2 || PlayerInfo[giveplayerid][Animban] == 1 || PlayerTied[giveplayerid] == 1)
{
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
format(stringx, sizeof(stringx), \"%s elkezdett vonszolni.\", sendername);
SendClientMessage(giveplayerid, COLOR_LIGHTBLUE, stringx);
format(stringx, sizeof(stringx), \"Vonszolod %s.\", rag(giveplayer,3));
SendClientMessage(playerid, COLOR_LIGHTBLUE, stringx);
format(stringx, sizeof(stringx), \"* %s elkezdte vonszolni %s.\", sendername ,rag(giveplayer,3));
ProxDetector(30.0, playerid, stringx, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
PlayerInfo[playerid][vonszol] = 1;
PlayerInfo[giveplayerid][vonszol] = 2+playerid;
VonszolTimer[playerid] = SetTimerEx(\"Vonszol\",2000,true, \"dd\", giveplayerid, playerid);
} else SendClientMessage(playerid, COLOR_GRAD2, \"A játékos nincs animban/bilincsben!\");
} else SendClientMessage(playerid, COLOR_GRAD2, \"Nincs elég közel a játékos.\");
} else SendClientMessage(playerid, COLOR_GRAD2, \"A játékos nem elérhető!\");
}
} return 1;
}
forward Vonszol(vonszolid, rendorid);
public Vonszol(vonszolid, rendorid){
new Float:pPos[3];
GetPlayerPos(playerid, pPos[0], pPos[1], pPos[2]);
SetPlayerPos(vonszolid, pPos[0], pPos[1]+2, pPos[2]);
}
Ez alapján meg tudod oldani a vonszolás abbahagyását is. Azért nem írtam meg mivel nem tudom hogy melyik változóval szeretnéd ellenőrözni.
Az a parancs alá pedig elég lesz ezt írnod, hogy abbahagyja:
KillTimer(VonszolTimer[playerid]);
Sajnálom hogy a fórumon milyen segítőkészség van.. de tényleg.