What? function heading differs from prototype
#1

(4787 : error 025: function heading differs from prototype
PHP код:
public OnPlayerShootPlayer(shootertargetFloat:damage)
{
    
FuncLog("OnPlayerShootPlayer");
    new 
weaponid GetPlayerWeapon(shooter);
    if(
weaponid == 23 && IsACop(shooter) && OnDuty[shooter])
    {
        
GameTextForPlayer(target"~r~Tazed"25003);
        
ApplyAnimation(target,"CRACK","crckdeth4",1,1,0,0,0,0);
        
ApplyAnimation(target,"CRACK","crckdeth4",1,1,0,0,0,0);
        
TogglePlayerControllable(target0);
        
PlayerCuffed[target] = 1;
        
PlayerCuffedTime[target] = 11;
        new 
Float:health;
        
GetPlayerHealth(targethealth);
        
SetPlayerHealth(targethealth+damage);
        
PlayerMuteInfo[shooter][TazerCool] = 15;
        if(
PlayerInfo[shooter][pMember] == && PlayerInfo[shooter][pRank] <= || PlayerInfo[shooter][pMember] == && PlayerInfo[shooter][pRank] <= || PlayerInfo[shooter][pMember] == && PlayerInfo[shooter][pRank] <= 2)
        {
            
GivePlayerWeaponEx(shooter22TmpAmmo[shooter][0]);
        }
        else
        {
            
GivePlayerWeaponEx(shooter24TmpAmmo[shooter][0]);
        }
        return 
1;
    }
    return 
1;

Reply
#2

Try forward OnPlayerShootPlayer(shooter, target, Float:damage); .
Reply
#3

Quote:
Originally Posted by Thogy
Посмотреть сообщение
Try forward OnPlayerShootPlayer(shooter, target, Float:damage); .
Pawno stops working
Reply
#4

Do you have OPSP.inc in your /pawno/include folder?

Do you have
pawn Код:
#include <OPSP>
at the top of your script?

If not, do these. The include can be found here.


Also, it should look like this, you forgot the ArmourLost float at the end:
pawn Код:
public OnPlayerShootPlayer(Shooter,Target,Float:HealthLost,Float:ArmourLost)
Reply
#5

Quote:
Originally Posted by jakejohnsonusa
Посмотреть сообщение
Do you have OPSP.inc in your /pawno/include folder?

Do you have
pawn Код:
#include <OPSP>
at the top of your script?

If not, do these. The include can be found here.


Also, it should look like this, you forgot the ArmourLost float at the end:
pawn Код:
public OnPlayerShootPlayer(Shooter,Target,Float:HealthLost,Float:ArmourLost)
still crashes
Reply
#6

This would not cause it to crash. Crashing is generally caused by a missing bracket.

Paste your updated code, I'm sure you're just missing one...


Oh, and remove this from your script if you added it, that guy didn't know what he was talking about:
pawn Код:
forward OnPlayerShootPlayer(shooter, target, Float:damage); .
Reply
#7

Quote:
Originally Posted by jakejohnsonusa
Посмотреть сообщение
This would not cause it to crash. Crashing is generally caused by a missing bracket.

Paste your updated code, I'm sure you're just missing one...


Oh, and remove this from your script if you added it, that guy didn't know what he was talking about:
pawn Код:
forward OnPlayerShootPlayer(shooter, target, Float:damage); .
PHP код:
forward OnPlayerShootPlayer(shootertargetFloat:damage);
{
    
//FuncLog("OnPlayerShootPlayer");
    
new weaponid GetPlayerWeapon(shooter);
    if(
weaponid == 23 && IsACop(shooter) && OnDuty[shooter])
    {
        
GameTextForPlayer(target"~r~Tazed"25003);
        
ApplyAnimation(target,"CRACK","crckdeth4",1,1,0,0,0,0);
        
ApplyAnimation(target,"CRACK","crckdeth4",1,1,0,0,0,0);
        
TogglePlayerControllable(target0);
        
PlayerCuffed[target] = 1;
        
PlayerCuffedTime[target] = 11;
        new 
Float:health;
        
GetPlayerHealth(targethealth);
        
SetPlayerHealth(targethealth+damage);
        
PlayerMuteInfo[shooter][TazerCool] = 15;
        if(
PlayerInfo[shooter][pMember] == && PlayerInfo[shooter][pRank] <= || PlayerInfo[shooter][pMember] == && PlayerInfo[shooter][pRank] <= || PlayerInfo[shooter][pMember] == && PlayerInfo[shooter][pRank] <= 2)
        {
            
GivePlayerWeaponEx(shooter22TmpAmmo[shooter][0]);
        }
        else
        {
            
GivePlayerWeaponEx(shooter24TmpAmmo[shooter][0]);
        }
        return 
1;
    }
    return 
1;
}
public 
OnPlayerShoot(playeridweaponid)
{
    
//FuncLog("OnPlayerShoot");
    /*new Float:x, Float:y, Float:z;
    new Float:fx,Float:fy,Float:fz;
    GetPlayerCameraFrontVector(playerid, fx, fy, fz);
     new Float:cx,Float:cy,Float:cz;
     GetPlayerCameraPos(playerid, cx, cy, cz);
     */
     /*if(PlayerInfo[playerid][pAdmin] < 3)
     {
        if(GunApproved[playerid][GunSlot[weaponid]] == 0)//It's hacked OMG!
        {
            ResetPlayerWeaponsEx(playerid);
            OnPlayerHaveHackGun(playerid, weaponid);
        }
    }*/
    
return 1;

Reply
#8

It should be like this, which is what I said to do...

pawn Код:
public OnPlayerShootPlayer(shooter,target,Float:HealthLost,Float:ArmourLost)
{
    //FuncLog("OnPlayerShootPlayer");
    new weaponid = GetPlayerWeapon(shooter);
    if(weaponid == 23 && IsACop(shooter) && OnDuty[shooter])
    {
        GameTextForPlayer(target, "~r~Tazed", 2500, 3);
        ApplyAnimation(target,"CRACK","crckdeth4",1,1,0,0,0,0);
        ApplyAnimation(target,"CRACK","crckdeth4",1,1,0,0,0,0);
        TogglePlayerControllable(target, 0);
        PlayerCuffed[target] = 1;
        PlayerCuffedTime[target] = 11;
        new Float:health;
        GetPlayerHealth(target, health);
        SetPlayerHealth(target, health+damage);
        PlayerMuteInfo[shooter][TazerCool] = 15;
        if(PlayerInfo[shooter][pMember] == 1 && PlayerInfo[shooter][pRank] <= 2 || PlayerInfo[shooter][pMember] == 5 && PlayerInfo[shooter][pRank] <= 2 || PlayerInfo[shooter][pMember] == 6 && PlayerInfo[shooter][pRank] <= 2)
        {
            GivePlayerWeaponEx(shooter, 22, TmpAmmo[shooter][0]);
        }
        else
        {
            GivePlayerWeaponEx(shooter, 24, TmpAmmo[shooter][0]);
        }
        return 1;
    }
    return 1;
}

public OnPlayerShoot(playerid, weaponid)
{
    //FuncLog("OnPlayerShoot");
    /*new Float:x, Float:y, Float:z;
    new Float:fx,Float:fy,Float:fz;
    GetPlayerCameraFrontVector(playerid, fx, fy, fz);
     new Float:cx,Float:cy,Float:cz;
     GetPlayerCameraPos(playerid, cx, cy, cz);
     */

     /*if(PlayerInfo[playerid][pAdmin] < 3)
     {
        if(GunApproved[playerid][GunSlot[weaponid]] == 0)//It's hacked OMG!
        {
            ResetPlayerWeaponsEx(playerid);
            OnPlayerHaveHackGun(playerid, weaponid);
        }
    }*/

    return 1;
}
Reply
#9

Why are you using OnPlayerShootPlayer?
SA-MP added OnPlayerTakeDamage and OnPlayerGiveDamage. Use one of them.
Reply
#10

Quote:
Originally Posted by jakejohnsonusa
Посмотреть сообщение
It should be like this, which is what I said to do...

pawn Код:
public OnPlayerShootPlayer(shooter,target,Float:HealthLost,Float:ArmourLost)
{
    //FuncLog("OnPlayerShootPlayer");
    new weaponid = GetPlayerWeapon(shooter);
    if(weaponid == 23 && IsACop(shooter) && OnDuty[shooter])
    {
        GameTextForPlayer(target, "~r~Tazed", 2500, 3);
        ApplyAnimation(target,"CRACK","crckdeth4",1,1,0,0,0,0);
        ApplyAnimation(target,"CRACK","crckdeth4",1,1,0,0,0,0);
        TogglePlayerControllable(target, 0);
        PlayerCuffed[target] = 1;
        PlayerCuffedTime[target] = 11;
        new Float:health;
        GetPlayerHealth(target, health);
        SetPlayerHealth(target, health+damage);
        PlayerMuteInfo[shooter][TazerCool] = 15;
        if(PlayerInfo[shooter][pMember] == 1 && PlayerInfo[shooter][pRank] <= 2 || PlayerInfo[shooter][pMember] == 5 && PlayerInfo[shooter][pRank] <= 2 || PlayerInfo[shooter][pMember] == 6 && PlayerInfo[shooter][pRank] <= 2)
        {
            GivePlayerWeaponEx(shooter, 22, TmpAmmo[shooter][0]);
        }
        else
        {
            GivePlayerWeaponEx(shooter, 24, TmpAmmo[shooter][0]);
        }
        return 1;
    }
    return 1;
}

public OnPlayerShoot(playerid, weaponid)
{
    //FuncLog("OnPlayerShoot");
    /*new Float:x, Float:y, Float:z;
    new Float:fx,Float:fy,Float:fz;
    GetPlayerCameraFrontVector(playerid, fx, fy, fz);
     new Float:cx,Float:cy,Float:cz;
     GetPlayerCameraPos(playerid, cx, cy, cz);
     */

     /*if(PlayerInfo[playerid][pAdmin] < 3)
     {
        if(GunApproved[playerid][GunSlot[weaponid]] == 0)//It's hacked OMG!
        {
            ResetPlayerWeaponsEx(playerid);
            OnPlayerHaveHackGun(playerid, weaponid);
        }
    }*/

    return 1;
}
PHP код:
\WCRP.pwn(47882) : error 017undefined symbol "shooter"
(47883) : error 017undefined symbol "shooter"
(47885) : error 017undefined symbol "target"
(47886) : error 017undefined symbol "target"
(47887) : error 017undefined symbol "target"
(47888) : error 017undefined symbol "target"
(47889) : error 017undefined symbol "target"
(47890) : error 017undefined symbol "target"
(47892) : error 017undefined symbol "target"
(47893) : error 017undefined symbol "target"
(47894) : error 017undefined symbol "shooter"
(47895) : error 017undefined symbol "shooter"
(47897) : error 017undefined symbol "shooter"
(47901) : error 017undefined symbol "shooter" 
PHP код:
    new weaponid GetPlayerWeapon(shooter);
    if(
weaponid == 23 && IsACop(shooter) && OnDuty[shooter])
    {
        
GameTextForPlayer(target"~r~Tazed"25003);
        
ApplyAnimation(target,"CRACK","crckdeth4",1,1,0,0,0,0);
        
ApplyAnimation(target,"CRACK","crckdeth4",1,1,0,0,0,0);
        
TogglePlayerControllable(target0);
        
PlayerCuffed[target] = 1;
        
PlayerCuffedTime[target] = 11;
        new 
Float:health;
        
GetPlayerHealth(targethealth);
        
SetPlayerHealth(targethealth+damage);
        
PlayerMuteInfo[shooter][TazerCool] = 15;
        if(
PlayerInfo[shooter][pMember] == && PlayerInfo[shooter][pRank] <= || PlayerInfo[shooter][pMember] == && PlayerInfo[shooter][pRank] <= || PlayerInfo[shooter][pMember] == && PlayerInfo[shooter][pRank] <= 2)
        {
            
GivePlayerWeaponEx(shooter22TmpAmmo[shooter][0]);
        }
        else
        {
            
GivePlayerWeaponEx(shooter24TmpAmmo[shooter][0]); 
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)