KnifeFight 1.3.8
| |
inkognito6626
|
Дата: Суббота, 31.08.2013, 17:42:47 | Сообщение # 1 |
|
Сообщений: 5
Репутация: 0 [ +/- ]
|
|
Плагин предназначен для поединка в конце раунда когда остаются 2 игрока,пытался сделать,что бы по мимо ножа выдавалось и другое оружие правда не чего не вышло оружие после появления сразу исчезает.Может ли кто помочь?
Гости не могут скачивать файлы
|
|
|
| |
panorama
|
Дата: Суббота, 31.08.2013, 18:00:30 | Сообщение # 2 |
|
Сообщений: 203
Репутация: 2 [ +/- ]
|
|
Код
public Action:StartFight() { // check if one player left server if (ctid == 0 || tid == 0) { return; } // check if there are only two players alivect = 0, alivet = 0; for (new i = 1; i <= MaxClients; i++) { new team; if (IsClientInGame(i) && IsPlayerAlive(i)) { team = GetClientTeam(i); if (team == 3) { alivect++; } else if (team == 2) { alivet++; } } } // check if there are only two players and round has // not ended or bomb is not planted if (alivect != 1 || alivet != 1 || bombplanted) { return; } // start fight isFighting = true; Trace("Fight is started."); if (!IsPlayerAlive(ctid) || !IsPlayerAlive(tid) || (GetClientCount() < g_minplayers)) { CancelFight(); return; } Trace("Removing all weapons on the map."); // remove all weapons from the map RemoveAllWeapons(); // play fight song if (songsfound > 0) { new randomsong = 0; if (songsfound > 1) { randomsong = GetRandomInt(0, songsfound - 1); } strcopy(song, sizeof(song), fightsong[randomsong]); new clients[MaxClients]; new total = 0; for (new i=1; i<=MaxClients; i++) { if (IsClientInGame(i) && g_soundPrefs[i]) { clients[total++] = i; } }
if (total) { Trace("Starting fight song."); EmitSound(clients, total, song, _, SNDCHAN_AUTO, SNDLEVEL_NORMAL, SND_NOFLAGS, SNDVOL_NORMAL, SNDPITCH_NORMAL); } } Trace("Starting beacons."); // start beacons CreateTimer(2.0, StartBeacon, ctid, TIMER_REPEAT); CreateTimer(1.0, StartBeaconT, tid);
// remove weapons from players PrintHintTextToAll("%t", "Removing weapons"); WeaponHandler(ctid, 3); WeaponHandler(tid, 2); // switch alltalk if (g_alltalk) { g_alltalkenabled = GetConVarBool(sv_alltalk); if ( !g_alltalkenabled ) { SetConVarInt(sv_alltalk, 1); } g_alltalkenabled = !g_alltalkenabled; } // switch blocking if ( g_block ) { if ( sm_noblock == INVALID_HANDLE ) { sm_noblock = FindConVar("sm_noblock"); } if ( sm_noblock != INVALID_HANDLE ) { g_blockenabled = !GetConVarBool(sm_noblock); if ( !g_blockenabled ) { SetConVarInt(sm_noblock, 0); } g_blockenabled = !g_blockenabled; } } // teleport players if (g_useteleport) { SetEntData(ctid, g_iHealth, 400); SetEntData(tid, g_iHealth, 400); new Float:ctvec[3]; new Float:tvec[3]; new Float:distance[1]; GetClientAbsOrigin(ctid,Float:ctvec); GetClientAbsOrigin(tid,Float:tvec); distance[0] = GetVectorDistance(ctvec, tvec, true); if (distance[0] >= 600000.0) { teleloc = ctvec; CreateTimer(0.1, SlapTimer, _, TIMER_REPEAT); CreateTimer(0.5, TeleportTimer); } else if (g_locatorbeam) { CreateTimer(0.1, DrawBeamsTimer, _, TIMER_REPEAT); } } else if (g_locatorbeam) { CreateTimer(0.1, DrawBeamsTimer, _, TIMER_REPEAT); } // display prepare to fight CreateTimer(1.0, Countdown, _, TIMER_REPEAT); }
Код // remove all weapons from the map RemoveAllWeapons();
Вот в этой функции удаляется оружие как раз по старту дуэли !
|
|
| |
ThRunningMan
|
Дата: Суббота, 31.08.2013, 19:13:39 | Сообщение # 3 |
|
Сообщений: 140
Репутация: 12 [ +/- ]
|
|
panorama, С такими советами выглядите нелепо ей богу, хот ьбы первел что сам автор подписал над этим действием, кое вещает "Удалить все оружие с карты" видимо чтобы не подобрали...Добавлено (31.08.2013, 19:13:39) ---------------------------------------------
Код public EquipKnife(client) { GivePlayerItem(client, "weapon_knife"); FakeClientCommand(client, "use weapon_knife"); // это команда вводится в консоль клиенту(игроку) чтобы он взял в руки нож, суда также пишешь тот же weapon_p90 т.е. в том же формате как и выше строка }
Вот функция отвечающая за выдачу оружия в данном случае это нож напиши или допиши свое оружие например weapon_p90
|
|
| |
inkognito6626
|
Дата: Суббота, 31.08.2013, 20:27:33 | Сообщение # 4 |
|
Сообщений: 5
Репутация: 0 [ +/- ]
|
|
public EquipKnife(client) { GivePlayerItem(client, "weapon_knife"); FakeClientCommand(client, "use weapon_knife")
если в место knife прописывать любое другое оружие оно просто исчезает я перепробывал это и выше код все бесполезно.
есть подобный плагин Weaponfight код взял через декомпилятор
Гости не могут скачивать файлы
|
Сообщение отредактировал inkognito6626 - Суббота, 31.08.2013, 20:34:03 |
|
| |
ThRunningMan
|
Дата: Суббота, 31.08.2013, 21:29:56 | Сообщение # 5 |
|
Сообщений: 140
Репутация: 12 [ +/- ]
|
|
inkognito6626, Ну да у него стоит проверка что если ты подобрал не нож то удалить Здесь Код public Action:EventItemPickup(Handle:event, const String:name[],bool:dontBroadcast) { if ( !g_enabled || !isFighting ) { return; }
new clientid = GetClientOfUserId(GetEventInt(event, "userid")); if ( clientid == ctid || clientid == tid ) { new String:item[64]; GetEventString(event, "item", item, sizeof(item)); if ( !StrEqual(item, "knife", false) ) { FakeClientCommand(clientid, "use weapon_knife"); // HINT: delay is needed to check isFighting // before weapon remove and also // to prevent crashes with Gungame4 Turbo new Handle:pack = CreateDataPack(); WritePackCell(pack, clientid); WritePackString(pack, item); CreateTimer(0.1, DelayWeapon, pack); } } } Тут несколько вариантов либо разреши оружие которое ты хочешь в условии допустим Код if ( !StrEqual(item, "knife", false) ) { if ( !StrEqual(item, "p90", false) ) { т.е. подобрал ты АК по условию это не нож и не п90 того удалит этот АК
Либо можно просто убрать удаление оружие которое подбираешь таймер либо вообще не хукать подбирание, вообщем сам решишь
|
|
| |
inkognito6626
|
Дата: Суббота, 31.08.2013, 22:19:32 | Сообщение # 6 |
|
Сообщений: 5
Репутация: 0 [ +/- ]
|
|
Большое спасибо все работает,но есть еще один вопрос как сделать что бы каждый раунд выдавалось разное оружие ,а не одно и то же?
|
|
| |
panorama
|
Дата: Воскресенье, 01.09.2013, 08:17:20 | Сообщение # 7 |
|
Сообщений: 203
Репутация: 2 [ +/- ]
|
|
Цитата (inkognito6626) panorama, С такими советами выглядите нелепо ей богу, хот ьбы первел что сам автор подписал над этим действием, кое вещает "Удалить все оружие с карты" видимо чтобы не подобрали... Добавлено (31.08.2013, 19:13:39) --------------------------------------------- Код public EquipKnife(client) { GivePlayerItem(client, "weapon_knife"); FakeClientCommand(client, "use weapon_knife"); // это команда вводится в консоль клиенту(игроку) чтобы он взял в руки нож, суда также пишешь тот же weapon_p90 т.е. в том же формате как и выше строка }
Вот функция отвечающая за выдачу оружия в данном случае это нож напиши или допиши свое оружие например weapon_p90
Извиняюсь но мне казалось это первым делом надо отключать или модифицировать !
|
|
| |
vanbka9
|
Дата: Понедельник, 02.09.2013, 00:49:27 | Сообщение # 8 |
|
Сообщений: 11
Репутация: 2 [ +/- ]
|
|
Цитата (inkognito6626) есть еще один вопрос как сделать что бы каждый раунд выдавалось разное оружие ,а не одно и то же? Держи готовую функциюЦитата (ThRunningMan) Либо можно просто убрать удаление оружие которое подбираешь таймер либо вообще не хукать подбирание, вообщем сам решишь
Гости не могут скачивать файлы
|
|
|
| |
Nike^Pro
|
Дата: Воскресенье, 19.05.2019, 11:26:59 | Сообщение # 9 |
|
Сообщений: 31
Репутация: -3 [ +/- ]
|
|
Ребят , а кто подскажет где убрать/изменить префикс
Код [KnifeFight] PbICb 1 yxo отверг предложение!
|
|
| |
Wanted_69
|
Дата: Воскресенье, 19.05.2019, 17:37:06 | Сообщение # 10 |
|
Сообщений: 11
Репутация: 0 [ +/- ]
|
|
Цитата survivors ( ) survivors
Не забывай и об
Код SendKnifeMenus(ct,t) { ctagree = -1; tagree = -1;
new String:msg[MAX_CHAT_SIZE]; if (IsFakeClient(ct) || g_fightPrefs[ct] == 1) { Format(msg, sizeof(msg), "%c[%cKnifeFight%c] %c%s %c%t", GREEN, YELLOW, GREEN, isColorMsg ? TEAMCOLOR : YELLOW, ctname, GREEN, "Player agrees"); CHAT_SayText(0, ct, msg); ctagree = 1; } else if (g_fightPrefs[ct] == -1) { Format(msg, sizeof(msg), "%c[%cKnifeFight%c] %c%s %c%t", GREEN, YELLOW, GREEN, isColorMsg ? TEAMCOLOR : YELLOW, ctname, GREEN, "Player disagrees"); CHAT_SayText(0, ct, msg); ctagree = 0; EmitSoundToAll(g_declinesound); } else { SendKnifeMenu(ct); }
if (IsFakeClient(t) || g_fightPrefs[t] == 1) { Format(msg, sizeof(msg), "%c[%cKnifeFight%c] %c%s %c%t", GREEN, YELLOW, GREEN, isColorMsg ? TEAMCOLOR : YELLOW, tname, GREEN, "Player agrees"); CHAT_SayText(0, t, msg); tagree = 1; } else if (g_fightPrefs[t] == -1) { Format(msg, sizeof(msg), "%c[%cKnifeFight%c] %c%s %c%t", GREEN, YELLOW, GREEN, isColorMsg ? TEAMCOLOR : YELLOW, tname, GREEN, "Player disagrees"); CHAT_SayText(0, t, msg); tagree = 0; EmitSoundToAll(g_declinesound); } else { SendKnifeMenu(t); }
if ( ctagree == 1 && tagree == 1) { Format(msg, sizeof(msg), "%c[%cKnifeFight%c] %c%t", GREEN, YELLOW, GREEN, GREEN, "Both agree"); CHAT_SayText(0, 0, msg); CreateTimer(0.5, DelayFight); } }
Сообщение отредактировал Wanted_69 - Воскресенье, 19.05.2019, 17:38:57 |
|
| |
|