[Ajuda]Ver Contratos. -
Leo_Lost - 28.01.2012
Bom quando alguem usa /meucontrato era pra falar o id eo nome do contrato, mas sempre fala o id eo nome de quem usou o comando preciso de ajuda para resolver esse poblema ja tentei varias vezes e nem quer dar certo.
pawn Код:
}
if(strcmp(cmd, "/meucontrato", true) == 0)
{
if(IsPlayerConnected(playerid))
{
if(PlayerInfo[playerid][pMembro] != 8 && PlayerInfo[playerid][pLider] != 8)
{
SendClientMessage(playerid, COR_EXE, "Vocк nao e um hitman.");
return 1;
}
if(GoChase[playerid] == 999)
{
SendClientMessage(playerid,COR_VAGOS,"Voce nao possui um contrato!.");
return 1;
}
new Giver[MAX_PLAYER_NAME];
GetPlayerName(hitid, Giver, sizeof(Giver));
format(gstring,128,"<< Seu contrato eo Player %s (ID:%d) >>",Giver,hitid);
SendClientMessage(playerid,COLOR_YELLOW,gstring);
return 1;
}
return 1;
}
Re: [Ajuda]Ver Contratos. -
Hardware - 28.01.2012
Poste o comando para contratar os serviзos.
Re : Re: [Ajuda]Ver Contratos. -
Leo_Lost - 28.01.2012
Quote:
Originally Posted by Hardware
Poste o comando para contratar os serviзos.
|
Aqui quando alguem coloca um contrato para os hitmans matar alguem.
pawn Код:
}
if(strcmp(cmd, "/contrato", true) == 0)
{
if(IsPlayerConnected(playerid))
{
new money2;
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GRAD1, "USE: /contrato [ID/Nome] [Quantia]");
return 1;
}
giveplayerid = ReturnUser(tmp);
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GRAD1, "USE: /contrato [ID/Nome] [Quantia]");
return 1;
}
if(PlayerInfo[playerid][pMembro] == 8 || PlayerInfo[playerid][pLider] == 8)
{
SendClientMessage(playerid, COLOR_WHITE, "ERRO: Voce nao pode colocar contrato!");
return 1;
}
moneys = strval(tmp);
if(moneys < 10000) { SendClientMessage(playerid, COLOR_GREY, " Seu contrato nгo pode ser menor que 10000"); return 1; }
if(PlayerInfo[playerid][pLevel] < 1)
{
SendClientMessage(playerid, COLOR_GRAD1, "Vocк precisa de no Mнnimo nнvel 1 para por um Contrato.");
return 1;
}
if (IsPlayerConnected(giveplayerid))
{
if(giveplayerid != INVALID_PLAYER_ID)
{
if(PlayerInfo[giveplayerid][pLevel] == 1)
{
SendClientMessage(playerid, COLOR_GRAD1, "Vocк nгo pode por contrato em novatos!");
return 1;
}
if(PlayerInfo[giveplayerid][pMembro] == 8 && PlayerInfo[playerid][pMembro] == 8)
{
SendClientMessage(playerid, COLOR_GREY, " Nгo pode colocar contrato em membros de sua agencia!");
return 1;
}
else if(PlayerInfo[giveplayerid][pLider] == 8 && PlayerInfo[playerid][pMembro] == 8)
{
SendClientMessage(playerid, COLOR_GREY, " Nгo pode colocar contrato em Hitmans!");
return 1;
}
else if(PlayerInfo[giveplayerid][pMembro] == 8||PlayerInfo[giveplayerid][pLider] == 8)
{
SendClientMessage(playerid, COLOR_GREY, "Nгo pode colocar contrato em Hitmans!");
return 1;
}
else if(PlayerInfo[giveplayerid][pAdmin] >= 1)
{
SendClientMessage(playerid, COLOR_GREY, " Nгo pode colocar contrato em Admins!");
return 1;
}
if(gTeam[giveplayerid] == 2 && moneys <= 80000)
{
SendClientMessage(playerid, COLOR_GREY, "Preco Minimo de $80000 em oficiais!");
return 1;
}
if(giveplayerid == playerid) { SendClientMessage(playerid, COLOR_GREY, "Nao pode colocar contrato em si mesmo!"); return 1; }
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
money2 = GetPlayerMoney(playerid);
if (moneys > 0 && money2 >= moneys)
{
GivePlayerMoney(playerid, (0 - moneys));
PlayerInfo[giveplayerid][pHeadValue]+=moneys;
format(string, sizeof(string), "%s Colocou um contrato em %s, por $%d.",sendername, giveplayer, moneys);
SendFamilyMessage(8, COLOR_YELLOW, string);
format(string, sizeof(string), "* Vocк colocou um contrato em %s, por $%d.",giveplayer, moneys);
SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
PlayerPlaySound(playerid, 1052, 0.0, 0.0, 0.0);
}
else
{
SendClientMessage(playerid, COLOR_GRAD1, " Vocк nгo possui essa grana.");
}
}
}
else
{
SendClientMessage(playerid, COLOR_GRAD1, " Esse nгo й um jogador ativo.");
}
}
return 1;
}
return 1;
}
Aqui quando o hitman cumpri o contrato.
pawn Код:
ConsumingMoney[killerid] = 1;
GivePlayerMoney(killerid, PlayerInfo[playerid][pHeadValue]);
format(gstring,128,"{FFFF00}<<Vocк foi morto por contrato pelo hitman %s no valor de %d e nгo foi DM!>>",PlayerName(killerid),PlayerInfo[playerid][pHeadValue]);
SendClientMessage(playerid, COLOR_YELLOW, gstring);
format(gstring,128,"<< Algum Hitman Cumpriu o contrato em %s e Recebeu $%d >>",PlayerName(playerid),PlayerInfo[playerid][pHeadValue]);
SendClientMessageToAll(COLOR_YELLOW, gstring);
GameTextForPlayer(killerid, "~w~Contrato ~r~Cumprido", 5000, 1);
PlayerInfo[playerid][pHeadValue] = 0;
GotHit[playerid] = 0;
GetChased[playerid] = 999;
GoChase[killerid] = 999;
Re: [Ajuda]Ver Contratos. - rjjj - 28.01.2012
Vocк deve armazenar o ID da vнtima do contrato em uma variбvel global (para que a possa chamar de qualquer lugar do GM) e depois usб-la no comando
.
Veja como fazer
:
pawn Код:
//No Topo do GM:
new VitimaID[MAX_PLAYERS]; //Uma variбvel array com tamanho igual a MAX_PLAYERS para que cada jogador seja capaz de ter seu prуprio alvo.
//Em um cуdigo no qual o ID do jogador e o ID da vнtima possam ser, ambos, obtidos (provavelmente seria o de aceitar o contrato):
VitimaID[x] = y; //Sendo x o ID (ou variбvel que o contйm) do jogador "Hitman" e y o ID (ou variбvel que o contйm) do alvo do mesmo.
//Por fim, seu comando /meucontrato ficaria assim:
if(strcmp(cmd, "/meucontrato", true) == 0)
{
if(PlayerInfo[playerid][pMembro] != 8 && PlayerInfo[playerid][pLider] != 8)
{
SendClientMessage(playerid, COR_EXE, "Vocк nao e um hitman.");
return 1;
}
if(GoChase[playerid] == 999)
{
SendClientMessage(playerid,COR_VAGOS,"Voce nao possui um contrato!.");
return 1;
}
new Giver[MAX_PLAYER_NAME];
GetPlayerName(VitimaID[playerid], Giver, sizeof(Giver));
format(gstring,128,"<< Seu contrato eo Player %s (ID:%d) >>",Giver,VitimaID[playerid]);
SendClientMessage(playerid,COLOR_YELLOW,gstring);
return 1;
}
Espero ter ajudado
.
Re : [Ajuda]Ver Contratos. -
Leo_Lost - 28.01.2012
Vlw ajudo e muito.