open.mp forum
[Pawn] help convert zcmd and sscanf - 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] help convert zcmd and sscanf (/showthread.php?tid=1756)



help convert zcmd and sscanf - nbx2000 - 2021-03-12



can someone help me convert this command to zmcd and sscanf


Code:
[/font][/size][/color]

#include <a_samp>

#define DIALOG_DUEL 24245

new bool:InvitedDuel[MAX_PLAYERS];

new IdDuel[MAX_PLAYERS];

new bool:UsingArena;

new Counting = 5;

new CountDueling[5][5] ={"~r~1","~b~2","~p~3","~y~4","~g~5"};

forward ExecuteCount(playerid,pid);

public ExecuteCount(playerid,pid)

{

? ? if (Counting > 0)

? ? {

? ? ? ? GameTextForPlayer(playerid,CountDueling[Counting-1], 2500, 3);

? ? ? ? GameTextForPlayer(pid,CountDueling[Counting-1], 1000, 3);

? ? ? ? Counting--;

? ? ? ? SetTimerEx("GoDuel",1000,false,"ii",playerid,pid);

? ? }

? ? else

? ? {

? ? ? ? GameTextForPlayer(playerid,"~>~~g~Go~w~Go~r~Go~b~Go~<~", 2500, 3);

? ? ? ? GameTextForPlayer(pid,"~>~~g~Go~w~Go~r~Go~b~Go~<~", 2500, 3);

? ? ? ? Counting = 5;

? ? ? ? TogglePlayerControllable(playerid,true);

? ? ? ? TogglePlayerControllable(pid,true);

? ? }

? ? return 1;

}





public OnPlayerCommandText(playerid, cmdtext[])

{

? ? new cmd[128];

? ? new idx;

? ? new id;

? ? cmd = otherplayerids(cmdtext, idx);

? ? if(!strcmp("/duel", cmd, true))

? ? {

? ? ? ? new tmp[128];

? ? ? ? new string[128];

? ? ? ? tmp = otherplayerids(cmdtext, idx);

? ? ? ? id = strval(tmp);

? ? ? ? if(InvitedDuel[playerid] == true) return SendClientMessage(playerid,0xF41917AA,"??[DUEL]?? : Have you invited someone, wait Expire Invitation");

? ? ? ? if(UsingArena == true) return SendClientMessage(playerid,0xF41917AA,"??[DUEL]?? : At the time the Arena is Being Used");

? ? ? ? if(!strlen(tmp)) return SendClientMessage(playerid,0xF41917AA,"??[DUEL]?? : You must enter the ID of the player following the Way (/duel [playerid])");

? ? ? ? if(id == playerid) return SendClientMessage(playerid,0xF41917AA,"??[DUEL]?? : You can not invite the Self");

? ? ? ? if(InvitedDuel[id] == true) return SendClientMessage(playerid,0xF41917AA,"??[DUEL]?? : Currently the player is in a Duel, wait..");

? ? ? ? new name[MAX_PLAYER_NAME];

? ? ? ? GetPlayerName(playerid, name, sizeof(name));

? ? ? ? format(string, sizeof(string), "??[DUEL]?? : %s This inviting you to a \n Duel Runing (Press Accept to Accept Duel)",name);

? ? ? ? ShowPlayerDialog(id,DIALOG_DUEL,DIALOG_STYLE_MSGBOX,"??[DUEL]?? :",string,"Accept", "No");

? ? ? ? GameTextForPlayer(id,"~r~DUE~w~LO !", 2500, 3);

? ? ? ? InvitedDuel[id] = true;

? ? ? ? IdDuel[id] = playerid;

? ? ? ? SetTimerEx("ExpireDuel",15000,false,"ii",id,playerid);

? ? ? ? return 1;

? ? }

? ? return 0;

}





forward GoDuel(playerid,pid);

public GoDuel(playerid,pid)

{

? ? //-> Go To? X1 <-//

? ? //SetPlayerPos

? ? //SetPlayerArmor

? ? //SetPlayerHealth



? ? //-> Functions for Count x1<-//

? ? TogglePlayerControllable(playerid,false);

? ? TogglePlayerControllable(pid,false);

? ? ExecuteCount(playerid,pid);

? ? return 1;

}





forward ExpireDuel(playerid,pid);

public ExpireDuel(playerid,pid)

{

? ? if(UsingArena == false)

? ? {

? ? ? ? SendClientMessage(pid,0x1DF6F6AA,"??[DUEL]?? : Expired challenge, He Refused");

? ? ? ? SendClientMessage(playerid,0x1DF6F6AA,"??[DUEL]?? : Expired challenge, you automatically refuse");

? ? ? ? InvitedDuel[pid] = false;

? ? ? ? InvitedDuel[playerid] = false;

? ? ? ? IdDuel[playerid] = playerid;

? ? ? ? IdDuel[pid] = pid;

? ? }

? ? return 1;

}





otherplayerids(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;

}





public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])

{

? ? if(dialogid == DIALOG_DUEL)

? ? {

? ? ? ? if(!response) return ExpireDuel(playerid,IdDuel[playerid]);

? ? ? ? if(response)

? ? ? ? {

? ? ? ? ? ? UsingArena = true;

? ? ? ? ? ? new name[MAX_PLAYER_NAME], string[44];

? ? ? ? ? ? GetPlayerName(playerid, name, sizeof(name));

? ? ? ? ? ? format(string, sizeof(string), "??[DUEL]?? : %s accepted the challenge, wait 8 seconds to go to Duel.",name);

? ? ? ? ? ? SendClientMessage(IdDuel[playerid],0xF6F600AA,string);

? ? ? ? ? ? SendClientMessage(playerid,0xF6F600AA,"??[DUEL]?? : You accepted the Duel Wait 8 seconds to process your Data");

? ? ? ? ? ? SetTimerEx("GoDuel",8000,false,"ii",playerid,IdDuel[playerid]);

? ? ? ? }

? ? ? ? return 1;

? ? }

? ? return 1;

}





public OnPlayerDeath(playerid, killerid, reason)

{

? ? if(InvitedDuel[killerid] == true)

? ? {

? ? ? ? new Float:healthkiller;

? ? ? ? new namekiller[24],namedeather[24],string[44];

? ? ? ? GetPlayerName(killerid, namekiller, 24);

? ? ? ? GetPlayerName(playerid, namedeather, 24);

? ? ? ? GetPlayerHealth(killerid,healthkiller);

? ? ? ? format(string, sizeof(string), "??[DUELO]?? : %s Wins Duel of %s how %0.0f off Armour and Health",namekiller,namedeather,healthkiller);

? ? ? ? SendClientMessageToAll(0xF600F6AA, string);

? ? ? ? InvitedDuel[killerid] = false;

? ? ? ? InvitedDuel[playerid] = false;

? ? ? ? IdDuel[playerid] = playerid;

? ? ? ? IdDuel[killerid] = killerid;

? ? ? ? UsingArena = false;

? ? ? ? healthkiller = 0;

? ? ? ? SpawnPlayer(killerid);

? ? }

? ? return 1;

}

[color=#000000][size=small][font=Monaco, Consolas, Courier, monospace]



RE: help convert zcmd and sscanf - Radical - 2021-03-12

PHP Code:
CMD:duel(playeridparams[]) {

? ? ? ? new 
string[128], id;

? ? ? ? if(
InvitedDuel[playerid] == true) return SendClientMessage(playerid,0xF41917AA,"??[DUEL]?? : Have you invited someone, wait Expire Invitation");

? ? ? ? if(
UsingArena == true) return SendClientMessage(playerid,0xF41917AA,"??[DUEL]?? : At the time the Arena is Being Used");

? ? ? ? if(
sscanf(params"r"id)) return SendClientMessage(playerid,0xF41917AA,"??[DUEL]?? : You must enter the ID of the player following the Way (/duel [playerid])");

? ? ? ? if(!
IsPlayerConnected(id)) return SendClientMessage(playerid,0xF41917AA,"??[DUEL]?? : This player not connected.");

? ? ? ? if(
id == playerid) return SendClientMessage(playerid,0xF41917AA,"??[DUEL]?? : You can not invite the Self");

? ? ? ? if(
InvitedDuel[id] == true) return SendClientMessage(playerid,0xF41917AA,"??[DUEL]?? : Currently the player is in a Duel, wait..");

? ? ? ? new 
name[MAX_PLAYER_NAME];

? ? ? ? 
GetPlayerName(playeridnamesizeof(name));

? ? ? ? 
format(stringsizeof(string), "??[DUEL]?? : %s This inviting you to a \n Duel Runing (Press Accept to Accept Duel)",name);

? ? ? ? 
ShowPlayerDialog(id,DIALOG_DUEL,DIALOG_STYLE_MSGBOX,"??[DUEL]?? :",string,"Accept""No");

? ? ? ? 
GameTextForPlayer(id,"~r~DUE~w~LO !"25003);

? ? ? ? 
InvitedDuel[id] = true;

? ? ? ? 
IdDuel[id] = playerid;

? ? ? ? 
SetTimerEx("ExpireDuel",15000,false,"ii",id,playerid);

? ? ? ? return 
1;