Банды Gang на сервер
OwIq
Дата: Воскресенье, 28.07.2013, 13:18:30 | Сообщение # 1
Сообщений: 14
Репутация: 0 [ +/- ]
Вот написал плагин своими кривыми руками но не работает рандомный игрок Смысл плагина: Когда заходишь на сервер ты пишешь !gang и вступаешь в банду и при каждом респауне тебе даеться скин есть ты писал !gang и после 8 секунд после начала должен рандомно выбраться игрок и gang и в чате это должно отобразиться. но не работает рандом
#include <sourcemod> #include <sdktools> #include <morecolors> #define MESS "\x03[Step-One] \x01%t" #define TEAM_T 2 new gangs; new String:modelGangster[128]; new Handle:Timer[MAXPLAYERS+1]; public Plugin:myinfo = { name = "Gang", author = "Qwerti", description = "Nigga Gang", version = "1.0.0", url = "123" }; public OnPluginStart() { LoadTranslations("Gang.phrases"); RegAdminCmd("sm_gang", Gangster, ADMFLAG_ROOT); HookEvent("player_spawn", playerSpawn); HookEvent("round_start", roundStart); } public OnMapStart() { PrecacheModel("models/player/step-one.ru/jail/2/leet.mdl",true); modelGangster = "models/player/step-one.ru/jail/2/leet.mdl"; } public Action:Gangster(client, args) { if (GetClientTeam(client) == TEAM_T) { PrintToChatAll(MESS, "Gangster_Accept", client); gangs = client; SetEntityModel(client, modelGangster); } else { PrintToChatAll(MESS, "Gangster_T", client); } } public Action:playerSpawn(Handle:event, const String:name[], bool:dontBroadcast) { new userid = GetEventInt(event, "userid"); new client = GetClientOfUserId(userid); if(client == gangs){ Timer[client] = CreateTimer(0.5, Gangsta, client); } } public OnClientDisconnect(client) { if (Timer[client] != INVALID_HANDLE) { KillTimer(Timer[client]); Timer[client] = INVALID_HANDLE; } } public Action:Gangsta(Handle:timer, any:client) { SetEntityModel(client, modelGangster); Timer[client] = INVALID_HANDLE; } GetRandomClient(bool:no_bot = true, bool:alive = false, team = 0) { new num = 0, players[MaxClients]; for (new i = 1; i <= MaxClients; i++) { if (!IsClientInGame(i) || (no_bot && IsFakeClient(i))) continue; if ((alive && !IsPlayerAlive(i)) || (0 < team < 4 && GetClientTeam(i) != team)) continue; players[num++] = i; } if (num > 0) return players[GetRandomInt(0, num - 1)]; return -1; } public Action:roundStart(Handle:event, const String:name[], bool:dontBroadcast) { new userid = GetEventInt(event, "userid"); new client = GetClientOfUserId(userid); if(client == gangs){ Timer[client] = CreateTimer(8.0, Gangsta_Taser, client); } } public Action:Gangsta_Taser(Handle:timer, any:client) { new target = GetRandomClient(); if (target != -1) { PrintToChatAll(MESS, "Gangster_Random", client); } Timer[client] = INVALID_HANDLE; }
Сообщение отредактировал OwIq - Воскресенье, 28.07.2013, 15:14:26
Scarface_slv
Дата: Воскресенье, 28.07.2013, 13:49:04 | Сообщение # 2
Сообщений: 737
Репутация: 61 [ +/- ]
в round_start нельзя получить индекс и юзер ид игрока если только циклом for... И тут еще есть ошибки)
OwIq
Дата: Воскресенье, 28.07.2013, 14:20:29 | Сообщение # 3
Сообщений: 14
Репутация: 0 [ +/- ]
Помогите плз я просто новичок в этом)
TEIN
Дата: Воскресенье, 28.07.2013, 15:00:53 | Сообщение # 4
Сообщений: 563
Репутация: 78 [ +/- ]
Избався от рекламы для начала
OwIq
Дата: Воскресенье, 28.07.2013, 15:09:50 | Сообщение # 5
Сообщений: 14
Репутация: 0 [ +/- ]
Это мой сайт )) Я понял тоесть нельзя в плагине писать сайты? это типо реклама?
Сообщение отредактировал OwIq - Воскресенье, 28.07.2013, 15:15:13
TEIN
Дата: Воскресенье, 28.07.2013, 15:26:09 | Сообщение # 6
Сообщений: 563
Репутация: 78 [ +/- ]
в данном контексте - да
Scarface_slv
Дата: Воскресенье, 28.07.2013, 15:26:21 | Сообщение # 7
Сообщений: 737
Репутация: 61 [ +/- ]
попробуй, если я правильно понял код, то должно быть примерно так насчет PrintToChat и PrintToChatAll думаю сам все исправишь я спешил)
Гости не могут скачивать файлы
TEIN
Дата: Воскресенье, 28.07.2013, 15:34:56 | Сообщение # 8
Сообщений: 563
Репутация: 78 [ +/- ]
Замудрил вроде
Сообщение отредактировал TEIN - Воскресенье, 28.07.2013, 15:35:45
OwIq
Дата: Воскресенье, 28.07.2013, 15:53:08 | Сообщение # 9
Сообщений: 14
Репутация: 0 [ +/- ]
Спасибо работает! А как теперь сделать чтобы Рандомному игроку давался дигл и он обьявлялся главарем банды и после его смерти писалось что он умер и простой игрок кто в банде тоже писалось что он умер? Просто если я полезу в твой код своими кривыми ручками будет не очень хорошо) Просто я писал по другому и у тебя как то все сокрашенно )
Scarface_slv
Дата: Воскресенье, 28.07.2013, 15:54:09 | Сообщение # 10
Сообщений: 737
Репутация: 61 [ +/- ]
Просто исправил его ошибки и не более) Можно все сделать намного проще если знать что именно нужно Можно еще так ------------------------------------------------------------ дальше ты уж сам) тебе уже сказали как)
Гости не могут скачивать файлы
Сообщение отредактировал Scarface_slv - Воскресенье, 28.07.2013, 15:59:30
TEIN
Дата: Воскресенье, 28.07.2013, 15:56:27 | Сообщение # 11
Сообщений: 563
Репутация: 78 [ +/- ]
GivePlayerItem и HookEvent("player_death", Event_OnPlayerDeath)
OwIq
Дата: Воскресенье, 28.07.2013, 15:59:47 | Сообщение # 12
Сообщений: 14
Репутация: 0 [ +/- ]
А то что ты второе скинул это что там я не понял? Вроде тоже самое
Сообщение отредактировал OwIq - Воскресенье, 28.07.2013, 16:00:09
Scarface_slv
Дата: Воскресенье, 28.07.2013, 16:02:16 | Сообщение # 13
Сообщений: 737
Репутация: 61 [ +/- ]
Нет в том нету round_start там все в player_spawn а в этом наоборот, это просто наброски для примера и не более
OwIq
Дата: Воскресенье, 28.07.2013, 16:34:19 | Сообщение # 14
Сообщений: 14
Репутация: 0 [ +/- ]
Ничего я не понял( А сколько будет написание такого плагина( ? Просто вы как то не так пишете
TEIN
Дата: Воскресенье, 28.07.2013, 16:50:15 | Сообщение # 15
Сообщений: 563
Репутация: 78 [ +/- ]
Описание хорошее дай, иначе по "твоему" не очень то понятно