CMD:createbillboard(playerid, params[]) { static id = -1; if (PlayerData[playerid][pAdmin] < 5) return SendErrorMessage(playerid, "You don't have permission to use this command."); id = Billboard_Create(playerid, -1); if (id == -1) return SendErrorMessage(playerid, "The server has reached the limit for billboards."); SendServerMessage(playerid, "You have successfully created billboard ID: %d.", id); return 1; } CMD:destroybillboard(playerid, params[]) { static id = 0; if (PlayerData[playerid][pAdmin] < 5) return SendErrorMessage(playerid, "You don't have permission to use this command."); if (sscanf(params, "d", id)) return SendSyntaxMessage(playerid, "/destroybillboard [bb id]"); if ((id < 0 || id >= MAX_BILLBOARDS) || !BillBoardData[id][bbExists]) return SendErrorMessage(playerid, "You have specified an invalid billboard ID."); Billboard_Delete(id); SendServerMessage(playerid, "You have successfully destroyed billboard ID: %d.", id); return 1; } CMD:editbillboard(playerid, params[]) { static id, type[24], string[128]; if (PlayerData[playerid][pAdmin] < 5) return SendErrorMessage(playerid, "You don't have permission to use this command."); if (sscanf(params, "ds[24]S()[128]", id, type, string)) { SendSyntaxMessage(playerid, "/editbillboard [id] [name]"); SendClientMessage(playerid, COLOR_YELLOW, "[NAMES]:{FFFFFF} location, name, price, message, owner, range"); return 1; } if ((id < 0 || id >= MAX_BILLBOARDS) || !BillBoardData[id][bbExists]) return SendErrorMessage(playerid, "You have specified an invalid business ID."); if (!strcmp(type, "location", true)) { GetPlayerPos(playerid, BillBoardData[id][bbPos][0], BillBoardData[id][bbPos][1], BillBoardData[id][bbPos][2]); Billboard_Refresh(id); Billboard_Save(id); SendAdminAlert(COLOR_LIGHTRED, "[ADMIN]: %s has adjusted the location of billboard ID: %d.", ReturnName(playerid, 0), id); } else if (!strcmp(type, "price", true)) { new price; if (sscanf(string, "d", price)) return SendSyntaxMessage(playerid, "/editbillboard [id] [price] [new price]"); BillBoardData[id][bbPrice] = price; Billboard_Refresh(id); Billboard_Save(id); SendAdminAlert(COLOR_LIGHTRED, "[ADMIN]: %s has adjusted the price of billboard ID: %d to %s.", ReturnName(playerid, 0), id, FormatNumber(price)); } else if (!strcmp(type, "name", true)) { new name[32]; if (sscanf(string, "s[32]", name)) return SendSyntaxMessage(playerid, "/editbillboard [id] [name] [new name]"); format(BillBoardData[id][bbName], 32, name); Billboard_Refresh(id); Billboard_Save(id); SendAdminAlert(COLOR_LIGHTRED, "[ADMIN]: %s has adjusted the name of billboard ID: %d to \"%s\".", ReturnName(playerid, 0), id, name); } else if (!strcmp(type, "message", true)) { new name[32]; if (sscanf(string, "s[230]", name)) return SendSyntaxMessage(playerid, "/editbillboard [id] [message] [new message] (Max Chars: 230)"); format(BillBoardData[id][bbMessage], 32, name); Billboard_Refresh(id); Billboard_Save(id); SendAdminAlert(COLOR_LIGHTRED, "[ADMIN]: %s has adjusted the message of billboard ID: %d to \"%s\".", ReturnName(playerid, 0), id, name); } else if (!strcmp(type, "owner", true)) { new giveplayerid; if (sscanf(string, "d", giveplayerid)) return SendSyntaxMessage(playerid, "/editbillboard [id] [(remove)owner] [playerid]"); if (giveplayerid == INVALID_PLAYER_ID) return SendErrorMessage(playerid, "That player is disconnected."); BillBoardData[id][bbOwner] = GetPlayerSQLID(giveplayerid); Billboard_Refresh(id); Billboard_Save(id); SendAdminAlert(COLOR_LIGHTRED, "[ADMIN]: %s has adjusted the owner of billboard ID: %d", ReturnName(playerid, 0), id); } else if (!strcmp(type, "removeowner", true)) { if (sscanf(string, "d")) return SendSyntaxMessage(playerid, "/editbillboard [id] [removeowner]"); BillBoardData[id][bbOwner] = 0; Billboard_Refresh(id); Billboard_Save(id); SendAdminAlert(COLOR_LIGHTRED, "[ADMIN]: %s has removed the owner of billboard ID: %d", ReturnName(playerid, 0), id); } else if (!strcmp(type, "range", true)) { new range; if (sscanf(string, "d", range)) return SendSyntaxMessage(playerid, "/editbillboard [id] [range] [new range]"); if(range < 10) { SendErrorMessage(playerid, "Range can only be 10-200"); return 1; } if(range > 200) { SendErrorMessage(playerid, "Range can only be 10-200"); return 1; } BillBoardData[id][bbRange] = range; Billboard_Refresh(id); Billboard_Save(id); SendAdminAlert(COLOR_LIGHTRED, "[ADMIN]: %s has adjusted the range of billboard ID: %d to %d.", ReturnName(playerid, 0), id, range); } return 1; }
CMD:billboard(playerid, params[])
{
new commandtype[16];
sscanf(params, "s[16]", commandtype)
if(strcmp(commandtype, "create", true)==0)
{
//Put here your code to create a billboard
}
else if(strcmp(commandtype, "delete", true)==0)
{
//Put here your code to delete a billboard
}
else if(strcmp(commandtype, "edit", true)==0)
{
//Put here your code to edit a billboard
}
else
{
SendErrorMessage(playerid, "Use: /billboard [create/delete/edit]");
}
return 1;
}
You could do that by getting the first parameter with sscanf and then use strcmp to see what the player wants.
pawn Код:
|
Theres only one problem with your example, you've provided one "Parameter" for the type, you should explain how to process more than one for things such as "Edit"
|