All pastes #610863 Raw Edit

Help???

public text v1 · immutable
·published 2007-07-09 17:52 UTC
rendered paste body
public OnPlayerCommandText(playerid, cmdtext[])
{
new string[MAX_STRING];
new cmd[256], idx; cmd = strtok(cmdtext,idx);


if(strcmp(cmdtext,"/selldrink",true)==0) {
new giveplayerid;
new tmp2[256];
tmp2 = strtok(cmdtext,idx);
giveplayerid = strval(tmp2);
        new temp[256], temp2[256]; temp = strtok(cmdtext,idx); temp2 = strtok(cmdtext,idx);
        if (!strlen(temp) || !strlen(temp2) || !IsNumeric(temp) || (strval(temp) >= 1 && strval(temp) <= 4)) {
                 SendClientMessage(playerid, COLOR_GREY, "USAGE: /selldrink [item number] [id]");
         SendClientMessage(playerid, COLOR_GREY, "Avalible_Drinks:");
         SendClientMessage(playerid, COLOR_GREY, "1: Beer $5");
         SendClientMessage(playerid, COLOR_GREY, "2: Vodka $10");
         SendClientMessage(playerid, COLOR_GREY, "3: Whisky $50");
         SendClientMessage(playerid, COLOR_GREY, "4: Wine $500");
                return 1;
        }
        if(!IsNumeric(temp2)) {
                if(id != -1) format(temp2,sizeof(temp2),"%d",id);
                else SendClientMessage(playerid,COLOR_RED,"Error: Invalid ID.");
        }
        if(IsPlayerConnected(strval(temp2))) {
                new ref[MAX_PLAYER_NAME];
                GetPlayerName(strval(temp),ref,sizeof(ref));
                if (strval(temp) == 1 && GetPlayerMoney(strval(temp2)) >= 5) {
                        GivePlayerMoney(giveplayerid,-5);
                        GivePlayerMoney(playerid,4);
                        SendClientMessage(playerid, COLOR_GREY, "1: Beer $5");
                        return 1;
                }
                if (strval(temp) == 2 && GetPlayerMoney(strval(temp2)) >= 10) {
                        GivePlayerMoney(giveplayerid,-10);
                        GivePlayerMoney(playerid,8);
                        SendClientMessage(playerid, COLOR_GREY, "2: Vodka $10");
                        return 1;
                }
                if (strval(temp) == 3 && GetPlayerMoney(strval(temp2)) >= 50) {
                        GivePlayerMoney(giveplayerid,-50);
                        GivePlayerMoney(playerid,40);
                        SendClientMessage(playerid, COLOR_GREY, "3: Whisky $50");
                        return 1;
                }
                if (strval(temp) == 4 && GetPlayerMoney(strval(temp2)) >= 500) {
                        GivePlayerMoney(giveplayerid,-500);
                        GivePlayerMoney(playerid,400);
                        SendClientMessage(playerid, COLOR_GREY, "4: Wine $500");
                        return 1;
                }
        else SendClientMessage(playerid,COLOR_RED,"Error: Invalid name or ID.!");
        }
return 1;
}
if(strcmp(cmdtext, "/cuff", true) == 0) {
		if(GetPlayerState(playerid) == 2) {
     for(new i=0; i<MAX_PLAYERS; i++) {
          if(GetPlayerState(i) == PLAYER_STATE_PASSENGER && GetDistanceBetweenPlayers(i,playerid) < 10) {
               TogglePlayerControllable(i,0);
               GameTextForPlayer(i, "~r~You have been cuffed", 3000, 4);
               SendClientMessage(playerid, COLOR_BLUE, "You have cuffed the passenger, so he won't go anywhere.");
			   }
}
}
               return 1;
}

if(strcmp(cmdtext, "/uncuff", true) == 0) {
		if(GetPlayerState(playerid) == 2) {
     for(new i=0; i<MAX_PLAYERS; i++) {
          if(GetPlayerState(i) == PLAYER_STATE_PASSENGER && GetDistanceBetweenPlayers(i,playerid) < 10) {
               TogglePlayerControllable(i,1);
               GameTextForPlayer(i, "~g~You have been uncuffed", 3000, 4);
               SendClientMessage(playerid, COLOR_BLUE, "You have uncuffed the passenger.");
			   }
}
}
               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;
}
IsNumeric(const string[]) {
for (new i = 0, j = strlen(string); i < j; i++) if (string[i] > '9' || string[i] < '0') return 0;
return 1;
}

stock Float:GetDistanceBetweenPlayers(p1,p2)
{
	new Float:x1,Float:y1,Float:z1,Float:x2,Float:y2,Float:z2;
	if (!IsPlayerConnected(p1) || !IsPlayerConnected(p2))
	{
		return -1.00;
	}
	GetPlayerPos(p1,x1,y1,z1);
	GetPlayerPos(p2,x2,y2,z2);
	return floatsqroot(floatpower(floatabs(floatsub(x2,x1)),2)+floatpower(floatabs(floatsub(y2,y1)),2)+floatpower(floatabs(floatsub(z2,z1)),2));
}
stock GetClosestPlayer(playerid) {
	new x,Float:dis,Float:dis2,player;
	new pteam[MAX_PLAYERS];
	player = -1;
	dis = 99999.99;
	for (x=0;x<MAX_PLAYERS;x++) {
		if (x != playerid) {
			dis2 = GetDistanceBetweenPlayers(x,playerid);
			if (dis2 < dis && dis2 != -1.00 && pteam[x] == pteam[playerid]) {
				dis = dis2;
				player = x;
			}
		}
	}
	return player;
}