[Ajuda]Hitman -
keller012 - 25.10.2010
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:
Код:
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;
}
}
E o sistema de assinar o contrato, pegando para si ou dando ordem para outros concluirem:
Код:
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;
}
}
Eu tentei fazer o cancelar desta forma abaixo, mas nem a frase apareceu....
Код:
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;
}
Re: [Ajuda]Hitman -
Xapita_Halls - 25.10.2010
sei la................................................ .........kkkkkkkkkkkkkkk
Re: [Ajuda]Hitman -
TiagoPS - 25.10.2010
Tenta
pawn Код:
else if (strcmp("Cancelar", tmp, true, strlen(tmp)) == 0)
{
SendClientMessage(playerid, COLOR_YELLOW, "Seu alvo deixou o jogo.");
GoChase[GetChased[playerid]] = 999;
return 1;
}
Re: [Ajuda]Hitman -
keller012 - 25.10.2010
interessante..
xD
mais alguem??