Плагин для jail
| |
Admin0912
|
Дата: Суббота, 19.01.2013, 10:56:54 | Сообщение # 1 |
|
Сообщений: 57
Репутация: 3 [ +/- ]
|
|
Помогите сделать плагин для jail чтобы он убивал КТ если они не открыли jail'ы через минуту после начала раунда. _Ws_ что то подсказал Код OnFullyOpen OnOpen OnPressed Но я не совсем понял
|
|
| |
TEIN
|
Дата: Суббота, 19.01.2013, 15:22:41 | Сообщение # 2 |
|
Сообщений: 563
Репутация: 78 [ +/- ]
|
|
Сообщение отредактировал DoK_1997 - Суббота, 19.01.2013, 15:31:53 |
|
| |
Beelzebub
|
Дата: Суббота, 19.01.2013, 23:20:32 | Сообщение # 3 |
|
Сообщений: 202
Репутация: 13 [ +/- ]
|
|
Dok, помоему он попросил помочь сделать :) Пахнет тем что он не понимает sourcepawn и просто хочет готовый код.
|
|
| | |
TEIN
|
Дата: Воскресенье, 20.01.2013, 09:37:32 | Сообщение # 5 |
|
Сообщений: 563
Репутация: 78 [ +/- ]
|
|
Так я помогаю.. =) Показывай наработки
|
|
| |
Beelzebub
|
Дата: Воскресенье, 20.01.2013, 15:19:10 | Сообщение # 6 |
|
Сообщений: 202
Репутация: 13 [ +/- ]
|
|
Admin0912, покажи чего ты добился в своих наработках , а мы чем сможешь поможем.
|
|
| |
Admin0912
|
Дата: Воскресенье, 20.01.2013, 15:38:27 | Сообщение # 7 |
|
Сообщений: 57
Репутация: 3 [ +/- ]
|
|
Какой-то бред получается
Код #include <sourcemod> #include <cstrike> #include <sdktools>
public OnPluginStart() { HookSingleEntityOutput(door_index, "OnFullyOpen", OnFullyOpen_CallBack); HookEvent("round_start", Event_round_start); }
public Event_round_start(Handle:event, const String:name[], bool:dontBroadcast) { CreateTimer(60.0, slay, client); }
public slay(Handle:timer, any:client) { if (client > 0 && IsClientInGame(client) && GetClientTeam(client) == CS_TEAM_CT) { ServerCommand("sm_slap #CTs", userid); //И как то так: Если КТ не открыли дверь OnFullyOpen_CallBack им дается слей } }
public OnFullyOpen_CallBack(const String:output[], caller, activator, Float:delay) { new client = GetClientOfUserId(GetEventInt(event, "userid")); new userid = GetClientUserId(client); //ServerCommand("sm_slap #%i", userid); }
Сообщение отредактировал Admin0912 - Воскресенье, 20.01.2013, 16:24:43 |
|
| |
scorpion2904
|
Дата: Воскресенье, 20.01.2013, 16:34:36 | Сообщение # 8 |
|
Сообщений: 68
Репутация: 5 [ +/- ]
|
|
Попробуй так:
Код #pragma semicolon 1
#include <sourcemod> #include <sdktools> #include <sdktools_functions>
new Handle:Time;
new ct;
public OnPluginStart() { HookEntityOutput("func_button" , "OnPressed", ButtonPressed); HookEvent("round_start", round_start); HookEvent("round_end", round_end); }
public round_start(Handle:event, const String:name[], bool:dontBroadcast) { ct = 1; Time = CreateTimer(60.0, Timer); }
public Action:Timer(Handle:timer){ if(ct == 1){ for (new i = 1; i <= MaxClients; i++) { if (IsClientInGame(i) && GetClientTeam(i) == 3) { ForcePlayerSuicide(i); } } } Time = INVALID_HANDLE; }
public ButtonPressed(const String:output[], caller, activator, Float:delay) { ct=0; }
public round_end(Handle:event, const String:name[], bool:dontBroadcast) { if (Time != INVALID_HANDLE) { KillTimer(Time); Time = INVALID_HANDLE; } }
Гости не могут скачивать файлы
|
|
|
| |
Admin0912
|
Дата: Воскресенье, 20.01.2013, 17:13:29 | Сообщение # 9 |
|
Сообщений: 57
Репутация: 3 [ +/- ]
|
|
scorpion2904, что-то дельное но когда КТ выходит из оружейки и нажимает E открывает дверь оружейки это засчитывается за открытие jail'ов и КТшников не убивает
Сообщение отредактировал Admin0912 - Воскресенье, 20.01.2013, 17:13:48 |
|
| |
Beelzebub
|
Дата: Воскресенье, 20.01.2013, 19:45:08 | Сообщение # 10 |
|
Сообщений: 202
Репутация: 13 [ +/- ]
|
|
Не знаю может кому пригодится, автор не я только переделывал. Может возьмешь этот плагин за основу и переделаешь. Там через кое какое время камеры сами открываются.
Решил поделиться плагином т.к он не совсем стабильный.
Гости не могут скачивать файлы
|
|
|
| |
Admin0912
|
Дата: Понедельник, 21.01.2013, 09:29:08 | Сообщение # 11 |
|
Сообщений: 57
Репутация: 3 [ +/- ]
|
|
Цитата (Beelzebub) Может возьмешь этот плагин за основу и переделаешь. Переделал а ошибки бесят Код L 01/21/2013 - 12:22:00: [SM]Plugin "open_jails.smx" encountered error 23: Native detected error L 01/21/2013 - 12:22:00: [SM]Invalid timer handle 35802de (error 3) during timer end, displayed function is timer callback, not the stack trace L 01/21/2013 - 12:22:00: [SM]Unable to call function "opentimer" due to above error(s). L 01/21/2013 - 12:23:41: [SM]Plugin "open_jails.smx" encountered error 23: Native detected error L 01/21/2013 - 12:23:41: [SM]Invalid timer handle 3c102ed (error 3) during timer end, displayed function is timer callback, not the stack trace L 01/21/2013 - 12:23:41: [SM]Unable to call function "opentimer" due to above error(s).
Код переделанного плагина Код #include <sourcemod> #include <cstrike> #include <sdktools>
#pragma semicolon 1
#define CHAT_BANNER2 "\x07FFFFFF[\x0700E5FFJailbreak\x07FFFFFF]\x07FF0000"
new rounds; new iEnt; new String:EntityList[][] = {"func_door", "func_door_rotating"}; new opentime = 90; new bool:cellsopened = false; new Handle:gH_OpenCellsTimer = INVALID_HANDLE; new Handle:gH_Timer = INVALID_HANDLE;
public Plugin:myinfo = { name = "Jailbreak Addons", author = "Unknown", version = "1.0" }
public OnPluginStart() { // Commands RegConsoleCmd("sm_open", Jail_OpenCells, "Open all cells"); // Hooks HookEvent("round_start", Jail_RoundStart); HookEvent("round_end", Jail_RoundEnd, EventHookMode_Pre); }
stock change(client) { ChangeClientTeam(client, 3); CS_RespawnPlayer(client); }
public IntegerAbs(integer) { if(integer < 0) return -integer; else return integer; }
public Action:Jail_RoundStart(Handle:event, const String:name[], bool:dontBroadcast) { rounds = (GetTeamScore(2) + GetTeamScore(3) + 1); for(new client = 1; client <= MaxClients; client++) if(IsClientInGame(client) && IsPlayerAlive(client)) SetEntProp(client, Prop_Data, "m_takedamage", 2, 1); PrintToChatAll("%s Раунд: %d.", CHAT_BANNER2, rounds); cellsopened = false; opentime = 15; if(gH_OpenCellsTimer == INVALID_HANDLE && rounds != 0) gH_OpenCellsTimer = CreateTimer(1.0, opentimer, INVALID_HANDLE, TIMER_REPEAT); }
public Action:opentimer(Handle:timer) { new String:sBuffer[64]; if(opentime == 0) { Format(sBuffer, 64, "Камеры открыты!"); for(new client = 1; client <= MaxClients; client++) if(IsClientInGame(client)) { if(IsClientInGame(client)) { new Handle:hKHT = StartMessageOne("KeyHintText", client); BfWriteByte(hKHT, 1); BfWriteString(hKHT, sBuffer); EndMessage(); } } if(!IsVoteInProgress()) PrintHintTextToAll(sBuffer); if(gH_OpenCellsTimer != INVALID_HANDLE) CloseHandle(gH_OpenCellsTimer); gH_OpenCellsTimer = INVALID_HANDLE; cellsopened = true; for(new i = 0; i < sizeof(EntityList); i++) while((iEnt = FindEntityByClassname(iEnt, EntityList[i])) != -1) AcceptEntityInput(iEnt, "Open"); } else { opentime--; Format(sBuffer, 64, "Камеры откроются через: %02i:%02i.", opentime / 60, opentime % 60); for(new client = 1; client <= MaxClients; client++) if(IsClientInGame(client)) { if(IsClientInGame(client)) { new Handle:hKHT = StartMessageOne("KeyHintText", client); BfWriteByte(hKHT, 1); BfWriteString(hKHT, sBuffer); EndMessage(); } } if(!IsVoteInProgress()) PrintHintTextToAll(sBuffer); } }
public Action:Jail_RoundEnd(Handle:event, const String:name[], bool:dontBroadcast) { if(gH_OpenCellsTimer != INVALID_HANDLE) CloseHandle(gH_OpenCellsTimer); gH_OpenCellsTimer = INVALID_HANDLE; if(gH_Timer != INVALID_HANDLE) CloseHandle(gH_Timer); gH_Timer = INVALID_HANDLE; }
public Action:Jail_OpenCells(client, args) { decl String:string[MAX_NAME_LENGTH]; GetClientName(client, string, sizeof(string)); if(!IsClientInGame(client) || !IsPlayerAlive(client)) { ReplyToCommand(client, "%s Вы должны быть живым CT, чтобы открыть камеры.", CHAT_BANNER2); return Plugin_Handled; } if(GetClientTeam(client) != 3 && GetUserAdmin(client) == INVALID_ADMIN_ID) { ReplyToCommand(client, "%s Эта команда доступна только CT.", CHAT_BANNER2); return Plugin_Handled; } if(cellsopened) { ReplyToCommand(client, "%s Камеры уже открыты!", CHAT_BANNER2); return Plugin_Handled; } for(new i = 0; i < sizeof(EntityList); i++) { while((iEnt = FindEntityByClassname(iEnt, EntityList[i])) != -1) { AcceptEntityInput(iEnt, "Open"); } } PrintToChatAll("%s %N открыл камеры.", CHAT_BANNER2, client); cellsopened = true; return Plugin_Handled; }
Гости не могут скачивать файлы
|
Сообщение отредактировал Admin0912 - Понедельник, 21.01.2013, 09:29:35 |
|
| |
|