public OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp("/vbite", cmdtext, true, 10) == 0)
{
new Float:x, Float:y, Float:z;
new targetid;
if(IsPlayerInRangeOfPoint(targetid,2.0,x,y,z))return SendClientMessage(playerid,0xE00404,"You are not near the player");
{
SetPlayerHealth(targetid,10);
SendClientMessage(targetid,0xE00404,"You have been bitten by a vampire");
SetPlayerDrunkLevel(playerid,3000);
ApplyAnimation(playerid,"KISSING","Grlfrd_Kiss_01",4.1,0,0,0,0,1,1);
}
return 1;
}
return 0;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
if (!strcmp("/vbite", cmdtext, true))
{
new Float:x, Float:y, Float:z;
new targetid = cmdtext[9];
if(IsPlayerInRangeOfPoint(targetid,2.0,x,y,z)) return SendClientMessage(playerid,0xE00404,"You are not near the player");
SetPlayerHealth(targetid,10);
SendClientMessage(targetid,0xE00404,"You have been bitten by a vampire");
SetPlayerDrunkLevel(playerid,3000);
ApplyAnimation(playerid,"KISSING","Grlfrd_Kiss_01",4.1,0,0,0,0,1,1);
return 1;
}
return 0;
}
pawn Код:
|
public OnPlayerCommandText(playerid, cmdtext[])
{
new cmd[256], index;
cmd = strtok(cmdtext,index);
if (strcmp("/vbite", cmd, true, 10) == 0)
{
new tmp[256];
if(!strlen(tmp) ) return SendClientMessage(playerid,-1,"[USAGE] /vbite [id]");
new Float:x, Float:y, Float:z;
new targetid;
targetid = strval(tmp);
GetPlayerPos(targetid,x,y,z);
if(IsPlayerInRangeOfPoint(playerid,2.0,x,y,z))return SendClientMessage(playerid,0xE00404,"You are not near the player");
{
SetPlayerHealth(targetid,10);
SendClientMessage(targetid,0xE00404,"You have been bitten by a vampire");
SetPlayerDrunkLevel(playerid,3000);
ApplyAnimation(playerid,"KISSING","Grlfrd_Kiss_01",4.1,0,0,0,0,1,1);
}
return 1;
}
return 0;
}
strtok(const string[], &index)
{
new length = strlen(string);
while ((index < length) && (string[index] <= ' '))
{
index++;
}
new offset = index;
new result[20];
while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
{
result[index - offset] = string[index];
index++;
}
result[index - offset] = EOS;
return result;
}
x, y and z have no value rather than 0, so what's the use of position checking?
Also, there's no actual validation on the parameter that the player inserts. Additionally, the error message will be sent when the target player IS near the coordinates. I don't think that's the desired behavior. |
public OnPlayerCommandText(playerid, cmdtext[])
{
if (!strcmp("/vbite", cmdtext))
{
new Float:x, Float:y, Float:z;
new targetid = cmdtext[7];
if(!IsPlayerConnected(targetid))
{
SendClientMessage(playerid,0xE00404,"Invalid player id");
return 1;
}
GetPlayerPos(targetid, x, y, z);
if(IsPlayerInRangeOfPoint(targetid,2.0,x,y,z))
{
SetPlayerHealth(targetid,10);
SendClientMessage(targetid,0xE00404,"You have been bitten by a vampire");
SetPlayerDrunkLevel(playerid,3000);
ApplyAnimation(playerid,"KISSING","Grlfrd_Kiss_01",4.1,0,0,0,0,1,1);
}
else
SendClientMessage(playerid,0xE00404,"You are not near the player");
return 1;
}
return 0;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
if (!strcmp("/vbite", cmdtext))
{
new Float:x, Float:y, Float:z;
new targetid = cmdtext[7];
if(!IsPlayerConnected(targetid))
{
SendClientMessage(playerid,0xE00404FF,"Invalid player id");
return 1;
}
GetPlayerPos(targetid, x, y, z);
if(IsPlayerInRangeOfPoint(playerid,2.0,x,y,z))
{
SetPlayerHealth(targetid,10);
SendClientMessage(targetid,0xE00404FF,"You have been bitten by a vampire");
SetPlayerDrunkLevel(playerid,3000);
ApplyAnimation(playerid,"KISSING","Grlfrd_Kiss_01",4.1,0,0,0,0,1,1);
}
else
SendClientMessage(playerid,0xE00404,"You are not near the player");
return 1;
}
return 0;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
new cmd[256], index;
cmd = strtok(cmdtext,index);
if (strcmp("/vbite", cmd, true, 10) == 0)
{
new tmp[256];
if(!strlen(tmp) ) return SendClientMessage(playerid,-1,"[USAGE] /vbite [id]");
new Float:x, Float:y, Float:z;
new targetid;
targetid = strval(tmp);
GetPlayerPos(targetid,x,y,z);
if(IsPlayerInRangeOfPoint(playerid,2.0,x,y,z))return SendClientMessage(playerid,0xE00404,"You are not near the player");
{
SetPlayerHealth(targetid,10);
SendClientMessage(targetid,0xE00404,"You have been bitten by a vampire");
SetPlayerDrunkLevel(playerid,3000);
ApplyAnimation(playerid,"KISSING","Grlfrd_Kiss_01",4.1,0,0,0,0,1,1);
}
return 1;
}
return 0;
}
strtok(const string[], &index)
{
new length = strlen(string);
while ((index < length) && (string[index] <= ' '))
{
index++;
}
new offset = index;
new result[20];
while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
{
result[index - offset] = string[index];
index++;
}
result[index - offset] = EOS;
return result;
}
try this pawn Code: public OnPlayerCommandText(playerid, cmdtext[]) { new cmd[256], index; cmd = strtok(cmdtext,index); if (strcmp("/vbite", cmd, true, 10) == 0) { new tmp[256]; if(!strlen(tmp) ) return SendClientMessage(playerid,-1,"[USAGE] /vbite [id]"); new Float ![]() new targetid; targetid = strval(tmp); GetPlayerPos(targetid,x,y,z); if(IsPlayerInRangeOfPoint(playerid,2.0,x,y,z))retu rn SendClientMessage(playerid,0xE00404,"You are not near the player"); { SetPlayerHealth(targetid,10); SendClientMessage(targetid,0xE00404,"You have been bitten by a vampire"); SetPlayerDrunkLevel(playerid,3000); ApplyAnimation(playerid,"KISSING","Grlfrd_Kiss_01" ,4.1,0,0,0,0,1,1); } return 1; } return 0; } and wherever you want add this except callbacks pawn Code: strtok(const string[], &index) { new length = strlen(string); while ((index < length) && (string[index] <= ' ')) { index++; } new offset = index; new result[20]; while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1))) { result[index - offset] = string[index]; index++; } result[index - offset] = EOS; return result; } try this is good |
public OnPlayerCommandText(playerid, cmdtext[]) { if (!strcmp("/vbite", cmdtext)) { new Float ![]() new targetid = cmdtext[7]; if(!IsPlayerConnected(targetid)) { SendClientMessage(playerid,0xE00404FF,"Invalid player id"); return 1; } GetPlayerPos(targetid, x, y, z); if(IsPlayerInRangeOfPoint(playerid,2.0,x,y,z)) { SetPlayerHealth(targetid,10); SendClientMessage(targetid,0xE00404FF,"You have been bitten by a vampire"); SetPlayerDrunkLevel(playerid,3000); ApplyAnimation(playerid,"KISSING","Grlfrd_Kiss_01" ,4.1,0,0,0,0,1,1); } else SendClientMessage(playerid,0xE00404,"You are not near the player"); return 1; } return 0; } |