SA-MP Forums

Go Back   SA-MP Forums > SA-MP Scripting and Plugins > Scripting Help

Reply
 
Thread Tools Display Modes
Old 08/09/2016, 05:30 AM   #1
Gorgeousmaniac
Big Clucker
 
Gorgeousmaniac's Avatar
 
Join Date: Aug 2016
Location: Philippines
Posts: 103
Reputation: 16
Default Error 21: Symbol already defined "OnPlayerTakeDamage"

I get this error when compiling the DM script
Code:
C:\Users\harvey\Desktop\Server\filterscripts\Untitled.pwn(479) : error 021: symbol already defined: "OnPlayerTakeDamage"
Pawn compiler 3.2.3664	 	 	Copyright (c) 1997-2006, ITB CompuPhase


1 Error.

This is the whole script.
Code:
//include
#include <a_samp>
#include <dini>
#include <dudb>
#include <zcmd>
#include <sscanf>
//-----------------------------
#pragma unused ret_memcpy
//---------------------------------
//define
#define SERVER_GM_TEXT "D-GangWars v.001"
#define COLOR_GREY 0xAFAFAFAA
#define COLOR_GREEN 0x33AA33AA
#define COLOR_ORANGE 0xFF9900AA
#define COLOR_RED 0xAA3333AA
#define COLOR_YELLOW 0xFFFF00AA
//------------------------

//teams
#define TEAM_GROVE 1
#define TEAM_Crips 2
#define TEAM_LOS_SANTOS_VAGOS 3
#define TEAM_VARIOS_LOS_AZTECAS 4
#define TEAM_LSPD 5
#define TEAM_ANARCHIST 6
#define TEAM_HOBO 7
//---------------------------
#define SERVER_USER_FILE "users/%s.ini"
#define TEAM_GROVE_COLOR 0x00FF00AA // Bright Green
#define TEAM_BALLA_COLOR 0xFF00FFAA // Bright Purple
#define TEAM_LOS_SANTOS_VAGOS_COLOR 0xAFAFAFAA // Grey
#define TEAM_VARIOS_LOS_AZTECAS_COLOR 0x33CCFFAA // Light Blue
#define TEAM_HOBO_COLOR 0x993300AA // Brown
//-------------------------

// - bones
#define BODY_PART_TORSO     (3)
#define BODY_PART_GROIN     (4)
#define BODY_PART_LEFT_ARM  (5)
#define BODY_PART_RIGHT_ARM (6)
#define BODY_PART_LEFT_LEG  (7)
#define BODY_PART_RIGHT_LEG (8)
#define BODY_PART_HEAD      (9)

enum pData
{
    pAdminLevel,
    pCash,
    pScore,
    pBan
}
new PlayerData[MAX_PLAYERS][pData];
new levels,Nam[MAX_PLAYER_NAME],pname[MAX_PLAYER_NAME],str[128],ID;
//------
new gPlayerLogged[MAX_PLAYERS];
new gTeam[MAX_PLAYERS];
new gPlayerClass[MAX_PLAYERS];
//-----
enum TeamCars
{
Bloods,
LSPD,
Hobo,
Crips,
ANARCHIST,
Cops,
AZTECAS

}
new Cars[TeamCars];

//forwards
forward SetupPlayerForClassSelection(playerid);
forward OnPlayerHeadShot(playerid, issuerid, Float:amount);
forward OnPlayerTakeDamage(playerid, issuerid, Float:amount, weaponid, bodypart);
forward OnPlayerGiveDamage(playerid, damagedid, Float: amount, weaponid);
forward OnPlayerWeaponShot( playerid, weaponid, hittype, hitid, Float: fX, Float: fY, Float: fZ );

public OnPlayerConnect(playerid)
{
    SendClientMessage(playerid, COLOR_ORANGE,"====================[Welcome]==================");
    SendClientMessage(playerid, COLOR_GREY,"Welcome to Los Santos Team Deathmatch.");
    // SendClientMessage(playerid, COLOR_GREY,"Use you command for help and your command to see the rules.");
    SendClientMessage(playerid, COLOR_ORANGE,"================================================");

    gPlayerLogged[playerid] = 0;
    new name[MAX_PLAYER_NAME], file[256];
    GetPlayerName(playerid, name, sizeof(name));
    format(file, sizeof(file), SERVER_USER_FILE, name);
    if (!dini_Exists(file))
    {
        ShowPlayerDialog(playerid, 1, DIALOG_STYLE_INPUT, "Hi you're not registered", "Welcome, You are not registered in our database, enter your password below", "Register", "Leave");
    }
    if(fexist(file))
    {
        ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "You are registered", "Enter your password below", "Login", "Leave");
    }
    return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
    new name[MAX_PLAYER_NAME], file[256];
    GetPlayerName(playerid, name, sizeof(name));
    format(file, sizeof(file), SERVER_USER_FILE, name);
    if(gPlayerLogged[playerid] == 1)
    {
        dini_IntSet(file, "Score", PlayerData[playerid][pScore]);
        dini_IntSet(file, "Money", PlayerData[playerid][pCash]);
        dini_IntSet(file, "AdminLevel",PlayerData[playerid][pAdminLevel]);
        dini_IntSet(file, "Banned", PlayerData[playerid][pBan]);
    }
    gPlayerLogged[playerid] = 0;
    return 1;
}
public OnGameModeInit()
{
    SetGameModeText ("LS-TDM Rev 3.1");
    SetTeamCount(2);
    Cars[Bloods]= AddPlayerClass(19, 2494.5767,-1686.1864,13.5129,355.7687,0,0,0,0,0,0); // Bloods
    Cars[Bloods]= AddStaticVehicle(566,2504.6165,-1682.2120,13.1676,11.5484,3,3);  //bloodscar0
    Cars[Bloods]= AddStaticVehicle(566,2508.5613,-1679.7991,13.3848,10.1013,3,3); // bloodscar1
    Cars[Bloods]= AddStaticVehicle(560,2499.1650,-1683.3696,13.0231,11.1869,3,3); // bloodscar2
    Cars[Bloods]= AddStaticVehicle(560,2491.1704,-1682.9939,13.2519,3.8113,3,3); // bloodscar3
    Cars[Bloods]= AddStaticVehicle(536,2486.7319,-1683.1348,13.2257,6.0132,3,3); // bloodscar4
    Cars[Bloods]= AddStaticVehicle(536,2512.3042,-1676.9368,13.1989,11.6676,3,3); // bloodscar5
    Cars[Bloods]= AddStaticVehicle(475,2483.3882,-1682.8966,13.0427,1.4005,3,3); // bloodscar6
    Cars[Bloods]= AddStaticVehicle(468,2513.1646,-1670.0023,13.0755,102.7341,3,3); // bloodsbike1
    Cars[Bloods]= AddStaticVehicle(468,2512.9490,-1666.9865,13.1306,91.7290,3,3); // bloodsbike2
    Cars[Bloods]= AddStaticVehicle(468,2512.5134,-1663.8923,13.1505,90.4309,3,3); // bloodsbike3

    Cars[Crips]= AddPlayerClass(143, 1999.8833,-1120.6167,26.7746,181.6846,0,0,0,0,0,0); //Crips
    Cars[Crips]= AddStaticVehicle(566,1948.2378,-1131.5389,25.4572,90.2552,79,79); // cripscar0
    Cars[Crips]= AddStaticVehicle(566,1941.4482,-1131.4258,25.2050,90.5242,79,79); // cripscar1
    Cars[Crips]= AddStaticVehicle(560,1934.8057,-1131.4783,24.9225,91.1032,79,79); // cripscar2
    Cars[Crips]= AddStaticVehicle(560,1927.4950,-1131.5046,24.7885,90.1411,79,79); // cripscar3
    Cars[Crips]= AddStaticVehicle(536,1921.0233,-1131.7767,24.6739,90.1544,79,79); // cripscar4
    Cars[Crips]= AddStaticVehicle(536,1944.6661,-1143.2561,25.1773,353.6760,79,79); // cripsbike1
    Cars[Crips]= AddStaticVehicle(471,1937.8147,-1143.0463,24.9998,359.4231,79,79); // cripsbike2
    Cars[Crips]= AddStaticVehicle(471,1941.4227,-1143.1160,25.0893,2.3917,79,79); // cripsbike3

    Cars[AZTECAS]= AddPlayerClass(116,2522.2378,-2000.4359,13.5469,128.5352,0,0,0,0,0,0);  //Aztecas
    Cars[AZTECAS]= AddStaticVehicle(566,1844.2039,-1927.9865,13.1998,89.6847,116,116); // aztecascar0
    Cars[AZTECAS]= AddStaticVehicle(566,1837.5275,-1928.0200,13.1228,89.8919,116,116); // aztecascar1
    Cars[AZTECAS]= AddStaticVehicle(560,1851.5607,-1928.0968,13.1904,90.1852,116,116); // aztecascar2
    Cars[AZTECAS]= AddStaticVehicle(536,1857.9548,-1927.9910,13.0882,89.1671,116,116); // aztecascar3
    Cars[AZTECAS]= AddStaticVehicle(536,1864.5150,-1927.9908,13.1197,89.4659,116,116); // aztecascar4
    Cars[AZTECAS]= AddStaticVehicle(468,1845.3577,-1939.6879,13.0989,358.2544,116,116); // aztecasbike1
    Cars[AZTECAS]= AddStaticVehicle(468,1848.4471,-1939.7332,13.1173,358.5280,116,116); // aztecasbike2
    Cars[AZTECAS]= AddStaticVehicle(468,1852.2606,-1939.7489,13.1123,0.9635,116,116); // aztecasbike3


    Cars[LSPD]= AddPlayerClass(265,1550.6207,-1675.7418,15.4894,86.4241,0,0,0,0,0,0); //Tenpenny
    Cars[LSPD]= AddStaticVehicle(427,1534.0969,-1686.4365,13.5910,179.3800,0,1); // LSPDTRUCK1
    Cars[LSPD]= AddStaticVehicle(596,1533.9149,-1661.6329,13.1821,179.4230,0,1); // LSPDCAR1
    Cars[LSPD]= AddStaticVehicle(596,1533.9535,-1648.1016,13.1825,181.0566,0,1); // LSPDCAR2
    Cars[LSPD]= AddStaticVehicle(596,1534.2207,-1638.7291,13.1814,178.9015,0,1); // LSPDCAR3
    Cars[LSPD]= AddStaticVehicle(523,1542.1992,-1683.5516,13.1198,93.8415,0,0); // LSPDBIKE1
    Cars[LSPD]= AddStaticVehicle(523,1542.2690,-1667.6261,13.1238,90.6924,0,0); // LSPDBIKE2

    Cars[ANARCHIST]= AddPlayerClass(247,1304.3652,-1091.9817,25.7654,177.3955,0,0,0,0,0,0);//biker
    Cars[ANARCHIST]= AddStaticVehicle(566,1297.8812,-1099.4774,25.6601,180.3320,7,121); // bikerCAR1
    Cars[ANARCHIST]= AddStaticVehicle(560,1301.1383,-1100.0808,25.7716,182.8269,0,74); // bikerCAR2
    Cars[ANARCHIST]= AddStaticVehicle(463,1306.7966,-1100.1927,25.2962,184.3666,6,25); // bikerBIKE1
    Cars[ANARCHIST]= AddStaticVehicle(463,1304.4956,-1099.9102,25.3941,181.8885,45,60); // bikerBIKE2
    Cars[ANARCHIST]= AddStaticVehicle(445,1314.0208,-1100.9015,25.5036,177.5006,47,21); // bikerCAR4

    Cars[Hobo]= AddPlayerClass(137,2536.4011,-2049.3030,13.5500,85.0934,0,0,0,0,0,0); //Hobo
    Cars[Hobo]= AddStaticVehicle(604,2536.8438,-2056.4309,13.5500,358.9964,1,1); //HOBOCAR
    Cars[Hobo]= AddStaticVehicle(462,2545.8027,-2050.4395,13.5500,91.1173,1,1); //HOBOCAR1
    Cars[Hobo]= AddStaticVehicle(462,2545.1934,-2048.0740,13.5500,98.6374,1,1); //HOBOCAR2
    Cars[Hobo]= AddStaticVehicle(605,2537.3225,-2041.9825,13.5500,186.0816,1,1); //HOBOCAR3
    return 1;
}
public OnPlayerRequestClass(playerid, classid)
{
    SetPlayerClass(playerid, classid);
    SetupPlayerForClassSelection(playerid);
    gPlayerClass[playerid] = classid;

    switch (classid)
       {

        case 0:
            {
                GameTextForPlayer(playerid, "~r~Bloods", 500, 6);
                SetPlayerColor(playerid,COLOR_RED);
            }

       case 1:
            {
                GameTextForPlayer(playerid, "~b~Crips", 500, 6);
                SetPlayerColor(playerid,0xFF00FFAA); // 0xFF00FFAA
            }

       case 2:
            {
                GameTextForPlayer(playerid,"~b~~h~~h~Aztecas",500,6);
            }

       case 3:
            {
                GameTextForPlayer(playerid,"LSPD",500,6);
            }
       case 4:
            {
                GameTextForPlayer(playerid,"~r~Bikers",500,6);
            }
       case 5:
            {
                GameTextForPlayer(playerid,"~y~Hobo",500,6);
            }
       }

    return 1;

 }

SetPlayerClass(playerid, classid)
{
    switch(classid)
    {
        case 0..3: gTeam[playerid] = TEAM_GROVE;
        case 4..6: gTeam[playerid] = TEAM_Crips;
        case 7..9: gTeam[playerid] = TEAM_LOS_SANTOS_VAGOS;
        case 10..13: gTeam[playerid] = TEAM_VARIOS_LOS_AZTECAS;
        case 14..16: gTeam[playerid] = TEAM_LSPD;
        case 17..19: gTeam[playerid] = TEAM_ANARCHIST;
        case 20..23: gTeam[playerid] = TEAM_HOBO;

    }
    return 1;
}

public OnPlayerRequestSpawn(playerid)
{
    SetupPlayerForClassSelection(playerid);
    return 1;
}

public SetupPlayerForClassSelection(playerid)

{

    SetPlayerInterior(playerid,0);
    SetPlayerPos(playerid,1969.6920,-1199.5493,25.2605);
    SetPlayerCameraPos(playerid,1971.6920,-1205.5493,26.2605);
    SetPlayerCameraLookAt(playerid,1969.6920,-1199.5493,25.2605);

    ApplyAnimation(playerid,"GANGS","prtial_gngtlkB",4.1,0,0,0,0,0);
}
//admin commands
CMD:makeadmin(playerid, params[])
{
    if(!IsPlayerAdmin(playerid))return 0; //This command only works for rcon
    if(sscanf(params,"ui",ID,levels)) return SendClientMessage(playerid,0xFF9900AA, "USAGE: /setadmin [ID] [Level 1-6]");//it will show this if you dont use the format properly
    if(levels > 6) return SendClientMessage(playerid,0xFF0000FF,"LEVELS AVAILABLE 1-6!");//Available levels
    if(!IsPlayerConnected(ID))return SendClientMessage(playerid,COLOR_GREY,"That user is not connected.");//Detect if the id/partofname is connected
    if(PlayerData[ID][pAdminLevel] == levels) return SendClientMessage(playerid,0xFF0000FF, "ERROR: That person is already this admin level!");//Detect if the guy is already the level you setted
    GetPlayerName(playerid,Nam, MAX_PLAYER_NAME);//define the playerid name
    GetPlayerName(ID,pname,MAX_PLAYER_NAME);//define the other person name
    if(levels == 0)
    {
        format(str, sizeof(str),"%s has your Admin level to %d on the server.",Nam,levels);
        SendClientMessage(ID,0xFF9900AA,str);
        format(str, sizeof(str),"You had set %s Admin level to %d!",pname,levels);
        SendClientMessage(playerid,0xFF9900AA,str);
        PlayerData[ID][pAdminLevel] = levels;//this sets the player level
        return 1;
    }
    format(str, sizeof(str),"%s has your Admin level to %d on the server.",Nam,levels);
    SendClientMessage(ID,0xFF9900AA,str);
    format(str, sizeof(str),"You had set %s Admin level to %d!",pname,levels);
    SendClientMessage(playerid,0xFF9900AA,str);
    PlayerData[ID][pAdminLevel] = levels;
    return 1;
}

CMD:apm(playerid, params[])
{
    new str2[128], id;
    if(PlayerData[playerid][pAdminLevel] < 1) return SendClientMessage(playerid, COLOR_GREY, "You are not authorized to use this command.");
    if(sscanf(params, "us[128]", id, str2)) return SendClientMessage(playerid, COLOR_GREY, "Usage: /apm [ID] [MESSAGE]");
    if(!IsPlayerConnected(id)) return SendClientMessage(playerid, COLOR_GREY, "ERROR: Player Isnt Connected");
    if(playerid == id) return SendClientMessage(playerid, COLOR_GREY, "You can't send your self a message");
    new Name1[MAX_PLAYER_NAME], Name2[MAX_PLAYER_NAME], string[256];
    GetPlayerName(playerid, Name1, sizeof(Name1));
    GetPlayerName(id, Name2, sizeof(Name2));
    format(str, sizeof(str), "%s has APMed %s: %s", Name1, Name2, str2);
    SendClientMessage(playerid,COLOR_ORANGE, string);
    format(str, sizeof(str), "Admin: %s", str2);
    SendClientMessage(id, COLOR_RED, str);
    return 1;
}
CMD:kill(playerid, params[])
{
    SetPlayerHealth(playerid,0);
    SendClientMessage(playerid, COLOR_RED, "You have killed yourself.");
    return 1;
}

CMD:veh(playerid, params[])
{
    if(PlayerData[playerid][pAdminLevel] < 1) return SendClientMessage(playerid, COLOR_RED, " ** You must be a level 1 Admin to use that! ");
    if(isnull(params)) return SendClientMessage(playerid, COLOR_RED, "Use /veh [vehicle id]");
    if(strval(params) < 400 || strval(params) > 611) return SendClientMessage(playerid, COLOR_RED, "Invalid vehicle model.");
    new Float:x, Float:y, Float:z;
    GetPlayerPos(playerid, x, y, z);
    CreateVehicle(strval(params), x+2, y+2, z, 90.0, 0, 0, 0);
    return 1;
}
/*CMD:me(playerid, params[])
{
    new str2[128];
    new Name1[MAX_PLAYER_NAME];
    GetPlayerName(playerid, Name1, sizeof(Name1));
    if(sscanf(params, "us[128]", str2)) return SendClientMessage(playerid, COLOR_GREY, "Usage: /me [action]");
    GetPlayerName(playerid, str, sizeof(str));
    format(str, sizeof(str), "* %s %s", Name1, str2);
    SendClientMessageToAll(0xFFFF00AA, str2);
    return 1;
}*/
CMD:me(playerid, params[])
{
    if(isnull(params)) return SendClientMessage(playerid, 0xFFFFFFFF, "/me [text]");
    new
        string[128],
        pName[28 char]
    ;
    GetPlayerName(playerid, pName, sizeof(pName));
    format(string, sizeof(string), "* %s %s *", pName, params);
    return SendClientMessageToAll(0xFFFFFFFF, string);
}
CMD:vehdestroy(playerid, params[])
{
    if(PlayerData[playerid][pAdminLevel] < 1) return SendClientMessage(playerid, COLOR_GREY, "You are not authorized to use this command.");
    if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return SendClientMessage(playerid, COLOR_GREY, "You must be inside a vehicle to destroy it.");
    new testcar= GetPlayerVehicleID(playerid);
    SendClientMessage(playerid, 0xFFFFFFFF, "You have deleted a car!!");
    DestroyVehicle(testcar);
    return 1;
}

CMD:givegun(playerid, params[])
{
    new id, gun, ammo;
    if(PlayerData[playerid][pAdminLevel] < 1) return SendClientMessage(playerid, COLOR_RED, " ** You must be a level 1 Admin to use that! ");
    if(sscanf(params,"uii", id, gun, ammo)) return SendClientMessage(playerid, -1,"USAGE: /givegun [playerid/partofname] [gunid] [ammo]");
    if(gun > 47 || gun < 1) return SendClientMessage(playerid, -1,"GUN ID'S: 1-47");
    if(ammo > 999 || ammo < 1) return SendClientMessage(playerid, -1,"Ammo 1-999");
    GivePlayerWeapon(id, gun, ammo);
    return 1;
}

CMD:kick(playerid, params[])
{
        if(PlayerData[playerid][pAdminLevel] >= 1) {
        new PID; //define the playerid we wanna kick
        new reason[64]; //the reason, put into a string
        new string[128]; //a new message string
        new name1[MAX_PLAYERS], name2[MAX_PLAYERS];
        if(sscanf(params, "us[64]", PID,reason)) return SendClientMessage(playerid, COLOR_GREY, "USAGE: /kick [playerid] [reason]"); //tell sscanf if the parameters/the syntax is written wrong to return a message (PID and the reason used here)
        if(!IsPlayerConnected(PID)) // if the ID is wrong or not connected, return a message! (PID used here)
        return SendClientMessage(playerid, COLOR_GREY, "Player is not connected!");
        format(str, sizeof(str), "'%s' has been kicked by administrator '%s'. Reason: %s ", name2, name1, reason); //format the string we've defined to send the message, playername and adminname are used to receive the information about the names
        SendClientMessageToAll(COLOR_RED, string); //send that message to all
        SetTimer("kick", 500, false);
        Kick(PID); //kick the playerid we've defined
        }
        else //if he has not got the permissions
        {
            SendClientMessage(playerid, COLOR_GREY, "You have to be level 3 to use that command!"); //return this message
        }
        return 1;
}
CMD:ban(playerid, params[])
{
        if(PlayerData[playerid][pAdminLevel] >= 1) {
        new PID; //define the playerid we wanna kick
        new reason[64]; //the reason, put into a string
        new string[128]; //a new message string
        new name1[MAX_PLAYERS], name2[MAX_PLAYERS];
        if(sscanf(params, "us[64]", PID,reason)) return SendClientMessage(playerid, COLOR_GREY, "USAGE: /kick [playerid] [reason]"); //tell sscanf if the parameters/the syntax is written wrong to return a message (PID and the reason used here)
        if(!IsPlayerConnected(PID)) // if the ID is wrong or not connected, return a message! (PID used here)
        return SendClientMessage(playerid, COLOR_GREY, "Player is not connected!");
        format(str, sizeof(str), "'%s' has been banned by administrator '%s'. Reason: %s ", name2, name1, reason); //format the string we've defined to send the message, playername and adminname are used to receive the information about the names
        SendClientMessageToAll(COLOR_RED, string); //send that message to all
        SetTimer("kick", 500, false);
        Ban(PID); //kick the playerid we've defined
        }
        else //if he has not got the permissions
        {
            SendClientMessage(playerid, COLOR_GREY, "You have to be level 3 to use that command!"); //return this message
        }
        return 1;
}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    if (dialogid == 1)
    {
        new name[MAX_PLAYER_NAME], file[256], string[128];
        GetPlayerName(playerid, name, sizeof(name));
        format(file, sizeof(file), SERVER_USER_FILE, name);
        if(!response) return Kick(playerid);
        if (!strlen(inputtext)) return
        ShowPlayerDialog(playerid, 1, DIALOG_STYLE_INPUT, "Hi your not registered", "Welcome, You are not registrated, enter your password below", "Register", "Leave");
        dini_Create(file);
        dini_IntSet(file, "Password", udb_hash(inputtext));
        dini_IntSet(file, "AdminLevel",PlayerData[playerid][pAdminLevel] = 0);
        dini_IntSet(file, "Money",PlayerData[playerid][pCash] = 4500);
        dini_IntSet(file, "Score",PlayerData[playerid][pScore] = 0);
        dini_IntSet(file, "Banned",PlayerData[playerid][pBan] = 0);
        format(string, 128, "[SYSTEM]: You succesfully registered the nickname %s with password %s, you have been auto logged in.", name, inputtext);
        SendClientMessage(playerid, COLOR_YELLOW, string);
        gPlayerLogged[playerid] = 1;
    }
    if (dialogid == 2)
    {
        new name[MAX_PLAYER_NAME], file[256];
        GetPlayerName(playerid, name, sizeof(name));
        format(file, sizeof(file), SERVER_USER_FILE, name);
        if(!response) return Kick(playerid);
        if (!strlen(inputtext)) return ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "You are registered", "Enter your password below", "Login", "Leave");
        new tmp;
        tmp = dini_Int(file, "Password");
        if(udb_hash(inputtext) != tmp) {
            SendClientMessage(playerid, COLOR_RED, "Incorrect Password.");
            ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "You are registrated", "Enter your password below", "Login", "Leave");
        }
        else
        {
            gPlayerLogged[playerid] = 1;
            PlayerData[playerid][pAdminLevel] = dini_Int(file, "AdminLevel");
            SetPlayerScore(playerid, PlayerData[playerid][pScore]);
            GivePlayerMoney(playerid, dini_Int(file, "Money")-GetPlayerMoney(playerid));
            SendClientMessage(playerid,COLOR_RED, "[SYSTEM]: Successfully logged in!");
        }
    }
    return 1;
}
public OnPlayerDeath(playerid, killerid, reason)
{
    SendDeathMessage(killerid, playerid, reason);
    GivePlayerMoney(killerid, 250); // + 250
    // SetPlayerScore(killerid, + 1);
    SetPlayerScore(killerid, PlayerData[killerid][pScore] + 1);
    return 1;
}
public OnPlayerSpawn(playerid)
{
    GivePlayerWeapon(playerid,24,500);
    if(gTeam[playerid] != 1)
    {
        //RemovePlayerFromVehicle(playerid);
        SetPlayerColor(playerid,0xFF00FFAA);
        return 1;
    }
    if(gTeam[playerid] != 2)
    {
        //RemovePlayerFromVehicle(playerid);
        SetPlayerColor(playerid,COLOR_GREEN);
        return 1;
    }
    return 1;
}


public OnPlayerTakeDamage(playerid, issuerid, Float: amount, weaponid)
{
    new Float:HP;
    GetPlayerHealth(playerid, HP);
    if(weaponid == 24) SetPlayerHealth(playerid, HP-45);//DesertEagle
    if(weaponid == 31) SetPlayerHealth(playerid, HP-30);//M4
    if(weaponid == 34) SetPlayerHealth(playerid, HP-100);//SniperRifle
    if(weaponid == 25) SetPlayerHealth(playerid, HP-60);//PumpShotgun
    return 1;
}
public OnPlayerTakeDamage(playerid, issuerid, Float:amount, weaponid, bodypart)
{
    if(bodypart == BODY_PART_HEAD)
    {
        if(issuerid == INVALID_PLAYER_ID && playerid == INVALID_PLAYER_ID) return 0;
        return CallLocalFunction("OnPlayerHeadShot", "iif", playerid, issuerid, amount);
    }
    return true;
}

public OnPlayerGiveDamage(playerid, damagedid, Float: amount, weaponid)
{
    PlayerPlaySound(playerid, 17802, 0.0, 0.0, 0.0); // Ding Sound
    return 1;
}

public OnPlayerStateChange(playerid, newstate, oldstate)
{
    if(newstate==PLAYER_STATE_PASSENGER)
    {
        new gun,tmp;
        GetPlayerWeaponData(playerid,4,gun,tmp);
        #pragma unused tmp
        if(gun)SetPlayerArmedWeapon(playerid,gun);
        else SetPlayerArmedWeapon(playerid,0);
    }
    return 1;
}

new
    gLastShot[ MAX_PLAYERS ];

#define HOLDING(%0) \
    ((newkeys & (%0)) == (%0))

public OnPlayerKeyStateChange( playerid, newkeys, oldkeys )
{
    if ( ( tickcount( ) - gLastShot[ playerid ] ) < 750 )
    {
        if ( HOLDING( KEY_JUMP | KEY_SPRINT | KEY_CROUCH ) )
        {
            new
                Float: pPos[ 3 ];
            GetPlayerPos( playerid, pPos[ 0 ], pPos[ 1 ], pPos[ 2 ] );
            SetPlayerPos( playerid, pPos[ 0 ], pPos[ 1 ], pPos[ 2 ] + 10.0 );

            GameTextForPlayer( playerid, "~r~Stop c-bugging fool!", 1000, 3 );

            gLastShot[ playerid ] = -1;

            return 1;
        }
        if ( newkeys & KEY_CROUCH )
        {
            SetTimerEx( "__check", 200, false, "i", playerid );
        }
    }

    return 1;
}

forward __check( playerid );
public __check( playerid )
{
    if ( GetPlayerSpecialAction( playerid ) == SPECIAL_ACTION_DUCK )
        return 1;

    new
        Float: pPos[ 3 ];
    GetPlayerPos( playerid, pPos[ 0 ], pPos[ 1 ], pPos[ 2 ] );
    SetPlayerPos( playerid, pPos[ 0 ], pPos[ 1 ], pPos[ 2 ] + 10.0 );

    GameTextForPlayer( playerid, "~r~Stop c-bugging fool!!", 1000, 3 );

    gLastShot[ playerid ] = -1;

    return 1;
}

public OnPlayerWeaponShot( playerid, weaponid, hittype, hitid, Float: fX, Float: fY, Float: fZ )
{
    gLastShot[ playerid ] = tickcount( );

    return 1;
}

public OnPlayerHeadShot(playerid, issuerid, Float:amount)
{
    new
        up_string[ 128 ],
        pk_string[ 128 char ],
        pName[ MAX_PLAYER_NAME ];
    GetPlayerName(issuerid, pName, sizeof(pName));

    strunpack(up_string, pk_string);

    format(up_string, sizeof(up_string), "[DEBUG] - Headshot detected executed by %s[%i] - damage %.3f", pName, playerid, amount);
    SendClientMessage(playerid, -1, up_string);

    return strpack(up_string, pk_string);
}
Gorgeousmaniac is offline   Reply With Quote
Old 08/09/2016, 05:37 AM   #2
JordanZaundd
Little Clucker
 
Join Date: Feb 2014
Posts: 44
Reputation: 3
Default Re: Error 21: Symbol already defined "OnPlayerTakeDamage"

You have two OnPlayerTakeDamage declarations:
PHP Code:
public OnPlayerTakeDamage(playeridissueridFloatamountweaponid)
{
    new 
Float:HP;
    
GetPlayerHealth(playeridHP);
    if(
weaponid == 24SetPlayerHealth(playeridHP-45);//DesertEagle
    
if(weaponid == 31SetPlayerHealth(playeridHP-30);//M4
    
if(weaponid == 34SetPlayerHealth(playeridHP-100);//SniperRifle
    
if(weaponid == 25SetPlayerHealth(playeridHP-60);//PumpShotgun
    
return 1;
}
public 
OnPlayerTakeDamage(playeridissueridFloat:amountweaponidbodypart)
{
    if(
bodypart == BODY_PART_HEAD)
    {
        if(
issuerid == INVALID_PLAYER_ID && playerid == INVALID_PLAYER_ID) return 0;
        return 
CallLocalFunction("OnPlayerHeadShot""iif"playeridissueridamount);
    }
    return 
true;

__________________
JordanZaundd is offline   Reply With Quote
Old 08/09/2016, 05:38 AM   #3
Gorgeousmaniac
Big Clucker
 
Gorgeousmaniac's Avatar
 
Join Date: Aug 2016
Location: Philippines
Posts: 103
Reputation: 16
Default Re: Error 21: Symbol already defined "OnPlayerTakeDamage"

Quote:
Originally Posted by JordanZaundd View Post
You have two OnPlayerTakeDamage declarations:
PHP Code:
public OnPlayerTakeDamage(playeridissueridFloatamountweaponid)
{
    new 
Float:HP;
    
GetPlayerHealth(playeridHP);
    if(
weaponid == 24SetPlayerHealth(playeridHP-45);//DesertEagle
    
if(weaponid == 31SetPlayerHealth(playeridHP-30);//M4
    
if(weaponid == 34SetPlayerHealth(playeridHP-100);//SniperRifle
    
if(weaponid == 25SetPlayerHealth(playeridHP-60);//PumpShotgun
    
return 1;
}
public 
OnPlayerTakeDamage(playeridissueridFloat:amountweaponidbodypart)
{
    if(
bodypart == BODY_PART_HEAD)
    {
        if(
issuerid == INVALID_PLAYER_ID && playerid == INVALID_PLAYER_ID) return 0;
        return 
CallLocalFunction("OnPlayerHeadShot""iif"playeridissueridamount);
    }
    return 
true;

How do I fix it? I don't know how to put two functions under a callback..
Gorgeousmaniac is offline   Reply With Quote
Old 08/09/2016, 05:42 AM   #4
Dice_
Huge Clucker
 
Dice_'s Avatar
 
Join Date: Sep 2015
Location: Indonesia
Posts: 409
Reputation: 48
Default Re: Error 21: Symbol already defined "OnPlayerTakeDamage"

PHP Code:
public OnPlayerTakeDamage(playeridissueridFloatamountweaponid

    new 
Float:HP
    
GetPlayerHealth(playeridHP); 
    if(
weaponid == 24SetPlayerHealth(playeridHP-45);//DesertEagle 
    
if(weaponid == 31SetPlayerHealth(playeridHP-30);//M4 
    
if(weaponid == 34SetPlayerHealth(playeridHP-100);//SniperRifle 
    
if(weaponid == 25SetPlayerHealth(playeridHP-60);//PumpShotgun 
    
if(bodypart == BODY_PART_HEAD
    { 
        if(
issuerid == INVALID_PLAYER_ID && playerid == INVALID_PLAYER_ID) return 0
        return 
CallLocalFunction("OnPlayerHeadShot""iif"playeridissueridamount); 
    } 
    return 
1

__________________
quit
Dice_ is offline   Reply With Quote
Old 08/09/2016, 05:43 AM   #5
Gorgeousmaniac
Big Clucker
 
Gorgeousmaniac's Avatar
 
Join Date: Aug 2016
Location: Philippines
Posts: 103
Reputation: 16
Default Re: Error 21: Symbol already defined "OnPlayerTakeDamage"

Quote:
Originally Posted by Dice_ View Post
PHP Code:
public OnPlayerTakeDamage(playeridissueridFloatamountweaponid

    new 
Float:HP
    
GetPlayerHealth(playeridHP); 
    if(
weaponid == 24SetPlayerHealth(playeridHP-45);//DesertEagle 
    
if(weaponid == 31SetPlayerHealth(playeridHP-30);//M4 
    
if(weaponid == 34SetPlayerHealth(playeridHP-100);//SniperRifle 
    
if(weaponid == 25SetPlayerHealth(playeridHP-60);//PumpShotgun 
    
if(bodypart == BODY_PART_HEAD
    { 
        if(
issuerid == INVALID_PLAYER_ID && playerid == INVALID_PLAYER_ID) return 0
        return 
CallLocalFunction("OnPlayerHeadShot""iif"playeridissueridamount); 
    } 
    return 
1

Thank you! +rep
Gorgeousmaniac is offline   Reply With Quote
Old 08/09/2016, 05:45 AM   #6
Gorgeousmaniac
Big Clucker
 
Gorgeousmaniac's Avatar
 
Join Date: Aug 2016
Location: Philippines
Posts: 103
Reputation: 16
Default Re: Error 21: Symbol already defined "OnPlayerTakeDamage"

Quote:
Originally Posted by Dice_ View Post
PHP Code:
public OnPlayerTakeDamage(playeridissueridFloatamountweaponid

    new 
Float:HP
    
GetPlayerHealth(playeridHP); 
    if(
weaponid == 24SetPlayerHealth(playeridHP-45);//DesertEagle 
    
if(weaponid == 31SetPlayerHealth(playeridHP-30);//M4 
    
if(weaponid == 34SetPlayerHealth(playeridHP-100);//SniperRifle 
    
if(weaponid == 25SetPlayerHealth(playeridHP-60);//PumpShotgun 
    
if(bodypart == BODY_PART_HEAD
    { 
        if(
issuerid == INVALID_PLAYER_ID && playerid == INVALID_PLAYER_ID) return 0
        return 
CallLocalFunction("OnPlayerHeadShot""iif"playeridissueridamount); 
    } 
    return 
1

Why isn't body part included in public OnPlayerTakeDamage(playerid, issuerid, Float: amount, weaponid) ?
Gorgeousmaniac is offline   Reply With Quote
Old 08/09/2016, 05:47 AM   #7
Gorgeousmaniac
Big Clucker
 
Gorgeousmaniac's Avatar
 
Join Date: Aug 2016
Location: Philippines
Posts: 103
Reputation: 16
Default Re: Error 21: Symbol already defined "OnPlayerTakeDamage"

Quote:
Originally Posted by Dice_ View Post
PHP Code:
public OnPlayerTakeDamage(playeridissueridFloatamountweaponid

    new 
Float:HP
    
GetPlayerHealth(playeridHP); 
    if(
weaponid == 24SetPlayerHealth(playeridHP-45);//DesertEagle 
    
if(weaponid == 31SetPlayerHealth(playeridHP-30);//M4 
    
if(weaponid == 34SetPlayerHealth(playeridHP-100);//SniperRifle 
    
if(weaponid == 25SetPlayerHealth(playeridHP-60);//PumpShotgun 
    
if(bodypart == BODY_PART_HEAD
    { 
        if(
issuerid == INVALID_PLAYER_ID && playerid == INVALID_PLAYER_ID) return 0
        return 
CallLocalFunction("OnPlayerHeadShot""iif"playeridissueridamount); 
    } 
    return 
1

It gets me the error now.
Code:
C:\Users\harvey\Desktop\Server\filterscripts\Untitled.pwn(476) : error 017: undefined symbol "bodypart"
Pawn compiler 3.2.3664	 	 	Copyright (c) 1997-2006, ITB CompuPhase


1 Error.
Gorgeousmaniac is offline   Reply With Quote
Old 08/09/2016, 05:51 AM   #8
Dice_
Huge Clucker
 
Dice_'s Avatar
 
Join Date: Sep 2015
Location: Indonesia
Posts: 409
Reputation: 48
Default Re: Error 21: Symbol already defined "OnPlayerTakeDamage"

Update your Server Package with the newer one.
EDIT: your OnPlayerTakeDamage should look like this

PHP Code:
public OnPlayerTakeDamage(playeridissueridFloatamountweaponidbodypart
__________________
quit
Dice_ is offline   Reply With Quote
Old 08/09/2016, 06:00 AM   #9
Gorgeousmaniac
Big Clucker
 
Gorgeousmaniac's Avatar
 
Join Date: Aug 2016
Location: Philippines
Posts: 103
Reputation: 16
Default Re: Error 21: Symbol already defined "OnPlayerTakeDamage"

Quote:
Originally Posted by Dice_ View Post
Update your Server Package with the newer one.
EDIT: your OnPlayerTakeDamage should look like this

PHP Code:
public OnPlayerTakeDamage(playeridissueridFloatamountweaponidbodypart
Yup, I just added bodypart to it, it works now, Thanks!
Gorgeousmaniac is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
error 021: symbol already defined: "Audio_OnGameModeInit" :"( krasjahn1023 Scripting Help 2 17/10/2014 11:47 AM
HELP - error 021: symbol already defined: "Audio_SetPosition" Kenny365 Scripting Help 1 10/10/2014 05:51 PM
error 021: symbol already defined: "SetTimerEx" Slicebook Scripting Help 3 06/04/2014 05:18 PM
E:\WFG-RP\gamemodes\WFG-RP.pwn(112840) : error 021: symbol already defined: "S@@_OnObjectMoved" vothanhdat Scripting Help 1 07/01/2014 01:13 PM
[Ajuda] error 025: function heading differs from prototype e error 021: symbol already defined: "GetPlayerSpeed" Shum493 Portuguęs/Portuguese 6 11/08/2012 02:13 PM


All times are GMT. The time now is 06:14 AM.


Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.