help =D
#1

this dosnt take the killer score just stay exaclty the same
pawn Код:
if(indm[playerid] == 2 && indm[killerid] == 2)
    {
        SetPlayerScore(killerid,GetPlayerScore(killerid)-1);
        SendClientMessage(killerid,red,"Dont kill your own men!");
        SetPlayerHealth(killerid,0);
    }
Reply
#2

Quote:
Originally Posted by MestreKiller
Посмотреть сообщение
this dosnt take the killer score just stay exaclty the same
pawn Код:
if(indm[playerid] == 2 && indm[killerid] == 2)
    {
        SetPlayerScore(killerid,GetPlayerScore(killerid)-1);
        SendClientMessage(killerid,red,"Dont kill your own men!");
        SetPlayerHealth(killerid,0);
    }
They may not be INDM with the variable "2". And it's setting killerid score by -1.
Reply
#3

Try adding a space:

pawn Код:
if(indm[playerid] == 2 && indm[killerid] == 2)
    {
        SetPlayerScore(killerid,GetPlayerScore(killerid) - 1);
        SendClientMessage(killerid,red,"Dont kill your own men!");
        SetPlayerHealth(killerid,0);
    }
// edit blackwabe might be right too.. try using the else situation, IDK if it will now work:

pawn Код:
if(indm[playerid] == 2 && indm[killerid] == 2)
    {
        SetPlayerScore(killerid,GetPlayerScore(killerid)-1);
        SendClientMessage(killerid,red,"Dont kill your own men!");
        SetPlayerHealth(killerid,0);
        return 1; //shouldnt it be here?
    }
    else
    {
       SendClientMessage(killerid,red,"Dont kill outside a DM!");
       return 1;
    }
remove the message if youd like. IDK if it will work im still a newb.
Reply
#4

Quote:
Originally Posted by blackwave
Посмотреть сообщение
They may not be INDM with the variable "2". And it's setting killerid score by -1.
not its not setting it to -1 if you read properly it say
GetPlayerScore
Reply
#5

Quote:
Originally Posted by MestreKiller
Посмотреть сообщение
not its not setting it to -1 if you read properly it say
GetPlayerScore
No, I mean when they go into DM. The variable "indm" might be setting the info for "1", instead "2"

pawn Код:
if(indm[playerid] == 2 && indm[killerid] == 2) // here
Reply
#6

Quote:
Originally Posted by blackwave
Посмотреть сообщение
No, I mean when they go into DM. The variable "indm" might be setting the info for "1", instead "2"

pawn Код:
if(indm[playerid] == 2 && indm[killerid] == 2) // here
my full code is
pawn Код:
public OnPlayerDeath(playerid, killerid, reason)
{
    if(indm[playerid] == 1 && indm[killerid] == 1)
    {
        SetPlayerScore(killerid,GetPlayerScore(killerid)-1);
        SendClientMessage(killerid,red,"Dont kill your own men!");
        SetPlayerHealth(killerid,0);
    }
    if(indm[playerid] == 2 && indm[killerid] == 2)
    {
        SetPlayerScore(killerid,GetPlayerScore(killerid)-1);
        SendClientMessage(killerid,red,"Dont kill your own men!");
        SetPlayerHealth(killerid,0);
    }
    if(indm[killerid] == 1)
    {
        SetPlayerScore(killerid,GetPlayerScore(killerid)+1);
    }
    if(indm[killerid] == 2)
    {
        SetPlayerScore(killerid,GetPlayerScore(killerid)+1);
    }
    return 1;
}
Reply
#7

you haven't set the
pawn Код:
indm[playerid] == 1
or

pawn Код:
indm[playerid] == 2
Anywhere you haven't set them. So, it's not working. You'd need to set them. It's a bit confusing e_e:
pawn Код:
public OnPlayerDeath(playerid, killerid, reason)
{
    if(indm[playerid] == 1 && indm[killerid] == 1)
    {
        SetPlayerScore(killerid,GetPlayerScore(killerid)-1);
        SendClientMessage(killerid,red,"Dont kill your own men!");
        SetPlayerHealth(killerid,0);
    }
    if(indm[playerid] == 2 && indm[killerid] == 2)
    {
        SetPlayerScore(killerid,GetPlayerScore(killerid)-1);
        SendClientMessage(killerid,red,"Dont kill your own men!");
        SetPlayerHealth(killerid,0);
    }
    if(indm[killerid] == 1)
    {
        SetPlayerScore(killerid,GetPlayerScore(killerid)+1);
        indm[killerid]=2;
    }
    if(indm[killerid] == 2)
    {
        SetPlayerScore(killerid,GetPlayerScore(killerid)+1);
    }
    indm[playerid]=0;
    indm[killerid]=0;
    return 1;
}
Reply
#8

Quote:
Originally Posted by blackwave
Посмотреть сообщение
you haven't set the
pawn Код:
indm[playerid] == 1
or

pawn Код:
indm[playerid] == 2
Anywhere you haven't set them. So, it's not working. You'd need to set them. It's a bit confusing e_e:
pawn Код:
public OnPlayerDeath(playerid, killerid, reason)
{
    if(indm[playerid] == 1 && indm[killerid] == 1)
    {
        SetPlayerScore(killerid,GetPlayerScore(killerid)-1);
        SendClientMessage(killerid,red,"Dont kill your own men!");
        SetPlayerHealth(killerid,0);
    }
    if(indm[playerid] == 2 && indm[killerid] == 2)
    {
        SetPlayerScore(killerid,GetPlayerScore(killerid)-1);
        SendClientMessage(killerid,red,"Dont kill your own men!");
        SetPlayerHealth(killerid,0);
    }
    if(indm[killerid] == 1)
    {
        SetPlayerScore(killerid,GetPlayerScore(killerid)+1);
        indm[killerid]=2;
    }
    if(indm[killerid] == 2)
    {
        SetPlayerScore(killerid,GetPlayerScore(killerid)+1);
    }
    indm[playerid]=0;
    indm[killerid]=0;
    return 1;
}
i do in a tele, its hard to explain.
Reply
#9

Код:
public OnPlayerDeath(playerid, killerid, reason)
{
	if(indm[playerid] == 1 && indm[killerid] == 1)
	{
		SetPlayerScore(killerid,GetPlayerScore(killerid)-1);
		SendClientMessage(killerid,red,"Dont kill your own men!");
		SetPlayerHealth(killerid,0);
		return 1;
	}
	if(indm[playerid] == 2 && indm[killerid] == 2)
	{
		SetPlayerScore(killerid,GetPlayerScore(killerid)-1);
		SendClientMessage(killerid,red,"Dont kill your own men!");
		SetPlayerHealth(killerid,0);
		return 1;
	}
	if(indm[killerid] == 1)
	{
		SetPlayerScore(killerid,GetPlayerScore(killerid)+1);
	}
	if(indm[killerid] == 2)
	{
		SetPlayerScore(killerid,GetPlayerScore(killerid)+1);
	}
	return 1;
}
your code is ok. the only reason why the killerid score wont change, the code is decreasing score 1, then adding 1 again. x-1+1==x ^^
return 1; at each teamkill, coz theres no more reason to add 1 more score for the killer...
edit: ah, the "indm[playerid]==1&&indm[killerid]==1" and "indm[playerid]==2&&indm[killerid]==2" can be combined:
Код:
public OnPlayerDeath(playerid, killerid, reason)
{
	if(indm[killerid]==indm[playerid])
	{
		SetPlayerScore(killerid,GetPlayerScore(killerid)-1);
		SendClientMessage(killerid,red,"Dont kill your own men!");
		SetPlayerHealth(killerid,0);
		return 1;
	}
	if(indm[killerid] == 1)
	{
		SetPlayerScore(killerid,GetPlayerScore(killerid)+1);
	}
	if(indm[killerid] == 2)
	{
		SetPlayerScore(killerid,GetPlayerScore(killerid)+1);
	}
	return 1;
}
hm. theres still more place to optimize ^^
Код:
public OnPlayerDeath(playerid, killerid, reason)
{
	if(indm[killerid]==indm[playerid])
	{
		SetPlayerScore(killerid,GetPlayerScore(killerid)-1);
		SendClientMessage(killerid,red,"Dont kill your own men!");
		SetPlayerHealth(killerid,0);
		return 1;
	}
	if(indm[killerid]>0)
	{
		SetPlayerScore(killerid,GetPlayerScore(killerid)+1);
	}
	return 1;
}
hope it works...
Reply
#10

Quote:
Originally Posted by Babul
Посмотреть сообщение
Код:
public OnPlayerDeath(playerid, killerid, reason)
{
	if(indm[playerid] == 1 && indm[killerid] == 1)
	{
		SetPlayerScore(killerid,GetPlayerScore(killerid)-1);
		SendClientMessage(killerid,red,"Dont kill your own men!");
		SetPlayerHealth(killerid,0);
		return 1;
	}
	if(indm[playerid] == 2 && indm[killerid] == 2)
	{
		SetPlayerScore(killerid,GetPlayerScore(killerid)-1);
		SendClientMessage(killerid,red,"Dont kill your own men!");
		SetPlayerHealth(killerid,0);
		return 1;
	}
	if(indm[killerid] == 1)
	{
		SetPlayerScore(killerid,GetPlayerScore(killerid)+1);
	}
	if(indm[killerid] == 2)
	{
		SetPlayerScore(killerid,GetPlayerScore(killerid)+1);
	}
	return 1;
}
your code is ok. the only reason why the killerid score wont change, the code is decreasing score 1, then adding 1 again. x-1+1==x ^^
return 1; at each teamkill, coz theres no more reason to add 1 more score for the killer...
edit: ah, the "indm[playerid]==1&&indm[killerid]==1" and "indm[playerid]==2&&indm[killerid]==2" can be combined:
Код:
public OnPlayerDeath(playerid, killerid, reason)
{
	if(indm[killerid]==indm[playerid])
	{
		SetPlayerScore(killerid,GetPlayerScore(killerid)-1);
		SendClientMessage(killerid,red,"Dont kill your own men!");
		SetPlayerHealth(killerid,0);
		return 1;
	}
	if(indm[killerid] == 1)
	{
		SetPlayerScore(killerid,GetPlayerScore(killerid)+1);
	}
	if(indm[killerid] == 2)
	{
		SetPlayerScore(killerid,GetPlayerScore(killerid)+1);
	}
	return 1;
}
hm. theres still more place to optimize ^^
Код:
public OnPlayerDeath(playerid, killerid, reason)
{
	if(indm[killerid]==indm[playerid])
	{
		SetPlayerScore(killerid,GetPlayerScore(killerid)-1);
		SendClientMessage(killerid,red,"Dont kill your own men!");
		SetPlayerHealth(killerid,0);
		return 1;
	}
	if(indm[killerid]>0)
	{
		SetPlayerScore(killerid,GetPlayerScore(killerid)+1);
	}
	return 1;
}
hope it works...
nothing of that,if he kills someone of his own team looses 1 score and if he kills win's 1
and i dont want your code because if he kills a enemie and has score more than 1 he wont win any
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)