[Ajuda] Ativar Item ? -
leonardo1434 - 13.05.2012
Bom Galerra, vim aqui para pedir ajuda pra vocкs, estou fazendo um GM sobre zombies, jб indo bem, sem erros. Porйm gostaria de adicionar um funзгo chamada /perks, estб funзгo somente poderia ser ativada caso ele selecionasse um item.
Exemplo: ele selecionou o perk " high jump ", Entгo o cуdigo que estб no OnPlayerKeyStateChange seria ativado, e caso ele mudasse de perk, " selecionasse o " empty " que й vбzio, o perk " high jump" fosse desativado.
Apenas retirei as partes necessбrias para o funcionamento, obrigado por ajudar.
Код:
new Menu:perksz;
public OnGameModeInit()
{
AddMenuItem(perksz, 0, "High Jump");
AddMenuItem(perksz, 0, "Empty");
}
public OnPlayerCommandText(playerid, cmdtext[])
{
if(strcmp(cmdtext, "/perks", true) == 0)
{
if(gTeam[playerid] == ZOMBIE)
{
ShowMenuForPlayer(perksz, playerid);
TogglePlayerControllable(playerid, false);
SendClientMessage(playerid, 0xFFFFFFAA, "Select a perk !");
return 1;
}
}
return 0;
}
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if(newkeys & KEY_JUMP)
{
if(gTeam[playerid] == ZOMBIE)
{
new Float:SuperJump[3];
GetPlayerVelocity(playerid, SuperJump[0], SuperJump[1], SuperJump[2]);
SetPlayerVelocity(playerid, SuperJump[0], SuperJump[1], SuperJump[2]+5);
}
}
return 1;
}
public OnPlayerSelectedMenuRow(playerid, row)
{
new Menu:CurrentMenu = GetPlayerMenu(playerid);
if(CurrentMenu == perksz) // Por isso essas linhas <
{
switch(row) // Agora й cada opзгo por si
{
case 0: // PERK JUMP
{
if(gTeam[playerid] == ZOMBIE)
{
new Float:SuperJump[3];
GetPlayerVelocity(playerid, SuperJump[0], SuperJump[1], SuperJump[2]);
SetPlayerVelocity(playerid, SuperJump[0], SuperJump[1], SuperJump[2]+5);
TogglePlayerControllable(playerid, 1);
}
}
case 1:
{
TogglePlayerControllable(playerid, 1);
SendClientMessage(playerid, 0xFFFFFFAA, "> You didn't choose any item !");
}
}
}
TogglePlayerControllable(playerid,1);
VerifyInventoryMenuRowSelected(playerid, row);
DestroyPlayerInventoryMenu(playerid);
return 1;
}
public OnPlayerExitedMenu(playerid)
{
TogglePlayerControllable(playerid, true);
return 1;
}
Re: [Ajuda] Ativar Item ? -
zbt - 13.05.2012
Utilize uma bool.
pawn Код:
//topo
new bool:p[MAX_PLAYERS];
//quando ele escolher high jump
p[playerid] = true;
//quando ele escolher empty
p[playerid] = false;
//troque o KEY_JUMP por esse
if(newkeys & KEY_JUMP && p[playerid])
Re: [Ajuda] Ativar Item ? -
Joker_OutLock - 13.05.2012
pawn Код:
new bool: Empty[MAX_PLAYERS];
new Menu: perksz;
public OnGameModeInit() {
AddMenuItem(perksz, 0, "High Jump");
AddMenuItem(perksz, 0, "Empty");
}
public OnPlayerCommandText(playerid, cmdtext[]) {
if (strcmp(cmdtext, "/perks", true) == 0) {
if (gTeam[playerid] == ZOMBIE) {
ShowMenuForPlayer(perksz, playerid);
TogglePlayerControllable(playerid, false);
SendClientMessage(playerid, 0xFFFFFFAA, "Select a perk !");
return 1;
}
}
return 0;
}
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys) {
if (newkeys & KEY_JUMP) {
if (gTeam[playerid] == ZOMBIE && !Empty[playerid]) {
new Float: SuperJump[3];
GetPlayerVelocity(playerid, SuperJump[0], SuperJump[1], SuperJump[2]);
SetPlayerVelocity(playerid, SuperJump[0], SuperJump[1], SuperJump[2] + 5);
}
}
return 1;
}
public OnPlayerSelectedMenuRow(playerid, row) {
new Menu: CurrentMenu = GetPlayerMenu(playerid);
if (CurrentMenu == perksz) // Por isso essas linhas <
{
switch (row) // Agora й cada opзгo por si
{
case 0:
// PERK JUMP
{
if (gTeam[playerid] == ZOMBIE) {
new Float: SuperJump[3];
GetPlayerVelocity(playerid, SuperJump[0], SuperJump[1], SuperJump[2]);
SetPlayerVelocity(playerid, SuperJump[0], SuperJump[1], SuperJump[2] + 5);
TogglePlayerControllable(playerid, 1);
Empty[playerid] = false;
}
}
case 1:
{
TogglePlayerControllable(playerid, 1);
SendClientMessage(playerid, 0xFFFFFFAA, "> You didn't choose any item !");
Empty[playerid] = true;
}
}
}
TogglePlayerControllable(playerid, 1);
VerifyInventoryMenuRowSelected(playerid, row);
DestroyPlayerInventoryMenu(playerid);
return 1;
}
public OnPlayerExitedMenu(playerid) {
TogglePlayerControllable(playerid, true);
return 1;
}
Prontinho, espero ter ajudado!
Re: [Ajuda] Ativar Item ? -
leonardo1434 - 13.05.2012
Obrigado pessoal, Vocкs me iluminaram. Ambo levaram RESP+ pela ajuda, agora sim poderia adicionar mais perks.