Dueling System help! [+REP]
#1

Hello,
I made a great TDM script but I don't understand how to make a dueling system.
The way I need the CMD made is.

the synthax for the command will be : /duel [playerid] [money] [weaponid]

And the duel will be in a stadium where no one can go out. And the /kill command will not work there.

The player who wins will get the money and both will be spawned after duel.

If one group of people are dueling if someone else tries to duel then there should be a message saying " A duel is already going on , please wait ." This is to reduce the bug.

And the duel system should not have any bug. It should be made in such a system that no one can abuse this dueling system. Thanks.

+REP for whoever helps me.
Reply
#2

pawn Код:
#define FILTERSCRIPT

#include <a_samp>

#if defined FILTERSCRIPT

public OnFilterScriptInit()
{
    print("\n--------------------------------------");
    print(" Blank Filterscript by your name here");
    print("--------------------------------------\n");
    return 1;
}

public OnFilterScriptExit()
{
    return 1;
}

#else

new bool:DuelOn;
new bool:InDuel[MAX_PLAYERS];

main()
{
    print("\n----------------------------------");
    print(" Blank Gamemode by your name here");
    print("----------------------------------\n");
}

#endif

public OnGameModeInit()
{
    // Don't use these lines if it's a filterscript
    SetGameModeText("Blank Script");
    AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
    return 1;
}

public OnGameModeExit()
{
    return 1;
}

public OnPlayerRequestClass(playerid, classid)
{
    SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
    SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
    SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
    return 1;
}

public OnPlayerConnect(playerid)
{
    return 1;
}

public OnPlayerDisconnect(playerid, reason)
{
    return 1;
}

public OnPlayerSpawn(playerid)
{
    return 1;
}

public OnPlayerDeath(playerid, killerid, reason)
{
    return 1;
}

public OnVehicleSpawn(vehicleid)
{
    return 1;
}

public OnVehicleDeath(vehicleid, killerid)
{
    return 1;
}

public OnPlayerText(playerid, text[])
{
    return 1;
}

public OnPlayerCommandText(playerid, cmdtext[])
{
    if (strcmp("/mycommand", cmdtext, true, 10) == 0)
    {
        // Do something here
        return 1;
    }
    return 0;
}

public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
    return 1;
}

public OnPlayerExitVehicle(playerid, vehicleid)
{
    return 1;
}

public OnPlayerStateChange(playerid, newstate, oldstate)
{
    return 1;
}

public OnPlayerEnterCheckpoint(playerid)
{
    return 1;
}

public OnPlayerLeaveCheckpoint(playerid)
{
    return 1;
}

public OnPlayerEnterRaceCheckpoint(playerid)
{
    return 1;
}

public OnPlayerLeaveRaceCheckpoint(playerid)
{
    return 1;
}

public OnRconCommand(cmd[])
{
    return 1;
}

public OnPlayerRequestSpawn(playerid)
{
    return 1;
}

public OnObjectMoved(objectid)
{
    return 1;
}

public OnPlayerObjectMoved(playerid, objectid)
{
    return 1;
}

public OnPlayerPickUpPickup(playerid, pickupid)
{
    return 1;
}

public OnVehicleMod(playerid, vehicleid, componentid)
{
    return 1;
}

public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
{
    return 1;
}

public OnVehicleRespray(playerid, vehicleid, color1, color2)
{
    return 1;
}

public OnPlayerSelectedMenuRow(playerid, row)
{
    return 1;
}

public OnPlayerExitedMenu(playerid)
{
    return 1;
}

public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
{
    return 1;
}

public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
    return 1;
}

public OnRconLoginAttempt(ip[], password[], success)
{
    return 1;
}

public OnPlayerUpdate(playerid)
{
    return 1;
}

public OnPlayerStreamIn(playerid, forplayerid)
{
    return 1;
}

public OnPlayerStreamOut(playerid, forplayerid)
{
    return 1;
}

public OnVehicleStreamIn(vehicleid, forplayerid)
{
    return 1;
}

public OnVehicleStreamOut(vehicleid, forplayerid)
{
    return 1;
}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    return 1;
}

public OnPlayerClickPlayer(playerid, clickedplayerid, source)
{
    return 1;
}

GetName(playerid)
{
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, name, sizeof(name));
    return name;
}

CMD:duel(playerid, params[])
{
    new id, cash, weapon, gun, string[128];
    if(sscanf(params, "uhh", id, cash, weapon)) return SendClientMessage(playerid, -1, "Error: /duel [playerid] [money] [weaponid]");
    if(DuelOn == true) return SendClientMessage(playerid, -1, "Error: Duel is allready taking place");
    if(InDuel == true) return SendClientMessage(playerid, -1, "You're allready in a duel.");
    ClearPlayerWeapons(id);
    ClearPlayerWeapons(playerid);
    GetWeaponName(weapon, gun, sizeof(gun));
    format(string, sizeof(string), "A duel is going on with %s and %s for $%d! (Weapon: %s)", GetName(id), GetName(playerid), cash, Gun);
    //SetPlayerPos(playerid, pos here, pos here, poshere);
    //SetPlayerPos(id, pos here, pos here, poshere);
    InDuel[playerid] = true;
    InDuel[id] = true;
        SendClientMessageToAll(-1, string);
    return 1;
}
Do the rest for yourself. (Not tested)
Reply
#3

For your kind information , just copying the duel command from a filterscript won't help^. You didn't add whats on " OnPlayerDeath " "OnPlayerSpawn" "OnPlayerDisconnect" So I can't take it as a help. If someone out there can code for me , I'd be really thankful to him.
Reply
#4

We're not a whole giving code forum. That is why I said do the rest for yourself.

And that isn't a filterscript. I just coded that and gave it to you for a base.
Reply
#5

If you want someone to script for you a whole code, then this isn't the right place.
This would be the right one.
https://sampforum.blast.hk/showthread.php?tid=447813
Reply
#6

Sent you a PM
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)