13.07.2014, 14:59
Quote:
i did convert from strcmp is that is right ?
Код:
CMD:pay(playerid, params[]) { new moneys,giveplayerid; if(IsPlayerConnected(playerid)) { if(!strlen(tmp)) { SendClientMessage(playerid, COLOR_WHITE, "USAGE: /pay [playerid/PartOfName] [amount]"); return 1; } giveplayerid = ReturnUser(tmp); if(!strlen(tmp)) { SendClientMessage(playerid, COLOR_WHITE, "USAGE: /pay [playerid/PartOfName] [amount]"); return 1; } moneys = strvalEx(tmp); if(moneys > 1000 && PlayerInfo[playerid][pLevel] < 2) { SendClientMessage(playerid, COLOR_GRAD1, " You must be level 2 to pay more than $1000 at a time !"); return 1; } if(moneys < 1 || moneys > 100000) { SendClientMessage(playerid, COLOR_GRAD1, " You can't pay under $1 or more than $100,000 at a time !"); return 1; } if(IsPlayerConnected(giveplayerid)) { if(giveplayerid == playerid) { SendClientMessage(playerid, COLOR_GREY, " You can't pay money to yourself !"); return 1; } if(giveplayerid != INVALID_PLAYER_ID) { if(IsPlayerInRangeOfPlayer(5.0, playerid, giveplayerid) && (GetPlayerState(giveplayerid) != PLAYER_STATE_SPECTATING)) { strmid(sendername, PlayerRPName(playerid), 0, MAX_PLAYER_NAME); strmid(giveplayer, PlayerRPName(giveplayerid), 0, MAX_PLAYER_NAME); new playermoney = PlayerInfo[playerid][pCash]; if(moneys > 0 && playermoney >= moneys) { PlayerInfo[playerid][pCash] = PlayerInfo[playerid][pCash]-moneys; GivePlayerMoney(playerid, (0 - moneys)); PlayerInfo[giveplayerid][pCash] = PlayerInfo[giveplayerid][pCash]+moneys; GivePlayerMoney(giveplayerid, moneys); format(string, sizeof(string), " You have paid $%d to %s.",moneys,giveplayer); SendClientMessage(playerid, COLOR_GRAD1, string); format(string, sizeof(string), " You have recieved $%d from %s.", moneys,sendername); SendClientMessage(giveplayerid, COLOR_GRAD1, string); if(PlayerInfo[playerid][pMask] == 1) format(string, sizeof(string), "* Stranger takes out some cash, and hands it to %s.",giveplayer); else format(string, sizeof(string), "* %s takes out some cash, and hands it to %s.", sendername,giveplayer); ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE); PlayerPlaySound(playerid, 1052, 0.0, 0.0, 0.0); PlayerPlaySound(giveplayerid, 1052, 0.0, 0.0, 0.0); new plrIP[16]; new giveplrIP[16]; GetPlayerIp(playerid, plrIP, sizeof(plrIP)); GetPlayerIp(giveplayerid, giveplrIP, sizeof(giveplrIP)); format(string, sizeof(string), "%s (IP:%s) (Key:%s) (ConTime:%d) has paid $%d to %s (IP:%s) (Key:%s)", sendername,plrIP,PlayerInfo[playerid][pKey], PlayerInfo[playerid][pConnectTime],moneys,giveplayer,giveplrIP,PlayerInfo[giveplayerid][pKey]); PayLog(string); strmid(LastPaid[playerid],giveplayer,0,strlen(giveplayer)); } else { SendClientMessage(playerid, COLOR_GRAD1, " Invalid transaction amount !"); } } else { SendClientMessage(playerid, COLOR_GRAD1, " You're too far away !"); } } } else { format(string, sizeof(string), " %d is not an active player !", giveplayerid); SendClientMessage(playerid, COLOR_GRAD1, string); } } return 1; } |
Use sscanf2 for it.
Search a tutorial, "How to use sscanf + ZCMD".