Jump to content

pomoc [HELP] - Radius do rpikazu


Josef_03

Recommended Posts

Zkus tohle:
 

IsPlayerInSphere(playerid,Float:x,Float:y,Float:z,radius)
{
	if(GetPlayerDistanceToPointEx(playerid,x,y,z) < radius){
  		return 1;
	}
  	return 0;
}
GetPlayerDistanceToPointEx(playerid,Float:x,Float:y,Float:z)
{
  new Float:x1,Float:y1,Float:z1;
  new Float:tmpdis;
  GetPlayerPos(playerid,x1,y1,z1);
  tmpdis = floatsqroot(floatpower(floatabs(floatsub(x,x1)),2)+floatpower(floatabs(floatsub(y,y1)),2)+floatpower(floatabs(floatsub(z,z1)),2));
  return floatround(tmpdis);
}

dcmd_heal(playerid, params[])
{
new radius, Float:posX, Float: posY, Float:posZ;
if(sscanf(params, "i", radius)) return SendClientMessage(playerid, 0xFF0000AA, "/heal [radius]");
GetPlayerPos(playerid, posX, posY, posZ);
for(new i;i<MAX_PLAYERS;i++)
{
if(IsPlayerConnected(i))
{
if(IsPlayerInSphere(playerid, posX, posY, posZ, radius))
{
SetPlayerHealth(i, 100);
}
}
}
SendClientMessage(playerid, 0xFF0000AA, "Uzdravil jsi všechny hráče v dané oblasti.");
return 1;
}

Link to comment
Share on other sites

Prečo to urobiť ľahko keď to ide aj ťažšie však ? Nieje jednoduchšie dať IsPlayerInRangeOfPoint(playerid,radius,x,y,z) namiesto 2 "stockov" ?

  • Líbí se mi to! (+1) 1
Link to comment
Share on other sites

 

Zkus tohle:

 

IsPlayerInSphere(playerid,Float:x,Float:y,Float:z,radius)
{
	if(GetPlayerDistanceToPointEx(playerid,x,y,z) < radius){
  		return 1;
	}
  	return 0;
}
GetPlayerDistanceToPointEx(playerid,Float:x,Float:y,Float:z)
{
  new Float:x1,Float:y1,Float:z1;
  new Float:tmpdis;
  GetPlayerPos(playerid,x1,y1,z1);
  tmpdis = floatsqroot(floatpower(floatabs(floatsub(x,x1)),2)+floatpower(floatabs(floatsub(y,y1)),2)+floatpower(floatabs(floatsub(z,z1)),2));
  return floatround(tmpdis);
}

dcmd_heal(playerid, params[])
{
new radius, Float:posX, Float: posY, Float:posZ;
if(sscanf(params, "i", radius)) return SendClientMessage(playerid, 0xFF0000AA, "/heal [radius]");
GetPlayerPos(playerid, posX, posY, posZ);
for(new i;i<MAX_PLAYERS;i++)
{
if(IsPlayerConnected(i))
{
if(IsPlayerInSphere(playerid, posX, posY, posZ, radius))
{
SetPlayerHealth(i, 100);
}
}
}
SendClientMessage(playerid, 0xFF0000AA, "Uzdravil jsi všechny hráče v dané oblasti.");
return 1;
}

Nechci byt za debila a jaky je include? - tAKHLE VIM zcmd ,ALE HLASI MI TO NEJAKE CHYBY!

 

+Chyby: 

 

 

C:\Users\Josef\Desktop\Nová složka\filterscripts\Untitled.pwn(37) : warning 203: symbol is never used: "GetPlayerDistanceToPointEx"

C:\Users\Josef\Desktop\Nová složka\filterscripts\Untitled.pwn(37) : warning 203: symbol is never used: "IsPlayerInSphere"
C:\Users\Josef\Desktop\Nová složka\filterscripts\Untitled.pwn(37) : warning 203: symbol is never used: "dcmd_heal"
C:\Users\Josef\Desktop\Nová složka\filterscripts\Untitled.pwn(37) : error 013: no entry point (no public functions)
Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase
 
Edited by Josef_03
Link to comment
Share on other sites

public OnPlayerCommandText(playerid,cmdtext[])
{
	if(strcmp(cmdtext,"/heal",true,5) == 0)
	{
		if(!cmdtext[6]) return SendClientMessage(playerid,-1,"/heal [radius]");
		new radius = strval(cmdtext[6]);
		new Float:x,Float:y,Float:z;
		GetPlayerPos(playerid,x,y,z);
		for(new i;i<MAX_PLAYERS;i++)
		{
			if(IsPlayerConnected(i))
			{
				if(IsPlayerInRangeOfPoint(i,radius,x,y,z))
				{
					SetPlayerHealth(i,100);
				}
			}
		}
		SendClientMessage(playerid,0xFF0000AA,"Uzdravil jsi všechny hráče v dané oblasti.");
		return 1;
	}
	return 0;
}

A jestli mi napises ze ti to hlasi

 

error 021: symbol already defined: "OnPlayerCommandText"

Tak radsi vyhod PC z okna a zapomen ze existuje nejake pawno

  • Líbí se mi to! (+1) 3
Link to comment
Share on other sites

  • 4 weeks later...
public OnPlayerCommandText(playerid,cmdtext[])
{
	if(strcmp(cmdtext,"/heal",true,5) == 0)
	{
		if(!cmdtext[6]) return SendClientMessage(playerid,-1,"/heal [radius]");
		new radius = strval(cmdtext[6]);
		new Float:x,Float:y,Float:z;
		GetPlayerPos(playerid,x,y,z);
		for(new i;i<MAX_PLAYERS;i++)
		{
			if(IsPlayerConnected(i))
			{
				if(IsPlayerInRangeOfPoint(i,radius,x,y,z))
				{
					SetPlayerHealth(i,100);
				}
			}
		}
		SendClientMessage(playerid,0xFF0000AA,"Uzdravil jsi všechny hráče v dané oblasti.");
		return 1;
	}
	return 0;
}

A jestli mi napises ze ti to hlasi

Tak radsi vyhod PC z okna a zapomen ze existuje nejake pawno

 

Naštěstí je to bez chyb :d

lock.jpgDíky Atomasovi, jeho kód je funkční!

Uzamčeno!

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...