Will this codes work?
#1

PHP код:
#define DUELDIALOG 6246
#define DUELINVITE 6247
new induel[MAX_PLAYERS];
new 
induelinvite[MAX_PLAYERS];
new 
target;
new 
dueler;
new 
Float:duelHealth[MAX_PLAYERS];
new 
Float:duelArmour[MAX_PLAYERS]; 
PHP код:
public OnPlayerDeath(playeridkilleridreason)
{
    if(
induel[playerid] == && induel[killerid] == 1)
    {
        
GetPlayerHealth(playeridduelHealth[playerid]);
        
GetPlayerArmour(playeridduelArmour[playerid]);
        
SetPlayerVirtualWorld(playerid0);
        
SetPlayerVirtualWorld(killerid0);
        
SetPlayerPos(playerid0.00.00.0);
        
SpawnPlayer(playerid);
        
SetPlayerPos(killerid0.00.00.0);
        
SpawnPlayer(killerid);
        new 
string[128];
        
format(string128"%s has won 1 vs 1 duel againts %s and still has %d health and %d armour"pName(killerid), pName(playerid), duelHealth[playerid], duelArmour[playerid]);
        
SendClientMessageToAll(orangestring);
    }
    ... 
PHP код:
CMD:duel(playerid,params[])
{
    new 
player1;
    if(
sscanf(params,"ui",player1)) return SendClientMessage(playerid,0xFF0000FF,"Usage: /duel [playerid]");
    if(!
IsPlayerConnected(player1) || player1 == playerid) return SendClientMessage(playerid,0xFF0000FF,"ERROR: Player is not connected or is yourself");
    if(
induelinvite[player1] == 1) return SendClientMessage(playeridred"ERROR: This player has another duel invitation");
    if(
induel[playerid] == 1) return SendClientMessage(playeridred"ERROR: You are already in duel");
    if(
induel[player1] == 1) return SendClientMessage(playeridred"ERROR: This player is already in duel");
    
//if(betprice < 1) return SendClientMessage(playerid,0xFF0000FF,"ERROR: Invalid bet price");
    
player1 target;
    
playerid dueler;
    
//if(GetPlayerMoney(playerid) < betprice) return SendClientMessage(playerid,0xFF0000FF,"ERROR: You don't own this bet price");
    
ShowPlayerDialog(playeridDUELDIALOGDIALOG_STYLE_LIST"{00FF00}Choose Weapon ""Desert Eagle\nSawn-Off Shotgun""Select""Cancel");
    
induelinvite[target] = 1;
    return 
1;

PHP код:
public OnDialogResponse(playeriddialogidresponselistiteminputtext[])
{
    if(
dialogid == DUELDIALOG)
    {
        if(
response)
        {
            if(
listitem == 0)
            {
                
//ShowPlayerDialog(playerid, DUELDIALOG+1, DIALOG_STYLE_LIST, "Choose Place", "Stadium\nVice Stadium\nWare House", "Select", "Back");
                
SendClientMessage(duelerblue"You have challenge %s to duel. Please wait for him to accept");
                new 
string[128];
                
format(string128"%s has challenge you to duel using Desert Eagle"pName(dueler));
                
ShowPlayerDialog(targetDUELINVITE+1DIALOG_STYLE_MSGBOXstring"Accept""Reject");
            }
            if(
listitem == 1)
            {
                
//ShowPlayerDialog(playerid, DUELDIALOG+2, DIALOG_STYLE_LIST, "Choose Place", "Stadium\nVice Stadium\nWare House", "Select", "Back");
                
SendClientMessage(duelerblue"You have challenge %s to duel. Please wait for him to accept");
                new 
string[128];
                
format(string128"%s has challenge you to duel using Sawn-Off Shotgun"pName(dueler));
                
ShowPlayerDialog(targetDUELINVITE+2DIALOG_STYLE_MSGBOXstring"Accept""Reject");
            }
        }
    }
    if(
dialogid == DUELINVITE+1)
    {
        if(
response)
        {
            
//------------
            
SetPlayerPos(dueler,1368.0883,-19.5623,1000.9219);
            
SetPlayerFacingAngle(dueler,266.5214);
            
SetPlayerHealth(dueler,100);
            
SetPlayerArmour(dueler,100);
            
SetPlayerInterior(dueler,1);
            
SetPlayerVirtualWorld(dueler,dueler+88);
            
//------------
            
SetPlayerPos(target,1368.0883,-19.5623,1000.9219);
            
SetPlayerFacingAngle(target,266.5214);
            
SetPlayerHealth(target,100);
            
SetPlayerArmour(target,100);
            
SetPlayerInterior(target,1);
            
SetPlayerVirtualWorld(target,dueler+88);
            
//------------
            
GivePlayerWeapon(dueler24999999);
            
GivePlayerWeapon(target24999999);
            new 
string[128];
            
format(string128"Duel Between %s and %s has started [Desert Eagle] [Ware House]"pName(target), pName(dueler));
            
SendClientMessageToAll(greenstring);
            
induel[target] = 1;
            
induel[dueler] = 1;
            if(
cdt[dueler] == 6) {
            
GameTextForPlayer(dueler"~p~Duel Starting..."10006); GameTextForPlayer(target"~p~Duel Starting..."10006);
            }
            
cdt[dueler]--;
            if(
cdt[dueler] == 0)
            {
                
TogglePlayerControllable(dueler1); TogglePlayerControllable(target1);
                
PlayerPlaySound(dueler10570.00.00.0); PlayerPlaySound(target10570.00.00.0);
                
GameTextForPlayer(dueler"~g~GO~ r~!"10006); GameTextForPlayer(target"~g~GO~ r~!"10006);
                return 
0;
            }
            else
            {
                new 
text[7]; format(textsizeof(text), "~w~%d"cdt[target]);
                
PlayerPlaySound(dueler10560.00.00.0); PlayerPlaySound(target10560.00.00.0);
                
TogglePlayerControllable(dueler0); TogglePlayerControllable(target0);
                
GameTextForPlayer(duelertext10006); GameTextForPlayer(targettext10006);
            }
            
SetTimerEx("Duel"10000"dd"duelertarget);
        }
        if(!
response)
        {
            
induelinvite[target] = 0;
            new 
string[128];
            
format(string128"%s has rejected your duel invitation"pName(target));
            
SendClientMessage(duelerredstring);
        }
    }
    if(
dialogid == DUELINVITE+2)
    {
        if(
response)
        {
            
SetPlayerPos(dueler,1368.0883,-19.5623,1000.9219);
            
SetPlayerFacingAngle(dueler,266.5214);
            
SetPlayerHealth(dueler,100);
            
SetPlayerArmour(dueler,100);
            
SetPlayerInterior(dueler,1);
            
SetPlayerVirtualWorld(dueler,dueler+88);
            
//------------
            
SetPlayerPos(target,1368.0883,-19.5623,1000.9219);
            
SetPlayerFacingAngle(target,266.5214);
            
SetPlayerHealth(target,100);
            
SetPlayerArmour(target,100);
            
SetPlayerInterior(target,1);
            
SetPlayerVirtualWorld(target,dueler+88);
            
//------------
            
GivePlayerWeapon(dueler26999999);
            
GivePlayerWeapon(target26999999);
            new 
string[128];
            
format(string128"Duel Between %s and %s has started [Sawn-Off Shotgun] [Ware House]"pName(target), pName(dueler));
            
SendClientMessageToAll(greenstring);
            
induel[target] = 1;
            
induel[dueler] = 1;
            if(
cdt[dueler] == 6) {
            
GameTextForPlayer(dueler"~p~Duel Starting..."10006); GameTextForPlayer(target"~p~Duel Starting..."10006);
            }
            
cdt[dueler]--;
            if(
cdt[dueler] == 0)
            {
                
TogglePlayerControllable(dueler1); TogglePlayerControllable(target1);
                
PlayerPlaySound(dueler10570.00.00.0); PlayerPlaySound(target10570.00.00.0);
                
GameTextForPlayer(dueler"~g~GO~ r~!"10006); GameTextForPlayer(target"~g~GO~ r~!"10006);
                return 
0;
            }
            else
            {
                new 
text[7]; format(textsizeof(text), "~w~%d"cdt[target]);
                
PlayerPlaySound(dueler10560.00.00.0); PlayerPlaySound(target10560.00.00.0);
                
TogglePlayerControllable(dueler0); TogglePlayerControllable(target0);
                
GameTextForPlayer(duelertext10006); GameTextForPlayer(targettext10006);
            }
            
SetTimerEx("Duel"10000"dd"duelertarget);
        }
        if(!
response)
        {
            
induelinvite[target] = 0;
            new 
string[128];
            
format(string128"%s has rejected your duel invitation"pName(target));
            
SendClientMessage(duelerredstring);
        }
    }
    ... 
I found no errors, but idk if it's work cause I dont have a friend and server to test it.
Please guys

EDIT: Can I make the codes more efficient?
Reply
#2

If the code compiles, you're only halfway there. You will still need to test the code somehow.
Reply
#3

Run the code and see for it yourself.
Reply
#4

Run the code at pawno in pawno or test it at unit tests
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)