25.10.2010, 15:26
Eu gostaria de saber como eu faзo para que um Hitman cancele sua obrigaзгo de contrato.
Tipo, as vezes um Hitman pega um contrato, axa o cara , mas ele ta afk e nao da pra concluir o contrato.
Queria fazer um sistema que o hitman pudesse cancelar a ordem de contrato para ele.
Bom o sistema de contrato й o seguinte:
E o sistema de assinar o contrato, pegando para si ou dando ordem para outros concluirem:
Eu tentei fazer o cancelar desta forma abaixo, mas nem a frase apareceu....
Tipo, as vezes um Hitman pega um contrato, axa o cara , mas ele ta afk e nao da pra concluir o contrato.
Queria fazer um sistema que o hitman pudesse cancelar a ordem de contrato para ele.
Bom o sistema de contrato й o seguinte:
Код:
if(strcmp(cmd, "/contrato", true) == 0) { GetPlayerName(playerid, sendername, sizeof(sendername)); format(string, sizeof(string), "* %s Estб pondo um contrato!.", sendername); if(IsPlayerConnected(playerid)) { tmp = strtok(cmdtext, idx); if(!strlen(tmp)) { SendClientMessage(playerid, COLOR_GRAD1, "USE: /contrato [ID do Jogador] [Quantidade]"); return 1; } giveplayerid = ReturnUser(tmp); tmp = strtok(cmdtext, idx); if(!strlen(tmp)) { SendClientMessage(playerid, COLOR_GRAD1, "USE: /contrato [ID do Jogador] [Quantidade]"); return 1; } moneys = strval(tmp); if(moneys <= 10000 || moneys >= 150000) { SendClientMessage(playerid, COLOR_GREY, " Seu contrato nao pode ser menor que 10000 e maior que 150000"); return 1; } if(PlayerInfo[playerid][pLevel] < 3) { SendClientMessage(playerid, COLOR_GRAD1, "Level 3 no Minimo para por um Contrato."); return 1; } if (PlayerInfo[giveplayerid][pAdmin] >= 2 && PlayerInfo[giveplayerid][pAdmin] <= 6000) { SendClientMessage(playerid, COLOR_GRAD1, "Nгo й possivel colocar contratos em Administradores"); return 1; } if (IsPlayerConnected(giveplayerid)) { if(giveplayerid != INVALID_PLAYER_ID) { if(PlayerInfo[giveplayerid][pMember] == 8 && PlayerInfo[playerid][pMember] == 8) { SendClientMessage(playerid, COLOR_GREY, " Nao pode por contrato e sua propria agencia!"); return 1; } else if(PlayerInfo[giveplayerid][pLeader] == 8 && PlayerInfo[playerid][pMember] == 8) { SendClientMessage(playerid, COLOR_GREY, " Nгo pode por contratos em sua propria agencia!"); return 1; } else if(PlayerInfo[giveplayerid][pMember] == 8||PlayerInfo[giveplayerid][pLeader] == 8) { SendClientMessage(playerid, COLOR_GREY, " Nгo pode contratar um assassino !"); return 1; } if(gTeam[giveplayerid] == 2 && moneys != 100000) { SendClientMessage(playerid, COLOR_GREY, " Somente 100000 Pode ser posto em contratos com os COPS !"); return 1; } if(giveplayerid == playerid) { SendClientMessage(playerid, COLOR_GREY, "Vocк nгo pode se contratar!"); return 1; } GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer)); GetPlayerName(playerid, sendername, sizeof(sendername)); playermoney = GetPlayerMoney(playerid); if (moneys > 0 && playermoney >= moneys) { GivePlayerMoney(playerid, (0 - moneys)); PlayerInfo[giveplayerid][pHeadValue]+=moneys; format(string, sizeof(string), "%s Botou um contrato em %s, por R$%d.",sendername, giveplayer, moneys); SendFamilyMessage(8, COLOR_YELLOW, string); format(string, sizeof(string), "* Vocк botou um contrato em %s, por R$%d.",giveplayer, moneys); SendClientMessage(playerid, COLOR_LIGHTBLUE, string); PlayerPlaySound(playerid, 1052, 0.0, 0.0, 0.0); } else { SendClientMessage(playerid, COLOR_GRAD1, " Numero Invalido."); } } } else { format(string, sizeof(string), " %d nao й um player ativo.", giveplayerid); SendClientMessage(playerid, COLOR_GRAD1, string); } } return 1; } else { return 1; } }
Код:
else if ((strcmp("Assinar", tmp, true, strlen(tmp)) == 0) && (strlen(tmp) == strlen("Assinar"))) { if(hitfound == 0) { SendClientMessage(playerid, COLOR_GREY, " Nгo foram encontrados contratos ainda, digite Contratos no laptop primeiro !"); return 0; } tmp = strtok(text, idx); if(!strlen(tmp)) { SendClientMessage(playerid, COLOR_GRAD1, "USE: Assinar [ID/ParteDoNome]"); return 0; } //giveplayerid = strval(tmp); giveplayerid = ReturnUser(tmp); if(IsPlayerConnected(giveplayerid)) { if(giveplayerid != INVALID_PLAYER_ID) { if(PlayerInfo[giveplayerid][pMember] == 8 || PlayerInfo[giveplayerid][pLeader] == 8) { if(GoChase[giveplayerid] < 999) { SendClientMessage(playerid, COLOR_GREY, " Esse Hitman ja estб ocupado com um Contrato !"); return 0; } if(IsPlayerConnected(hitid)) { GetPlayerName(playerid, sendername, sizeof(sendername)); GetPlayerName(giveplayerid, giver, sizeof(giver)); GetPlayerName(hitid, giveplayer, sizeof(giveplayer)); //format(string, sizeof(string), "* You assigned%s to kill: %s(ID:%d), for $%d.", giver, giveplayer, hitid, PlayerInfo[hitid][pValue]); //SendClientMessage(playerid, COLOR_YELLOW, string); //format(string, sizeof(string), "* Hitman %s has assigned you to kill: %s(ID:%d), for $%d.", sendername, giveplayer, hitid, PlayerInfo[hitid][pValue]); //SendClientMessage(giveplayerid, COLOR_YELLOW, string); format(string, sizeof(string), "* Hitman %s, ordenou o Hitman %s para matar: %s(ID:%d), por $%d.", sendername, giver, giveplayer, hitid, PlayerInfo[hitid][pHeadValue]); SendFamilyMessage(8, COLOR_YELLOW, string); GoChase[giveplayerid] = hitid; GetChased[hitid] = giveplayerid; GotHit[hitid] = 1; hitid = 0; hitfound = 0; return 0; } else { SendClientMessage(playerid, COLOR_GREY, " A Pessoa contratada estб offline, digite Contratos no laptop novamente !"); return 0; } } else { SendClientMessage(playerid, COLOR_GREY, " Esse Player nгo й um Hitman !"); return 0; } } return 0; } else { SendClientMessage(playerid, COLOR_GREY, " Esse Hitman nгo estб Online, ou nгo й Hitman !"); return 0; } }
Код:
else if ((strcmp("Cancelar", tmp, true, strlen(tmp)) == 0) && (strlen(tmp) == strlen("Cancelar"))) { SendClientMessage(playerid, COLOR_YELLOW, "Seu alvo deixou o jogo."); GoChase[GetChased[playerid]] = 999; return 1; }