open.mp forum
[Pawn] Command convert zcmd - Printable Version

+ open.mp forum (https://forum.open.mp)
-- Forum: SA-MP (https://forum.open.mp/forumdisplay.php?fid=3)
--- Forum: Pawn Scripting (https://forum.open.mp/forumdisplay.php?fid=10)
--- Thread: [Pawn] Command convert zcmd (/showthread.php?tid=1762)



Command convert zcmd - nbx2000 - 2021-03-13

I have tried to change to zcmd and there is no command, they help me to convert it to zcmd only



Code:
public OnPlayerCommandText(playerid, cmdtext[])

{

? ? new string[256], cmd[256], tmp[256], giveplayerid, idx;

? ? cmd = strtok(cmdtext, idx);

? ? if(strcmp(cmd, "/duel", true) == 0)

{

if(PlayerInDuel[playerid] == 1) return SendClientMessage(playerid, -1, "You are already in a duel");

if(DuelPlaceVisit) return SendClientMessage(playerid, -1, "Wait until the duel becomes free.");

tmp = strtok(cmdtext, idx);

? if(!strlen(tmp)) return SendClientMessage(playerid, -1, "duel [player id] [weapon id] [stake]");

? giveplayerid = strval(tmp);

? tmp = strtok(cmdtext, idx);

? if(!strlen(tmp)) return SendClientMessage(playerid, -1, "Usage: / duel [player id] [weapon id] [stake]");

? WeaponDuel = strval(tmp);

? if(WeaponDuel < 0 || WeaponDuel > 42) return SendClientMessage(playerid, -1, "You entered the wrong weapon id. Use id from 0 to 42");

? tmp = strtok(cmdtext, idx);

? if(!strlen(tmp)) return SendClientMessage(playerid, -1, "Usage: / duel [player id] [weapon id] [stake]");

? MoneyDuel = strval(tmp);

? if(MoneyDuel < 100 || MoneyDuel > 1000) return SendClientMessage(playerid, -1, "You entered the wrong bet amount. Use an amount from $ 1 to $ 100,000");

? if(MoneyDuel > GetPlayerMoney(playerid)) return SendClientMessage(playerid, -1, "You are missing a bet. Specify a different amount");

if(MoneyDuel > GetPlayerMoney(giveplayerid)) return SendClientMessage(playerid, -1, "Your opponent is missing a bet. Specify a different amount!");

if(IsPlayerConnected(giveplayerid))

? {

? ? ? if(playerid == giveplayerid) return SendClientMessage(playerid, -1, "You cannot apply this action to yourself.");

? if(PlayerInDuel[giveplayerid] == 1) return SendClientMessage(playerid, -1, "This player is already in a duel..");

? ? GetDuelCreate[giveplayerid] = playerid;

? ? ? ? format(string, sizeof(string), "You have successfully invited player {9DDAF2}%s {FFFFFF} to a duel! Wait for an answer", pNick(giveplayerid));

? ? ? ? SendClientMessage(playerid, -1, string);

? ? ? ? format(string, sizeof(string), "{ff0000}You Have Challenged %s To A 1v1 Duel!\nInfo Duel Weapon(id): %d Bet:$ %d !", pNick(playerid), WeaponDuel, MoneyDuel);

? ? ? ? ShowPlayerDialog(giveplayerid, DUEL_ID, DIALOG_STYLE_MSGBOX, "{ff0000}[xEF]DUEL", string, "Accept", "Decline");

? ? ? }

? else

? {

? SendClientMessage(playerid, -1, "The player with the ID you specified was not found");

? }

? return 1;

}

return 0;

}



RE: Command convert zcmd - DandoRYx - 2021-03-13

PHP Code:
#include <zcmd>
#include <sscanf2> 

PHP Code:
CMD:duel(playeridparams[])
{
    if(
PlayerInDuel[playerid] == 1) return SendClientMessage(playerid, -1"You are already in a duel");
    if(
DuelPlaceVisit) return SendClientMessage(playerid, -1"Wait until the duel becomes free.");
    new 
giveplayeridWeaponDuelMoneyDuel;
    if(
sscanf(params"idd"giveplayeridWeaponDuelMoneyDuel)) return SendClientMessage(playerid, -1"Usage: /duel [player id] [weapon id] [stake]");
    if(
WeaponDuel || WeaponDuel 42) return SendClientMessage(playerid, -1"You entered the wrong weapon id. Use id from 0 to 42");
    if(
MoneyDuel 100 || MoneyDuel 100000) return SendClientMessage(playerid, -1"You entered the wrong bet amount. Use an amount from $ 1 to $ 100,000");
    if(
MoneyDuel GetPlayerMoney(playerid)) return SendClientMessage(playerid, -1"You are missing a bet. Specify a different amount");
    if(
MoneyDuel GetPlayerMoney(giveplayerid)) return SendClientMessage(playerid, -1"Your opponent is missing a bet. Specify a different amount!");
    if(
IsPlayerConnected(giveplayerid))
    {
        if(
playerid == giveplayerid) return SendClientMessage(playerid, -1"You cannot apply this action to yourself.");
        if(
PlayerInDuel[giveplayerid] == 1) return SendClientMessage(playerid, -1"This player is already in a duel..");

        new 
string[256];
        
GetDuelCreate[giveplayerid] = playerid;
        
format(stringsizeof(string), "You have successfully invited player {9DDAF2}%s {FFFFFF} to a duel! Wait for an answer"pNick(giveplayerid));
        
SendClientMessage(playerid, -1string);
        
format(stringsizeof(string), "{ff0000}You Have Challenged %s To A 1v1 Duel!\nInfo Duel Weapon(id): %d Bet: $%d !"pNick(playerid), WeaponDuelMoneyDuel);
        
ShowPlayerDialog(giveplayeridDUEL_IDDIALOG_STYLE_MSGBOX"{ff0000}[xEF]DUEL"string"Accept""Decline");
    }
    else
    {
        
SendClientMessage(playerid, -1"The player with the ID you specified was not found");
    }
    return 
1;


This should work.
Although I would use I-ZCMD: https://github.com/YashasSamaga/I-ZCMD