[TUT] Todos Players (new i;) -
ipsBruno - 16.06.2010
Bom muita gente se sente na dъvida de como fazer um comando para
todos online Ex:
/darvida
E Acontece a
Todos Players
Aqui seria um
comando simples, no nosso
exemplo serб para
Setar Vida:
pawn Код:
if(!strcmp(cmdtext, "/darvida", true))
{
SetPlayerHealth(playerid,100);
return 1;
}
Observem o Comando Simples Apenas Ocorre com PlayerID
EXPLICAЗГO DO CODE:
SetPlayerHealth -> Seta vida do Player
playerid -> A Quem Ocorrerб,(no caso o player que digita o CMD)
100 -> Valor da Vida
/darvida -> Comando
Entгo Iremos
fazer com todos jogadores(BR) o nosso pequeno
comando para todos players
Ficando Desta Forma:
pawn Код:
if(!strcmp(cmdtext, "/darvida", true))
{
for(new allplayers = 0; allplayers < GetMaxPlayers(); allplayers++)
{
/* O CУDIGO DO COMANDO IRБ AQUI*/
SetPlayerHealth(allplayers,100);
}
return 1;
}
Entгo Notem que Substituнmos
playerid ->
allplayers
Porque Isso?
Pois Ao Code:
Explicando O:
for(new allplayers = 0; allplayers < GetMaxPlayers(); allplayers++):
new allplayers = 0; -> Indica que Comeзa os IDs Do Zero
allplayers < GetMaxPlayers(); -> Indica que
allplayer deve ser
menor que
GetMaxPlayers (Slots Server)
allplayers++ -> Irб Aumentar
allplayers do 0 atй chegar a
GetMaxPlayer (Slots do Server)
Para Adicionar ao Comando nesse citamos apenas:
pawn Код:
for(new allplayers = 0; allplayers < GetMaxPlayers(); allplayers++)
{
/* O CУDIGO DO COMANDO IRБ AQUI*/
}
EXPLICANDO O COMANDO:
Sendo Assim ao Substituir
playerid por
allplayers ele irб realizar a checagem de todos IDs assim ocorrendo com Todos Slots do Server...
Posso Otimizar o Code?
Claro que pode, para nгo ficar jogando foras IDs, isto й aplicar a aзгo a IDs Off-line vocк pode Realizar a Checagem com
pawn Код:
if(!IsPlayerConnected(allplayers))
Pode Tambйm Tornar CMD apenas para Admin:
Entre outras Funзхes
Nota:
Normamente Usam
new i; eu coloquei
new allplayers, para ficar parecido com
PlayerID, assim facilitando a vocкs...
::::::::::::::::::::
Criado por
DraKoN
::::::::::::::::::::
Copyright
Pawn SA:MP (
hsuahsuhas)
Re: [TUT] Todos Players (new i;) -
russo666 - 16.06.2010
Bom DraKoN.
Jб agora como nгo estбs no msn e os posts sгo para se opinar, eu vou dar aqui a minha opiniгo.
Deverias sugerir o uso do foreach, e no tutorial que fizeste ao invйs de usares a funзгo GetMaxPlayers() usavas a constante MAX_PLAYERS. Chamar uma funзгo demora. Mas de qualquer maneira o foreach owna. lol.
Jб agora se quiserem redefinir o MAX_PLAYERS para nгo se fazer 500 verificaзхes:
Topo do gamemode, e antes de usar a constante MAX_PLAYERS em qualquer lado
pawn Код:
#if defined MAX_PLAYERS
#undef MAX_PLAYERS
#define MAX_PLAYERS (50) //Alterar o 50 para o valor dos vossos slots.
#endif
Re: [TUT] Todos Players (new i;) -
ipsBruno - 16.06.2010
Eu Sei Disso Logicamente, Mas Russo para
Ocupar Menos Trabalho, deveriamos Colocar
GetMaxPlayers, acredite й muito melhor..
Lembrando, Tem gente que muda constantemente de Slots...
Re: [TUT] Todos Players (new i;) -
russo666 - 16.06.2010
Quote:
Originally Posted by DraKoNeoN
Eu Sei Disso Logicamente, Mas Russo para Ocupar Menos Trabalho, deveriamos Colocar GetMaxPlayers, acredite й muito melhor
|
Scriptar й para ter piada, quando algo tem piada nгo й cansativo, se quisermos algo eficiente, fazemos. Agora se scriptam e depois comeзam a dizer que dб trabalho e й mais lento e nгo sei quк, esqueзam.. lol.
Anyway й sу fazer copy/past do que eu meti e alterar uns nъmeros. E sу й definido uma vez no topo do gamemode, sу para nгo mandar ninguйm alterar o a_samp.inc. lol.
Re: [TUT] Todos Players (new i;) -
V4mpiroDoidao - 16.06.2010
Muito legal e tipo... em vez de SetPlayerHealth(allplayers,100); pode ser SetPlayerPos(allplayers,X,Y,Z); nй? ou ateh banir todos
Re: [TUT] Todos Players (new i;) -
ipsBruno - 16.06.2010
@Vampiro:
Isso Mesmo..
Re: [TUT] Todos Players (new i;) -
V4mpiroDoidao - 16.06.2010
Quote:
Originally Posted by DraKoNeoN
@Vampiro:
Isso Mesmo..
|
Entao blz, tуpico excelente para iniciantes... tipo eu
Chuck Norris Approves!!
Re: [TUT] Todos Players (new i;) -
pmkrz - 09.07.2010
Estб muito bom o post, embora tenhas aн um 'se nгo' com o loop.
Repara, ao utilizares isto:
pawn Код:
for(new a = 0 ; a <= GetMaxPlayers() ; ++ a)
estбs a fazer com que o script verifique a funзгo GetMaxPlayers() inъmeras vezes, tornando lenta a operaзгo.
existem duas outras formas de optimizar isto, das quais:
pawn Код:
for(new a = 0, b = GetMaxPlayers() ; a <= b ; ++ a)
e
pawn Код:
for(new a = 0 ; a <= MAX_PLAYERS ; ++ a)
sendo esta ъltima a mais indicada. ;' )
Depois tambйm podes usar truques como o Russo exemplificou:
Quote:
Originally Posted by russo666
pawn Код:
#if defined MAX_PLAYERS #undef MAX_PLAYERS #define MAX_PLAYERS (50) //Alterar o 50 para o valor dos vossos slots. #endif
|
ou mesmo:
pawn Код:
#define MAX_SERVER_PLAYERS (500)
Mas claro que, como o Russo referiu tambйm, usando o
foreach fica muito melhor..
Re: [TUT] Todos Players (new i;) -
andmeida10 - 09.07.2010
tb pode ser utilizado para enviar uma certa arma a membros de uma certa org:
pawn Код:
if(strcmp("/dar-minigun", cmdtext, true, 10) == 0)
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(PlayerInfo[i][pAdmin] >= 1)
{
GivePlayerWeapon(i,38,9999);
}
}
return 1;
}
Re: [TUT] Todos Players (new i;) -
StreetGT - 09.07.2010
kickar todos
Код:
if(strcmp(cmd, "/kickartodos", true) == 0)
{
if(PlayerInfo[playerid][pAdmin] >= 1336)
{
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, sizeof(string), " %s kickou toda a gente do servidor", sendername);
SendClientMessageToAll(COLOR_RED2, string);
for(new i = 0; i <= MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
Kick(i);
}
}
}
else
{
SendClientMessage(playerid, COLOR_LIGHTRED, "Tu nao es um admin!");
return 1;
}
return 1;
}
Re: [TUT] Todos Players (new i;) -
ipsBruno - 10.07.2010
Quote:
Originally Posted by pmkrz
Estб muito bom o post, embora tenhas aн um 'se nгo' com o loop.
Repara, ao utilizares isto:
pawn Код:
for(new a ; a <= GetMaxPlayers() ; ++ a)
|
Desculpe esta errado eu nгo estou a usar desta forma e sim desta forma
pawn Код:
for(new a= 0; a =< GetMaxPlayers(); a++)
Re: [TUT] Todos Players (new i;) -
russo666 - 10.07.2010
Quote:
Originally Posted by DraKoN
Desculpe esta errado eu nгo estou a usar desta forma e sim desta forma
pawn Код:
for(new a= 0; a =< GetMaxPlayers(); a++)
|
Qual a diferenзa espertalhгo?
Re: [TUT] Todos Players (new i;) -
pmkrz - 10.07.2010
@Drakon:
Qual й a diferenзa ? Eu falo do mйtodo. --' Sу nгo percebe quem nгo quer..
Parece que ficaste chateado com minha explicaзгo.
Desculpa lб, sу estou a tentar contribuir para uma melhor secзгo e com mais qualidade. : S
Re: [TUT] Todos Players (new i;) -
russo666 - 11.07.2010
Quote:
Originally Posted by pmkrz
@Drakon:
Qual й a diferenзa ? Eu falo do mйtodo. --' Sу nгo percebe quem nгo quer..
Parece que ficaste chateado com minha explicaзгo.
Desculpa lб, sу estou a tentar contribuir para uma melhor secзгo e com mais qualidade. : S
|
Boa sorte com isso. As crнticas vгo ser muitas.
Re: [TUT] Todos Players (new i;) -
ipsBruno - 21.07.2010
Quote:
Originally Posted by pmkrz
@Drakon:
Qual й a diferenзa ? Eu falo do mйtodo. --' Sу nгo percebe quem nгo quer..
Parece que ficaste chateado com minha explicaзгo.
Desculpa lб, sу estou a tentar contribuir para uma melhor secзгo e com mais qualidade. : S
|
Nunca ficaria chateado com vocк por motivos bobo,rs.,simplesmente admiro seu trabalho parabйns,e nгo fiquei chatedo nгo, nгo hesite em postar..
Obrigado PlayMaker
Boa sorte tambйm Russo..
Respuesta: [TUT] Todos Players (new i;) -
xenowort - 21.07.2010
Excelente! nгo olhou isso aqui