Gethereall


Započeo Boris, Septembar 06, 2009, 11:15:24 PRE PODNE

prethodna tema - sledeća tema

0 članova i 3 gostiju pregledaju ovu temu.

Kako  da naparvim komande gethereall da sve portujem do sebe?

Correlli

Probaj ovo, napisao sam na brzinu i nisam testirao, trebalo bi raditi.

if(strcmp(cmdtext, "/gethereall", true) == 0)
{
    new Float:to_x, Float:to_y, Float:to_z, to_int, to_vw;
    GetPlayerPos(playerid, to_x, to_y, to_z);
    to_int = GetPlayerInterior(playerid);
    to_vw = GetPlayerVirtualWorld(playerid);
    if(IsPlayerAdmin(playerid))
    {
        for(new i = 0; i < MAX_PLAYERS; i++)
        {
            if(IsPlayerConnected(i) && playerid != i)
            {
                SetPlayerPos(i, to_x, to_y, to_z);
                SetPlayerInterior(i, to_int);
                SetPlayerVirtualWorld(i, to_vw);
                SendClientMessage(i, 0xFFFFFFAA, "SERVER: You have been teleported to Administrator.");
            }
        }
        SendClientMessage(playerid, 0xFFFFFFAA, "SERVER: All players have been teleported to you.");
    }
    else
    {
        SendClientMessage(playerid, 0xFFFFFFAA, "SERVER: You're not authorized to use this command.");
    }
    return 1;
}


I drugi put postaj u pravi board ako želiš da ti itko pomogne.
Poslednja Izmena: Septembar 06, 2009, 12:29:36 POSLE PODNE od Don Correlli

Daj jbt ti ces sve scripte tu pokupit! Napravi nesto svoje bar se potrudi iako neuspijes....::!:.

matejdz

Evo imas dvije opcije...

if(strcmp(cmd, "/gethereall", true) == 0)
	{
		if(IsPlayerConnected(playerid))
		{
			if(PlayerInfo[playerid][pAdmin] >= 4)
			{
				GetPlayerName(playerid, sendername, sizeof(sendername));
				for(new i = 0; i < MAX_PLAYERS; i ++)
				{
					if(IsPlayerConnected(i))
					{
						format(string, sizeof(string), "Admin %s je teleportirao sve igrace do sebe.", sendername);
						SendClientMessage(i, COLOR_RED, string);
						new Float:ix, Float:iy, Float:iz;
						GetPlayerPos(playerid, ix, iy, iz);
						SetPlayerInterior(i, GetPlayerInterior(playerid));
						SetPlayerPos(i, ix, iy, iz+1);
					}
				}
			}
			else
			{
				SendClientMessage(playerid, COLOR_RED, "Niste autorizirani za koristenje ove naredbe !");
			}
		}
		else
		{
			SendClientMessage(playerid, COLOR_RED, "Niste logirani !");
		}
		return 1;
	}

zerocoolos

Citat: [CH]matejdz poslato Septembar 06, 2009, 19:45:47 POSLE PODNE
Evo imas dvije opcije...

if(strcmp(cmd, "/gethereall", true) == 0)
	{
		if(IsPlayerConnected(playerid))
		{
			if(PlayerInfo[playerid][pAdmin] >= 4)
			{
				GetPlayerName(playerid, sendername, sizeof(sendername));
				for(new i = 0; i < MAX_PLAYERS; i ++)
				{
					if(IsPlayerConnected(i))
					{
						format(string, sizeof(string), "Admin %s je teleportirao sve igrace do sebe.", sendername);
						SendClientMessage(i, COLOR_RED, string);
						new Float:ix, Float:iy, Float:iz;
						GetPlayerPos(playerid, ix, iy, iz);
						SetPlayerInterior(i, GetPlayerInterior(playerid));
						SetPlayerPos(i, ix, iy, iz+1);
					}
				}
			}
			else
			{
				SendClientMessage(playerid, COLOR_RED, "Niste autorizirani za koristenje ove naredbe !");
			}
		}
		else
		{
			SendClientMessage(playerid, COLOR_RED, "Niste logirani !");
		}
		return 1;
	}


ovo ce ti sve zaspamat, format(string, sizeof(string), "Admin %s je teleportirao sve igrace do sebe.", sendername); napisi izvan petlje for, jer ovako ako npr ima 100 igraca 100 puta ce ispisat "Admin %s je teleportirao sve igrace do sebe."

matejdz


zerocoolos

a je u pravu si sad tek vidim da je to sendclientmessage...  ???

matejdz

Neka, neka i najbolji grijese ;D

Chrome

sta nije lakse SendClientMessageToAll izvan loop-a  ::)
mislim na isto ti dode ali onako  mislim da je optimiziranije i brze  ::)

matejdz

Ma sve ti je to isto, samo sa SendClientMessageToAll prije zavrsis...