Duda sobre cуdigos -
AustinT - 08.08.2011
Buenas:
Lo que voy a preguntar seguramente os parezca muy sencillo, pero bueno, soy un poco novato y no consigo averiguarlo desde hace ya varios meses.
Voy a poner tres ejemplos de cosas que quiero hacer pero no sй el cуdigo. Espero que podais dбrmelo (no para incorporarlo a ningъn gamemode, simplemente para ver cуmo se harнa).
1.- Crear un comando que mate a los jugadores que se encuentren a una distancia inferior a 5.0 del jugador que utiliza el comando. En principio sй cуmo serнa la estructura, pero supongo que en el SetPlayerHealth no hay que usar playerid, ya que eso afectarнa al jugador que utilizу el comando. їQuй se pondrнa para que afecte a los usuarios que estбn a su alrededor, como dije anteriormente?
2.- Crear un comando que mate a todos los jugadores conectados. Lo mismo de antes, no sй por quй habrнa que cambiar playerid para que afecte a todos los jugadores.
3.- Al pulsar la tecla enter, si el jugador estб en un rango determinado alrededor de un punto (no me cual sea, simplemente es un ejemplo), se teletransporta a otra posiciуn.
Mil gracias por la ayuda. Espero haberme explicado bien.
Un saludo.
Respuesta: Duda sobre cуdigos -
Daniel-92 - 08.08.2011
1- Para que afecte a todos los jugadores se usa un bucle ( yo use for)
pawn Код:
if(strcmp(cmdtext,"/comando",true) == 0)
{
new Float:posx,Float:posy,Float:posz;
GetPlayerPos(playerid,posx,posy,posz);
for(new i=0; i < MAX_PLAYERS; i++) {
if(IsPlayerConnected(i)) {
if(IsPlayerInRangeOfPoint(i,5.0,posx,posy,posz)) {
SetPlayerHealth(i,0.0);
}
}
}
return 1;
}
Respuesta: Duda sobre cуdigos -
TheChaoz - 08.08.2011
Aca te los dejo:
pawn Код:
//1
if(!strcmp(cmdtext, "/comando", true)){
new Float:P[3];
GetPlayerPos(playerid, P[0], P[1], P[2]);
for(new i; i<GetMaxPlayers(); i++){
if(IsPlayerConnected(i) && i != playerid && IsPlayerInRangeOfPoint(playerid, 5, P[0], P[1], P[2]))
SetPlayerHealth(playerid, 0);
}return 1;
}
//2
if(!strcmp(cmdtext, "/comando", true)){
new Float:P[3];
GetPlayerPos(playerid, P[0], P[1], P[2]);
for(new i; i<GetMaxPlayers(); i++){
if(IsPlayerConnected(i))
SetPlayerHealth(playerid, 0);
}return 1;
}
//3
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if(newkeys & KEY_FIRE)
if(IsPlayerInRangeOfPoint(playerid, distancia, X, Y, Z))
SetPlayerPos(playerid, X1, Y1, Z1);
return 1;
}
aca un link con las teclas q puedes usar
https://sampwiki.blast.hk/wiki/GetPlayerKeys (tene en cuenta q se detecta la funcion, no la tecla en si.
Respuesta: Duda sobre cуdigos -
D3IMON - 08.08.2011
3- Usa esto:
https://sampwiki.blast.hk/wiki/OnPlayerKeyStateChange
https://sampwiki.blast.hk/wiki/GetPlayerKeys
https://sampwiki.blast.hk/wiki/IsPlayerInRangeOfPoint
https://sampwiki.blast.hk/wiki/SetPlayerPos
solo cambia la posiciуn que tu quieras y el interior etc..
PHP код:
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if ((newkeys & KEY_SECONDARY_ATTACK) && !(oldkeys & KEY_SECONDARY_ATTACK))
{
if(IsPlayerInRangeOfPoint(playerid, 50.0,2230.4412,1604.5570,1006.1860))
{
SetPlayerInterior(playerid, 10);
SetPlayerPos(playerid, 1952.2404,1016.5952,992.4688);
SendClientMessage(playerid, 0xFFFFFFFF, "Fuiste teletrasportado.");
}
}
return 1;
}
PD: utiliza
https://sampwiki.blast.hk/wiki/Main_Page
Respuesta: Duda sobre cуdigos -
AustinT - 09.08.2011
Perfecto, muchнsimas gracias por la ayuda.
Todo muy completo.