Sergey12rus
Ученик
Такакя проблема в системе дуэлей Есть отчёт 3-2-1 старт.
Но после отчёта он считает -1,-2,-3 и тд
Из за чего такое может быть?? + она выходит какому либо игроку зашедшему по каким то определённым ид.
И не пропадёт хоть перезаходить. Пока серв не рестарнёшь не исчезнет.)
Но после отчёта он считает -1,-2,-3 и тд
Из за чего такое может быть?? + она выходит какому либо игроку зашедшему по каким то определённым ид.
И не пропадёт хоть перезаходить. Пока серв не рестарнёшь не исчезнет.)
Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!
PHP:
public OnPlayerDeath
if(PlayerInDuel[killerid] == 1 && PlayerInDuel[playerid] == 1)
{
new string[256];
DuelPlaceVisit = false;
PlayerInDuel[killerid] = 0;
PlayerInDuel[playerid] = 0;
GetDuelCreate[killerid] = INVALID_PLAYER_ID;
GetDuelCreate[playerid] = INVALID_PLAYER_ID;
GivePlayerMoney(killerid, MoneyDuel);
GivePlayerMoney(playerid, -MoneyDuel);
format(string, sizeof(string), "~g~+%d$", MoneyDuel);
GameTextForPlayer(killerid, string, 1000, 1);
format(string, sizeof(string), "~r~-%d$", MoneyDuel);
GameTextForPlayer(playerid, string, 1000, 1);
format(string, sizeof(string), "[Mari_info]>>> В дуэли между игроками {FFFFFF}%s{00FF00} и {FFFFFF}%s{00FF00} победил игрок {FFFFFF}%s", pNick(killerid), pNick(playerid), pNick(killerid));
SendClientMessageToAll(0x00FF00FF, string);
SetTimerEx("OnPlayerSpawn", 1000, false, "i", killerid);
return 1;
}
if(strcmp(cmd, "/дуэль46786548", true) == 0 || strcmp(cmd, "/duel35486187", true) == 0)
{
if(PlayerInDuel[playerid] == 1) return SendClientMessage(playerid, -1, "[Mari_info]Ты уже участвуешь в дуэли.");
if(DuelPlaceVisit) return SendClientMessage(playerid, -1, "[Mari_info]Подождите пока место для дуэли освободится.");
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) return SendClientMessage(playerid, -1, "[Mari_info]Использование: /duel /дуэль [ id игрока ] [ id оружия ] [ ставка ]");
giveplayerid = strval(tmp);
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) return SendClientMessage(playerid, -1, "[Mari_info]Использование: /duel /дуэль [ id игрока ] [ id оружия ] [ ставка ]");
WeaponDuel = strval(tmp);
if(WeaponDuel < 0 || WeaponDuel > 42) return SendClientMessage(playerid, -1, "[Mari_info]Ты ввёл не верный id оружия. Используй id от 0 до 42");
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) return SendClientMessage(playerid, -1, "[Mari_info]Использование: /duel /дуэль [ id игрока ] [ id оружия ] [ ставка ]");
MoneyDuel = strval(tmp);
if(MoneyDuel < 1 || MoneyDuel > 100000) return SendClientMessage(playerid, -1, "[Mari_info]Ты ввёл не верную сумму ставки. Используй сумму от 1$ до 100000$");
if(MoneyDuel > GetPlayerMoney(playerid)) return SendClientMessage(playerid, -1, "[Mari_info]Тебе не хватает на ставку. Укажи другую сумму!");
if(MoneyDuel > GetPlayerMoney(giveplayerid)) return SendClientMessage(playerid, -1, "[Mari_info]Твоему противнику не хватает на ставку. Укажи другую сумму!");
if(IsPlayerConnected(giveplayerid))
{
new Float:POS[3];
GetPlayerPos(giveplayerid, POS[0], POS[1], POS[2]);
if(playerid == giveplayerid) return SendClientMessage(playerid, -1, "[Mari_info]Ты не можешь применить это действие к самому себе.");
if(!IsPlayerInRangeOfPoint(playerid, 150, POS[0], POS[1], POS[2])) return SendClientMessage(playerid, -1, "[Mari_info]Ты находишься слишком далеко от этого игрока.");
if(PlayerInDuel[giveplayerid] == 1) return SendClientMessage(playerid, -1, "[Mari_info]Этот игрок уже участвует в дуэли.");
GetDuelCreate[giveplayerid] = playerid;
format(string, sizeof(string), "[Mari_info]Ты успешно пригласил игрока {9DDAF2}%s{FFFFFF} на дуэль! Дождись ответа.", pNick(giveplayerid));
SendClientMessage(playerid, -1, string);
format(string, sizeof(string), "[Mari_info]Игрок %s приглашает тебя на дуэль.\n\nОружие: %d\nСтавка: %d$", pNick(playerid), WeaponDuel, MoneyDuel);
ShowPlayerDialog(giveplayerid, DUEL_ID, DIALOG_STYLE_MSGBOX, "Приглашение на дуэль", string, "Да", "Нет");
}
else
{
SendClientMessage(playerid, -1, "[Mari_info]Игрок с указанным тобой id не найден!");
}
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
if(dialogid == DUEL_ID)
{
if(response)
{
if(PlayerInDuel[playerid] == 1)
{
SendClientMessage(playerid, -1, "[Mari_info]Ты уже участвуешь в дуэли.");
SendClientMessage(dueledid, -1, "[Mari_info]При соглашении на участие в дуэли произошла ошибка!");
GetDuelCreate[playerid] = INVALID_PLAYER_ID;
return 1;
}
if(PlayerInDuel[dueledid] == 1)
{
SendClientMessage(playerid, -1, "[Mari_info]Игрок, отославший тебе приглашение, уже участвует в дуэли.");
SendClientMessage(dueledid, -1, "[Mari_info]При соглашении на участие в дуэли произошла ошибка!");
GetDuelCreate[playerid] = INVALID_PLAYER_ID;
return 1;
}
if(DuelPlaceVisit)
{
SendClientMessage(playerid, -1, "[Mari_info]Подожди пока место для дуэли освободится.");
SendClientMessage(dueledid, -1, "[Mari_info]Подожди пока место для дуэли освободится.");
GetDuelCreate[playerid] = INVALID_PLAYER_ID;
return 1;
}
if(IsPlayerConnected(dueledid))
{
PlayerInDuel[playerid] = 1;
PlayerInDuel[dueledid] = 1;
DuelPlaceVisit = true;
new rand1 = random(sizeof(duelspawn));
SetPlayerPos(playerid, duelspawn[rand1][0], duelspawn[rand1][1], duelspawn[rand1][2]);
new rand2 = random(sizeof(duelspawn));
SetPlayerPos(dueledid, duelspawn[rand2][0], duelspawn[rand2][1], duelspawn[rand2][2]);
SetCameraBehindPlayer(playerid);
SetCameraBehindPlayer(dueledid);
SetPlayerInterior(playerid, 10);
SetPlayerInterior(dueledid, 10);
SetPlayerHealth(dueledid, 100);
SetPlayerHealth(playerid, 100);
SetPlayerVirtualWorld(playerid, DUEL_MIR);
SetPlayerVirtualWorld(dueledid, DUEL_MIR);
TogglePlayerControllable(playerid, false);
TogglePlayerControllable(dueledid, false);
StartingDuel[playerid] = 6;
StartingDuel[dueledid] = 6;
CountDuelTimer[playerid] = SetTimerEx("DuelStarting", 1000, true, "i", playerid);
CountDuelTimer[dueledid] = SetTimerEx("DuelStarting", 1000, true, "i", dueledid);
ResetPlayerWeapons(playerid);
ResetPlayerWeapons(dueledid);
GivePlayerWeapon(playerid, WeaponDuel, 99999);
GivePlayerWeapon(dueledid, WeaponDuel, 99999);
GetDuelCreate[playerid] = INVALID_PLAYER_ID;
return 1;
}
else
{
SendClientMessage(playerid, -1, "Игрок, отославший тебе приглашение, отсоеденился!");
GetDuelCreate[playerid] = INVALID_PLAYER_ID;
}
}
else
{
format(string, sizeof(string), "[Mari_info]Ты отказался на участие в дуэли с игроком {9DDAF2}%s", pNick(dueledid));
SendClientMessage(playerid, -1, string);
format(string, sizeof(string), "[Mari_info]Игрок {9DDAF2}%s{FFFFFF} отказался на участие в дуэли с тобой!", pNick(playerid));
SendClientMessage(GetDuelCreate[playerid], -1, string);
GetDuelCreate[playerid] = INVALID_PLAYER_ID;
}
return 1;
}
public DuelStarting(playerid)//дуэль
{
new string[256];
StartingDuel[playerid] -= 1;
format(string, sizeof(string), "~y~STARTING: ~w~%d", StartingDuel[playerid]);
GameTextForPlayer(playerid, string, 999, 3);
SetPlayerHealth(playerid, 100);
if(StartingDuel[playerid] == 0)
{
GameTextForPlayer(playerid, "~g~DUEL START", 3000, 3);
TogglePlayerControllable(playerid, true);
KillTimer(CountDuelTimer[playerid]);
}
return 1;
}
