tryp
Умник
Всем добрый день. Пиступим делать хитманов!
для начало создаем переменные
далее идем в enum pinfo и добовляем
Теперь добавляем в public OnPlayerRegister(playerid, password[])
public OnPlayerLogin(playerid, password[])
и сохраняем у меня stock SavePlayer(playerid)
Идем в public onplayerConnect
Теперь создаем саму фракцию вот по этому уроку >>тык<<
Теперь создаем команду /portable и /contract
Теперь добавляем диалоги
Теперь в конец мода добавляем паблик
Теперь идем в public OnPlayerDeath(playerid, killerid, reason)
Вырезано с мода.
SendFamilyMessage(29, COLOR_YELLOW, string);//номер 29 менять на свой ид фракции хитманов
для начало создаем переменные
PHP:
new GotHit[MAX_PLAYERS];
new GoChase[MAX_PLAYERS];
new GetChased[MAX_PLAYERS];
new hitfound = 0;
new hitid = 999;
new PlayerValue[MAX_PLAYERS];
PHP:
pHeadValue,
PHP:
ini_setInteger(iniFile,"HeadValue",PlayerInfo[playerid][pHeadValue]);
PHP:
ini_getInteger(iniFile,"HeadValue",PlayerInfo[playerid][pHeadValue]);
PHP:
ini_setInteger(iniFile,"HeadValue",PlayerInfo[playerid][pHeadValue]);
PHP:
GoChase[playerid] = 999; GetChased[playerid] = 999;GotHit[playerid] = 0;
и PlayerInfo[playerid][pHeadValue] = 0;
Теперь создаем команду /portable и /contract
PHP:
if(strcmp(cmd, "/contract", true) == 0)
{
if(IsPlayerConnected(playerid))
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_GRAD1, " * Использование: /contract [playerid/PartOfName] [amount]");
giveplayerid = ReturnUser(tmp);
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_GRAD1, " * Использование: /contract [playerid/PartOfName] [amount]");
moneys = strvalEx(tmp);
if(moneys < 1000 || moneys > 100000) { SendClientMessage(playerid, COLOR_GREY, " Сумма котрактов должна быть минимум $1000, и максимум $100000!"); return 1; }
if (IsPlayerConnected(giveplayerid))
{
if(giveplayerid != INVALID_PLAYER_ID)
{
if(PlayerInfo[giveplayerid][pMember] == 29 && PlayerInfo[playerid][pMember] == 29) return SendClientMessage(playerid, COLOR_GREY, " * Нельзя заказать контракт на члена вашего агенства!");
else if(PlayerInfo[giveplayerid][pLeader] == 29 && PlayerInfo[playerid][pMember] == 29) return SendClientMessage(playerid, COLOR_GREY, " * Нельзя заказать контракт на члена вашего агенства!");
else if(PlayerInfo[giveplayerid][pMember] == 29||PlayerInfo[giveplayerid][pLeader] == 29) return SendClientMessage(playerid, COLOR_GREY, " * Вы неможете заказать этого человека!");
else if(PlayerInfo[playerid][pMember] == 29) return SendClientMessage(playerid, COLOR_GREY, "Вы не хитман");
if(IsACop(giveplayerid) && moneys >= 3000)
{
SendClientMessage(playerid, COLOR_GREY, " * Только контракты больше $3000 могут быть положены на копов!");
return 1;
}
if(giveplayerid == playerid) { SendClientMessage(playerid, COLOR_GREY, " * Вы не можете заказать себя!"); return 1; }
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
playermoney = PlayerInfo[playerid][pCash];
if (moneys > 0 && playermoney >= moneys)
{
PlayerInfo[playerid][pCash] -= moneys;
PlayerInfo[playerid][pCash] -= moneys;
GiveMoney(playerid, (0 - moneys));
PlayerInfo[giveplayerid][pHeadValue]+=moneys;
format(string, sizeof(string), " * %s заказал %s на сумму $%d.",sendername, giveplayer, moneys);
SendFamilyMessage(29, COLOR_YELLOW, string);
format(string, sizeof(string), " * Вы сделали контракт на %s за $%d.",giveplayer, moneys);
SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
PlayerPlaySound(playerid, 1052, 0.0, 0.0, 0.0);
}
else
{
SendClientMessage(playerid, COLOR_GRAD1, " * У вас не хватает денег!");
}
}
}
else
{
format(string, sizeof(string), " %d не активный игрок.", giveplayerid);
SendClientMessage(playerid, COLOR_GRAD1, string);
}
}
return true;
}
if(strcmp(cmd,"/portable",true)==0)
{
if(IsPlayerConnected(playerid))
{
if(PlayerInfo[playerid][pMember] == 29 || PlayerInfo[playerid][pLeader] == 29)//меняем на свой
{
ShowPlayerDialog(playerid,7763,DIALOG_STYLE_LIST,"Хитман Menu","Доступные контракты\nПодписать контракт\nПриобрести оружие\nОтказаться от заказа\nНайти цель\nРазъедениться","Далее","Отмена");
}
}
return 1;
}
PHP:
case 7763:
{
if(response)
{
if(listitem == 0)
{
SearchingHit(playerid);
}
if(listitem == 1)
{
if(hitfound == 0)
{
SendClientMessage(playerid, TEAM_AZTECAS_COLOR, "• {FFFFFF}Нет доступных контрактов!");
return false;
}
ShowPlayerDialog(playerid,7764,DIALOG_STYLE_INPUT,"{b3f9b0}","{FFFFFF}Введите ID игрока кому хотите поручить контракт и нажмите {b3f9b0}'Принять'","Принять","");
}
if(listitem == 2)
{
ShowPlayerDialog(playerid,7765,DIALOG_STYLE_INPUT,"{b3f9b0}Покупка","{FFFFFF}Впишите номер комплекта оружия и нажмите {b3f9b0}'Купить'\n\tКомплект оружия № 1 (5.000)\n\tКомплект оружия № 2 (6.000)\n\tКомплект оружия № 3 (7.000)\n\tКомплект оружия № 4 (8.000)\n\tКомплект оружия № 5 (9.000)\n\tКомплект оружия № 6 (10.000)\n\tКомплект оружия № 7 (11.000)\n","Купить","Отмена");
}
if(listitem == 3)
{
new giver[MAX_PLAYER_NAME];
new giveplayer[MAX_PLAYER_NAME];
new giveplayerid;
if(IsPlayerConnected(hitid))
{
new sendername[MAX_PLAYER_NAME];
GetPlayerName(playerid,sendername,sizeof(sendername));
GetPlayerName(playerid, sendername, sizeof(sendername));
GetPlayerName(giveplayerid, giver, sizeof(giver));
GetPlayerName(hitid, giveplayer, sizeof(giveplayer));
format(string,sizeof(string),"• {FFFFFF}Хитман {b3f9b0}%s {FFFFFF}отказался от выполнения заказа на {b3f9b0}(ID:%d)",sendername,GoChase[playerid]);
SendFamilyMessage(29,0xb3f9b0FF,string);
GotHit[playerid] = 0;
GoChase[playerid] = 999
return false;
}
else
{
SendClientMessage(playerid,COLOR_WHITE,"{f9b0b0}x {FFFFFF}У Вас нет заказа");
return false;
}
}
if(listitem == 4)
{
if(GoChase[playerid]!=999)
{
new giver[MAX_PLAYER_NAME];
GetPlayerName(GoChase[playerid],giver,sizeof(giver));
format(string,sizeof(string),"Цель {b3f9b0}%s[ID: %d] {FFFFFF}отмечена у Вас на карте, следуйте за ней",giver,GoChase[playerid]);
SendClientMessage(playerid,COLOR_WHITE,string);
new Float:X,Float:Y,Float:Z;
GetPlayerPos(GoChase[playerid], X,Y,Z);
SetPlayerCheckpoint(playerid, X,Y,Z, 6);
return false;
}
else
{
SendClientMessage(playerid,COLOR_WHITE,"{f9b0b0}x {FFFFFF}Вы не за кем не охотитесь");
return false;
}
}
if(listitem == 5)
{
SendClientMessage(playerid, TEAM_AZTECAS_COLOR, "• {FFFFFF}Вы отключились от агенства и выключили ноутбук");
ConnectPC[playerid] = 0;
return false;
}
}
}
case 7764:
{
if(response)
{
new giveplayerid = strval(inputtext);
if(IsPlayerConnected(giveplayerid))
{
if(giveplayerid != INVALID_PLAYER_ID)
{
if(PlayerInfo[giveplayerid][pMember] == 29 || PlayerInfo[giveplayerid][pLeader] == 29)
{
if(GoChase[giveplayerid] < 999)
{
SendClientMessage(playerid, COLOR_GREY, "• Тот хитман уже занят");
return false;
}
if(IsPlayerConnected(hitid))
{
new giver[MAX_PLAYER_NAME];
new sendername[MAX_PLAYER_NAME];
new giveplayer[MAX_PLAYER_NAME];
GetPlayerName(playerid, sendername, sizeof(sendername));
GetPlayerName(giveplayerid, giver, sizeof(giver));
GetPlayerName(hitid, giveplayer, sizeof(giveplayer));
format(string, sizeof(string), "« %s[%d] заключил контракт с %s[%d] на убийство %s[%d] »", sendername,playerid, giver,giveplayerid, giveplayer, hitid);
SendFamilyMessage(29, TEAM_AZTECAS_COLOR, string);
GoChase[giveplayerid] = hitid;
GetChased[hitid] = giveplayerid;
GotHit[hitid] = 1;
hitid = 0;
hitfound = 0;
return false;
}
else
{
SendClientMessage(playerid, TEAM_AZTECAS_COLOR, "• {FFFFFF}Человек на которого контракт сейчас нет в игре!");
return false;
}
}
else
{
SendClientMessage(playerid, TEAM_AZTECAS_COLOR, "• {FFFFFF}Тот игрок не хитман");
return false;
}
}
return false;
}
else
{
SendClientMessage(playerid, TEAM_AZTECAS_COLOR, "• {FFFFFF}Нет такого игрока!");
return false;
}
}
}
case 7765:
{
if(response)
{
new i = playerid;
if(!strcmp(inputtext, "1",true))
{
if(GetPlayerMoney(i) > 5000)
{
GiveRichGun(i, 24, 50); GiveRichGun(i, 29, 500); GiveRichGun(i, 25, 50); GiveRichGun(i, 4, 1);
PlayerInfo[playerid][pCash] -= 5000;
SendClientMessage(i, COLOR_LIGHTBLUE, "• {FFFFFF}Вы приобрели комплект оружия № 1.");
}
else
{
SendClientMessage(i, COLOR_LIGHTBLUE, "• {FFFFFF}У Вас недостаточно денег.");
}
}
if(!strcmp(inputtext, "2",true))
{
if(GetPlayerMoney(i) > 6000)
{
GiveRichGun(i, 24, 50); GiveRichGun(i, 29, 500); GiveRichGun(i, 25, 50); GiveRichGun(i, 31, 500); GiveRichGun(i, 4, 1);
PlayerInfo[playerid][pCash] -=6000;
SendClientMessage(i, COLOR_LIGHTBLUE, "• {FFFFFF}Вы приобрели комплект оружия № 2.");
}
else
{
SendClientMessage(i, COLOR_LIGHTBLUE, "• {FFFFFF}У Вас недостаточно денег.");
}
}
if(!strcmp(inputtext, "3",true))
{
if(GetPlayerMoney(i) > 7000)
{
GiveRichGun(i, 24, 50); GiveRichGun(i, 29, 500); GiveRichGun(i, 25, 50); GiveRichGun(i, 30, 500); GiveRichGun(i, 4, 1);
PlayerInfo[playerid][pCash] -=7000;
SendClientMessage(i, COLOR_LIGHTBLUE, "• {FFFFFF}Вы приобрели комплект оружия № 3.");
}
else
{
SendClientMessage(i, COLOR_LIGHTBLUE, "• {FFFFFF}У Вас недостаточно денег.");
}
}
if(!strcmp(inputtext, "4",true))
{
if(GetPlayerMoney(i) > 8000)
{
GiveRichGun(i, 24, 50); GiveRichGun(i, 29, 500); GiveRichGun(i, 25, 50); GiveRichGun(i, 31, 500); GiveRichGun(i, 4, 1); GiveRichGun(i, 34, 20);
PlayerInfo[playerid][pCash] -= 8000;
SendClientMessage(i, COLOR_LIGHTBLUE, "• {FFFFFF}Вы приобрели комплект оружия № 4.");
}
else
{
SendClientMessage(i, COLOR_LIGHTBLUE, "• {FFFFFF}У Вас недостаточно денег.");
}
}
if(!strcmp(inputtext, "5",true))
{
if(GetPlayerMoney(i) > 10000)
{
GiveRichGun(i, 24, 50); GiveRichGun(i, 29, 500); GiveRichGun(i, 25, 50); GiveRichGun(i, 30, 500); GiveRichGun(i, 4, 1); GiveRichGun(i, 34, 20);
PlayerInfo[playerid][pCash] -= 10000;
SendClientMessage(i, COLOR_LIGHTBLUE, "• {FFFFFF}Вы приобрели комплект оружия № 5.");
}
else
{
SendClientMessage(i, COLOR_LIGHTBLUE, "• {FFFFFF}У Вас недостаточно денег.");
}
}
if(!strcmp(inputtext, "6",true))
{
if(GetPlayerMoney(i) > 11000)
{
GiveRichGun(i, 24, 50); GiveRichGun(i, 29, 500); GiveRichGun(i, 25, 50); GiveRichGun(i, 31, 500); GiveRichGun(i, 4, 1); GiveRichGun(i, 34, 20);
PlayerInfo[playerid][pCash] -= 11000;
SendClientMessage(i, COLOR_LIGHTBLUE, "• {FFFFFF}Вы приобрели комплект оружия № 6.");
}
else
{
SendClientMessage(i, COLOR_LIGHTBLUE, "• {FFFFFF}У Вас недостаточно денег.");
}
}
if(!strcmp(inputtext, "7",true))
{
if(GetPlayerMoney(i) > 12000)
{
GiveRichGun(i, 24, 50); GiveRichGun(i, 29, 500); GiveRichGun(i, 25, 50); GiveRichGun(i, 30, 500); GiveRichGun(i, 4, 1); GiveRichGun(i, 34, 20);
PlayerInfo[playerid][pCash] -= 12000;
SendClientMessage(i, COLOR_LIGHTBLUE, "• {FFFFFF}Вы приобрели комплект оружия № 7.");
}
else
{
SendClientMessage(i, COLOR_LIGHTBLUE, "• {FFFFFF}У Вас недостаточно денег.");
}
}
}
}
PHP:
stock SearchingHit(playerid)
{
new string[150];
new giveplayer[MAX_PLAYER_NAME];
new searchhit = 0;
for(new i=0; i<GetMaxPlayers(); i++)
{
if(IsPlayerConnected(i))
{
if(searchhit == 0)
{
if(PlayerInfo[i][pHeadValue] > 0 && GotHit[i] == 0 && PlayerInfo[i][pMember] != 29)
{
GetPlayerName(i, giveplayer, sizeof(giveplayer));
searchhit = 1;
hitfound = 1;
hitid = i;
for(new k=0; k<GetMaxPlayers(); k++)
{
if(IsPlayerConnected(k))
{
if(PlayerInfo[k][pMember] == 29 || PlayerInfo[k][pLeader] == 29)//меняем на свое
{
format(string, sizeof(string), "Цель: %s[%d] Цена: $%d", giveplayer, i, PlayerInfo[i][pHeadValue]);
SendClientMessage(k, COLOR_GREEN, string);
SendClientMessage(k, COLOR_GREEN, "Откройте меню и выберите пункт 'Подписать контракт'");
}
}
}
return false;
}
}
}
}
if(searchhit == 0)
{
SendClientMessage(playerid, COLOR_WHITE, "{f9b0b0}x {FFFFFF}Нет доступных контрактов.");
}
return false;
}
PHP:
if(PlayerInfo[playerid][pHeadValue] > 0)
{
if(IsPlayerConnected(killerid))
{
if(PlayerInfo[killerid][pLeader] == 29 || PlayerInfo[killerid][pMember] == 29)
{
if(GoChase[killerid] == playerid)
{
new killer[MAX_PLAYER_NAME];
GetPlayerName(killerid, killer, sizeof(killer));
PlayerInfo[killerid][pCash] += PlayerInfo[playerid][pHeadValue];
format(string,128,"<< Хитман %s выполнил контракт на %s и получил $%d >>",killer,name,PlayerInfo[playerid][pHeadValue]);
SendFamilyMessage(29, COLOR_YELLOW, string);
SendClientMessage(playerid, COLOR_LIGHTRED," * Вы были убиты хитманом по заказу!");
PlayerInfo[playerid][pHeadValue] = 0;
GotHit[playerid] = 0;
GetChased[playerid] = 999;
GoChase[killerid] = 999;
}
}
}
}
SendFamilyMessage(29, COLOR_YELLOW, string);//номер 29 менять на свой ид фракции хитманов
Последнее редактирование:
