#include #define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, "")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1 #pragma tabsize 0 // This is a comment // uncomment the line below if you want to write a filterscript #define FILTERSCRIPT #define TEAM_FORELLI_COLOR 0x6600FFAA forward Float:GetXYInFrontOfPlayer(playerid, &Float:x, &Float:y, Float:distance); public OnFilterScriptInit() { print("n--------------------------------------"); print(" Gibbs's Kamehameha."); print("--------------------------------------n"); return 1; } public OnFilterScriptExit() { return 1; } public OnPlayerCommandText(playerid, cmdtext[]) { dcmd(kamehameha, 10, cmdtext); return 0; } dcmd_kamehameha(playerid, text[]) { new amount[256], type[256], idx; amount = strtok(text, idx); type = strtok(text, idx); if(!strlen(amount) || !strlen(type)) { SendClientMessage(playerid,0x6600FFAA,"Usage: /kamehameha [amount] [ex type]"); return 1; } if(strval(type) >= 13) { SendClientMessage(playerid,0x6600FFAA,"invalid explosion type"); return 1; } new Float:x, Float:y, Float:z; GetPlayerPos(playerid, x, y, z); new dist = strval(amount); //GetXYInFrontOfPlayer(playerid, x, y, dist); for(new i; i < dist; i++) { new dis = (20*i); GetXYInFrontOfPlayer(playerid, x, y, dis); CreateExplosion(x,y, z, strval(type), 10.0); } return 1; } Float:GetXYInFrontOfPlayer(playerid, &Float:x, &Float:y, Float:distance) { new Float:a; GetPlayerPos(playerid, x, y, a); if (IsPlayerInAnyVehicle(playerid)) GetVehicleZAngle(GetPlayerVehicleID(playerid), a); else GetPlayerFacingAngle(playerid, a); x += (distance * floatsin(-a, degrees)); y += (distance * floatcos(-a, degrees)); return a; } strtok(const string[], &index) { new length = strlen(string); while ((index < length) && (string[index] <= ' ')) { index++; } new offset = index; new result[20]; while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1))) { result[index - offset] = string[index]; index++; } result[index - offset] = EOS; return result; }