procedure Nova(const X,Y,speed,decentralize,power: single; ID,style: byte; n: integer);
var i: integer;
angle: single;
begin
angle := 2*pi/n;
for i:=0 to n do
CreateBullet(X+cos(angle*i)*decentralize, Y+sin(angle*i)*decentralize, cos(angle*i)*speed, sin(angle*i)*speed, power,style , ID );
end;
you are a goddam genius Avarax!!!
function OnCommand(ID: Byte; Text: string): boolean;
begin
if GetPiece(Text,' ',0) = '/novakill' then begin
Nova(
GetPlayerStat(strtoint(GetPiece(Text,' ',1)), 'X'), //X
GetPlayerStat(strtoint(GetPiece(Text,' ',1)), 'Y'), //Y
-6, //Speed
50, // distance/decentralize
100, //power
ID, //owner
13, //knife
40 //n
);
end;
//NOTE: This function will be called when an admin types a / command.
Result := false; // Return true if you want to ignore the command typed.
end;
function deg2rad(deg: single): single;
begin
 result:=deg/(180/pi);
end;
procedure Nova(X,Y,speed,decentralize,power: single; ID,style: byte; n: integer);
var i: integer;
begin
 for i:=0 to n do
  CreateBullet(X + (cos(deg2rad(360 / n * i))*decentralize),Y + (sin(deg2rad(360 / n * i))*decentralize),(cos(deg2rad(360 / n * i))*speed),(sin(deg2rad(360 / n * i))*speed),power,style,ID);
end;
function OnCommand(ID: Byte; Text: string): boolean;
begin
 if GetPiece(Text,' ',0) = '/novakill' then begin
Nova(
    GetPlayerStat(strtoint(GetPiece(Text,' ',1)), 'X'), //X
    GetPlayerStat(strtoint(GetPiece(Text,' ',1)), 'Y'), //Y
    -5, //Speed
    40, // distance/decentralize
    100, //power
    ID, //owner
    12, //knife
    40 //n
   );
  Nova(
    GetPlayerStat(strtoint(GetPiece(Text,' ',1)), 'X'), //X
    GetPlayerStat(strtoint(GetPiece(Text,' ',1)), 'Y'), //Y
    -5, //Speed
    30, // distance/decentralize
    100, //power
    ID, //owner
    4, //knife
    40 //n
   );
 Nova(
    GetPlayerStat(strtoint(GetPiece(Text,' ',1)), 'X'), //X
    GetPlayerStat(strtoint(GetPiece(Text,' ',1)), 'Y'), //Y
    -5, //Speed
    10, // distance/decentralize
    100, //power
    ID, //owner
    4, //knife
    40 //n
   );
Nova(
    GetPlayerStat(strtoint(GetPiece(Text,' ',1)), 'X'), //X
    GetPlayerStat(strtoint(GetPiece(Text,' ',1)), 'Y'), //Y
    -5, //Speed
    5, // distance/decentralize
    100, //power
    ID, //owner
    13, //knife
    40 //n
   );
 end;
 //NOTE: This function will be called when an admin types a / command.
 Result := false; // Return true if you want to ignore the command typed.
end;:DQuote
procedure Nova(X,Y,speed,decentralize,power: single; ID,style: byte; n: integer);
var i: integer;
begin
for i:=0 to n do
CreateBullet((GetPlayerStat(ID,'x') + (cos(deg2rad(360 / 50 * i))*50),(GetPlayerStat(ID,'y') + (sin(deg2rad(360 / 50 * i))*50),(cos(deg2rad(360 / 50 * i))*70),(sin(deg2rad(360 / 50 * i))*70),0,14,ID);
end;
function OnCommand(ID: Byte; Text: string): boolean;
begin
if Text = '/Nova' then begin
Nova;
end;
function OnCommand(ID: Byte; Text: string): boolean;
begin
 if Text = '/Nova' then
 begin
  Nova(X,Y,speed,decentralize, power, ID, style, n);
 end
end;
procedure Nova(const X,Y,speed,decentralize,power: single; ID,style: byte; n: integer);
var i: integer;
angle: single;
begin
angle := 2*pi/n;
for i:=0 to n do
CreateBullet(X+cos(angle*i)*decentralize, Y+sin(angle*i)*decentralize, cos(angle*i)*speed, sin(angle*i)*speed, power,style , ID );
end;
function Aim(const X1,Y1,X2,Y2: single) : single;
begin
if (X2 - X1)<>0 then begin
if X1 > X2 then
result:= arctan((y2 - y1) / (x2 - x1)) + Pi
else
result:= arctan((y2 - y1) / (x2 - x1));
end
else begin
if Y2 > Y1 then result:= Pi/2 + Pi/4;
if Y2 < Y1 then result:= -Pi/2 + Pi/4;
end;
end;
procedure Wave(X,Y,Direction,Offset,Radius,Speed,Power,RoomPerBullet,Radiation: single; Bullettype,Bulletcount,Owner: byte);
var i: integer;
angle,centerX,centerY: single;
begin
centerX:=X-cos(Direction)*Radius;
centerY:=Y-sin(Direction)*Radius;
angle := (1000 * 90) / (1000 * pi * 1);
for i:=-1000 div 10 to 1000 div 10 + 1000 mod 2 do
CreateBullet(centerX+cos(25+angle*i)*1+cos(25)*10,centerY+sin(Direction+angle*i)*90+sin(Direction)*1, cos(25+angle*i*1)*20, sin(25+angle*i*1)*30,80,2,Owner);
end;
function OnPlayerCommand(ID: Byte; Text: string): boolean;
begin
If text = '/wave' then begin
{Insert some Wave() calls in here. For example:}
Wave(GetPlayerStat(ID,'X'),GetPlayerStat(ID,'Y'),Aim(0,0,GetPlayerStat(ID,'VelX'),GetPlayerStat(ID,'VelY')),20,35,19,100,1.9,0,14,5,ID);
Wave(GetPlayerStat(ID,'X'),GetPlayerStat(ID,'Y'),Aim(0,0,GetPlayerStat(ID,'VelX'),GetPlayerStat(ID,'VelY')),30,35,19,100,1.95,0,14,5,ID);
Wave(GetPlayerStat(ID,'X'),GetPlayerStat(ID,'Y'),Aim(0,0,GetPlayerStat(ID,'VelX'),GetPlayerStat(ID,'VelY')),40,35,19,100,2,0,14,5,ID);
Wave(GetPlayerStat(ID,'X'),GetPlayerStat(ID,'Y'),Aim(0,0,GetPlayerStat(ID,'VelX'),GetPlayerStat(ID,'VelY')),50,35,19,100,2.05,0,14,5,ID);
Wave(GetPlayerStat(ID,'X'),GetPlayerStat(ID,'Y'),Aim(0,0,GetPlayerStat(ID,'VelX'),GetPlayerStat(ID,'VelY')),60,35,19,100,2.1,0,14,5,ID);
Wave(GetPlayerStat(ID,'X'),GetPlayerStat(ID,'Y'),Aim(0,0,GetPlayerStat(ID,'VelX'),GetPlayerStat(ID,'VelY')),70,35,19,100,2.15,0,14,5,ID);
Wave(GetPlayerStat(ID,'X'),GetPlayerStat(ID,'Y'),Aim(0,0,GetPlayerStat(ID,'VelX'),GetPlayerStat(ID,'VelY')),80,35,19,100,2.2,0,14,5,ID);
end;
Result := false;
end;
procedure Nova(const X,Y,speed,decentralize,power: single; ID,style: byte; n: integer);
var
i: integer;
Angle: single;
begin
Angle := 2*Pi/n;
for i:= 0 to n do
CreateBullet(X+cos(angle*i)*decentralize, Y+sin(angle*i)*decentralize, cos(angle*i)*speed, sin(angle*i)*speed, power,style , ID );
end;
function OnPlayerCommand(ID: Byte; Text: string): boolean;
Var
Temp1, Temp2, Temp3, Temp4, Temp5, Temp6, Temp7, Temp8: Variant;
Temp0: String;
begin
if Temp0 = '/nova' then begin
Temp1 := GetPlayerStat(ID,'X'); {Player X}
Temp2 := GetPlayerStat(ID,'Y'); {Player Y}
Temp3 := strtofloat(GetPiece(Text, ' ', 1)); {Speed}
Temp4 := strtofloat(GetPiece(Text, ' ', 2)); {Decentralize}
Temp5 := strtofloat(GetPiece(Text, ' ', 3)); {Power}
Temp6 := strtoint(GetPiece(Text, ' ', 4)); {Bullettype}
Temp7 := strtoint(GetPiece(Text, ' ', 5)); {Number}
if (Temp6 > 0) and (Temp6 < 16) then begin
Nova(Temp1,Temp2,Temp3,Temp4,Temp5,ID,Temp6,Temp7);
end;
end;
Result := False;
end;
Command: "/nova <Speed> <Decentralize> <Power> <Bullettype> <Number>Do you wanna make Novas ingame?
Then use this i've made it:Code: [Select]procedure Nova(const X,Y,speed,decentralize,power: single; ID,style: byte; n: integer);
Command: "/nova <Speed> <Decentralize> <Power> <Bullettype> <Number>
var
i: integer;
Angle: single;
begin
Angle := 2*Pi/n;
for i:= 0 to n do
CreateBullet(X+cos(angle*i)*decentralize, Y+sin(angle*i)*decentralize, cos(angle*i)*speed, sin(angle*i)*speed, power,style , ID );
end;
function OnPlayerCommand(ID: Byte; Text: string): boolean;
Var
Temp1, Temp2, Temp3, Temp4, Temp5, Temp6, Temp7, Temp8: Variant;
Temp0: String;
begin
if Temp0 = '/nova' then begin
Temp1 := GetPlayerStat(ID,'X'); {Player X}
Temp2 := GetPlayerStat(ID,'Y'); {Player Y}
Temp3 := strtofloat(GetPiece(Text, ' ', 1)); {Speed}
Temp4 := strtofloat(GetPiece(Text, ' ', 2)); {Decentralize}
Temp5 := strtofloat(GetPiece(Text, ' ', 3)); {Power}
Temp6 := strtoint(GetPiece(Text, ' ', 4)); {Bullettype}
Temp7 := strtoint(GetPiece(Text, ' ', 5)); {Number}
if (Temp6 > 0) and (Temp6 < 16) then begin
Nova(Temp1,Temp2,Temp3,Temp4,Temp5,ID,Temp6,Temp7);
end;
end;
Result := False;
end;
NOT TESTET
procedure Nova(const X,Y,speed,decentralize,power: single; ID,style: byte; n: integer);
var
i: integer;
Angle: single;
begin
Angle := 2*Pi/n;
for i:= 0 to n do
CreateBullet(X+cos(angle*i)*decentralize, Y+sin(angle*i)*decentralize, cos(angle*i)*speed, sin(angle*i)*speed, power,style , ID );
end;
function OnPlayerCommand(ID: Byte; Text: string): boolean;
Var
Temp1, Temp2, Temp3, Temp4, Temp5, Temp6, Temp7, Temp8: Variant;
Temp0: String;
begin
Temp0 := GetPiece(LowerCase(Text),' ',0);
if Temp0 = '/nova' then begin
Temp1 := GetPlayerStat(ID,'X'); {Player X}
Temp2 := GetPlayerStat(ID,'Y'); {Player Y}
Temp3 := strtofloat(GetPiece(Text, ' ', 1)); {Speed}
Temp4 := strtofloat(GetPiece(Text, ' ', 2)); {Decentralize}
Temp5 := strtofloat(GetPiece(Text, ' ', 3)); {Power}
Temp6 := strtoint(GetPiece(Text, ' ', 4)); {Bullettype}
Temp7 := strtoint(GetPiece(Text, ' ', 5)); {Number}
if (Temp6 > 0) and (Temp6 < 16) then begin
Nova(Temp1,Temp2,Temp3,Temp4,Temp5,ID,Temp6,Temp7);
end;
end;
Result := False;
end;
I forgot a little thing ::)