Raised This Month: $51 Target: $400
 12% 

simple join plugin


Post New Thread Reply   
 
Thread Tools Display Modes
Cruze
Veteran Member
Join Date: May 2017
Old 02-22-2019 , 09:19   Re: simple join plugin
Reply With Quote #11

Quote:
Originally Posted by generals View Post
hi

don't works

cant use sm plugins load and unload? (when admin join and left)

check admins online (Because he may be the admin and leave the other admin)
I can't help you if you just write "don't works". At least try to explain how does it not work.
__________________
Taking paid private requests! Contact me
Cruze is offline
generals
Senior Member
Join Date: Aug 2018
Old 02-24-2019 , 04:06   Re: simple join plugin
Reply With Quote #12

Quote:
Originally Posted by Nexd View Post
Can you upload your rtv plugin? and i'll edit it
yes..go right ahead:

PHP Code:
/**
 * vim: set ts=4 :
 * =============================================================================
 * Rock The Vote Extended
 * Creates a map vote when the required number of players have requested one.
 *
 * Rock The Vote Extended (C)2012-2013 Powerlord (Ross Bemrose)
 * SourceMod (C)2004-2007 AlliedModders LLC.  All rights reserved.
 * =============================================================================
 *
 * This program is free software; you can redistribute it and/or modify it under
 * the terms of the GNU General Public License, version 3.0, as published by the
 * Free Software Foundation.
 * 
 * This program is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
 * FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
 * details.
 *
 * You should have received a copy of the GNU General Public License along with
 * this program.  If not, see <http://www.gnu.org/licenses/>.
 *
 * As a special exception, AlliedModders LLC gives you permission to link the
 * code of this program (as well as its derivative works) to "Half-Life 2," the
 * "Source Engine," the "SourcePawn JIT," and any Game MODs that run on software
 * by the Valve Corporation.  You must obey the GNU General Public License in
 * all respects for all other code used.  Additionally, AlliedModders LLC grants
 * this exception to all derivative works.  AlliedModders LLC defines further
 * exceptions, found in LICENSE.txt (as of this writing, version JULY-31-2007),
 * or <http://www.sourcemod.net/license.php>.
 *
 * Version: $Id$
 */

#include <sourcemod>
#include <mapchooser>
#include "include/mapchooser_extended"
#include <nextmap>
#include <colors>

#pragma semicolon 1

#define MCE_VERSION "1.10.0"

public Plugin:myinfo =
{
    
name "Rock The Vote Extended",
    
author "Powerlord and AlliedModders LLC",
    
description "Provides RTV Map Voting",
    
version MCE_VERSION,
    
url "https://forums.alliedmods.net/showthread.php?t=156974"
};

new 
Handle:g_Cvar_Needed INVALID_HANDLE;
new 
Handle:g_Cvar_MinPlayers INVALID_HANDLE;
new 
Handle:g_Cvar_InitialDelay INVALID_HANDLE;
new 
Handle:g_Cvar_Interval INVALID_HANDLE;
new 
Handle:g_Cvar_ChangeTime INVALID_HANDLE;
new 
Handle:g_Cvar_RTVPostVoteAction INVALID_HANDLE;

new 
bool:g_CanRTV false;        // True if RTV loaded maps and is active.
new bool:g_RTVAllowed false;    // True if RTV is available to players. Used to delay rtv votes.
new g_Voters 0;                // Total voters connected. Doesn't include fake clients.
new g_Votes 0;                // Total number of "say rtv" votes
new g_VotesNeeded 0;            // Necessary votes before map vote begins. (voters * percent_needed)
new bool:g_Voted[MAXPLAYERS+1] = {false, ...};

new 
bool:g_InChange false;

public 
OnPluginStart()
{
    
LoadTranslations("common.phrases");
    
LoadTranslations("rockthevote.phrases");
    
LoadTranslations("basevotes.phrases");
    
    
g_Cvar_Needed CreateConVar("sm_rtv_needed""0.60""Percentage of players needed to rockthevote (Def 60%)"0true0.05true1.0);
    
g_Cvar_MinPlayers CreateConVar("sm_rtv_minplayers""0""Number of players required before RTV will be enabled."0true0.0truefloat(MAXPLAYERS));
    
g_Cvar_InitialDelay CreateConVar("sm_rtv_initialdelay""30.0""Time (in seconds) before first RTV can be held"0true0.00);
    
g_Cvar_Interval CreateConVar("sm_rtv_interval""240.0""Time (in seconds) after a failed RTV before another can be held"0true0.00);
    
g_Cvar_ChangeTime CreateConVar("sm_rtv_changetime""0""When to change the map after a succesful RTV: 0 - Instant, 1 - RoundEnd, 2 - MapEnd"_true0.0true2.0);
    
g_Cvar_RTVPostVoteAction CreateConVar("sm_rtv_postvoteaction""0""What to do with RTV's after a mapvote has completed. 0 - Allow, success = instant change, 1 - Deny"_true0.0true1.0);
    
    
RegConsoleCmd("say"Command_Say);
    
RegConsoleCmd("say_team"Command_Say);
    
    
RegConsoleCmd("sm_rtv"Command_RTV);
    
    
RegAdminCmd("sm_forcertv"Command_ForceRTVADMFLAG_CHANGEMAP"Force an RTV vote");
    
RegAdminCmd("mce_forcertv"Command_ForceRTVADMFLAG_CHANGEMAP"Force an RTV vote");
    
    
// Rock The Vote Extended cvars
    
CreateConVar("rtve_version"MCE_VERSION"Rock The Vote Extended Version"FCVAR_PLUGIN|FCVAR_SPONLY|FCVAR_NOTIFY|FCVAR_DONTRECORD);
    
    
AutoExecConfig(true"rtv");
}

public 
OnMapStart()
{
    
g_Voters 0;
    
g_Votes 0;
    
g_VotesNeeded 0;
    
g_InChange false;
    
    
/* Handle late load */
    
for (new i=1i<=MaxClientsi++)
    {
        if (
IsClientConnected(i))
        {
            
OnClientConnected(i);    
        }    
    }
}

public 
OnMapEnd()
{
    
g_CanRTV false;    
    
g_RTVAllowed false;
}

public 
OnConfigsExecuted()
{    
    
g_CanRTV true;
    
g_RTVAllowed false;
    
CreateTimer(GetConVarFloat(g_Cvar_InitialDelay), Timer_DelayRTV_TIMER_FLAG_NO_MAPCHANGE);
}

public 
OnClientConnected(client)
{
    if(
IsFakeClient(client))
        return;
    
    
g_Voted[client] = false;

    
g_Voters++;
    
g_VotesNeeded RoundToFloor(float(g_Voters) * GetConVarFloat(g_Cvar_Needed));
    
    return;
}

public 
OnClientDisconnect(client)
{
    if(
IsFakeClient(client))
        return;
    
    if(
g_Voted[client])
    {
        
g_Votes--;
    }
    
    
g_Voters--;
    
    
g_VotesNeeded RoundToFloor(float(g_Voters) * GetConVarFloat(g_Cvar_Needed));
    
    if (!
g_CanRTV)
    {
        return;    
    }
    
    if (
g_Votes && 
        
g_Voters && 
        
g_Votes >= g_VotesNeeded && 
        
g_RTVAllowed 
    {
        if (
GetConVarInt(g_Cvar_RTVPostVoteAction) == && HasEndOfMapVoteFinished())
        {
            return;
        }
        
        
StartRTV();
    }    
}

public 
Action:Command_RTV(clientargs)
{
    if (!
g_CanRTV || !client)
    {
        return 
Plugin_Handled;
    }
    
    
AttemptRTV(client);
    
    return 
Plugin_Handled;
}

public 
Action:Command_Say(clientargs)
{
    if (!
g_CanRTV || !client)
    {
        return 
Plugin_Continue;
    }
    
    
decl String:text[192];
    if (!
GetCmdArgString(textsizeof(text)))
    {
        return 
Plugin_Continue;
    }
    
    new 
startidx 0;
    if(
text[strlen(text)-1] == '"')
    {
        
text[strlen(text)-1] = '\0';
        
startidx 1;
    }
    
    new 
ReplySource:old SetCmdReplySource(SM_REPLY_TO_CHAT);
    
    if (
strcmp(text[startidx], "rtv"false) == || strcmp(text[startidx], "rockthevote"false) == 0)
    {
        
AttemptRTV(client);
    }
    
    
SetCmdReplySource(old);
    
    return 
Plugin_Continue;    
}

AttemptRTV(client)
{
    if (!
g_RTVAllowed  || (GetConVarInt(g_Cvar_RTVPostVoteAction) == && HasEndOfMapVoteFinished()))
    {
        
CReplyToCommand(client"[SM] %t""RTV Not Allowed");
        return;
    }
        
    if (!
CanMapChooserStartVote())
    {
        
CReplyToCommand(client"[SM] %t""RTV Started");
        return;
    }
    
    if (
GetClientCount(true) < GetConVarInt(g_Cvar_MinPlayers))
    {
        
CReplyToCommand(client"[SM] %t""Minimal Players Not Met");
        return;            
    }
    
    if (
g_Voted[client])
    {
        
CReplyToCommand(client"[SM] %t""Already Voted"g_Votesg_VotesNeeded);
        return;
    }    
    
    new 
String:name[MAX_NAME_LENGTH];
    
GetClientName(clientnamesizeof(name));
    
    
g_Votes++;
    
g_Voted[client] = true;
    
    
CPrintToChatAll("[SM] %t""RTV Requested"nameg_Votesg_VotesNeeded);
    
    if (
g_Votes >= g_VotesNeeded)
    {
        
StartRTV();
    }    
}

public 
Action:Timer_DelayRTV(Handle:timer)
{
    
g_RTVAllowed true;
}

StartRTV()
{
    if (
g_InChange)
    {
        return;    
    }
    
    if (
EndOfMapVoteEnabled() && HasEndOfMapVoteFinished())
    {
        
/* Change right now then */
        
new String:map[PLATFORM_MAX_PATH];
        if (
GetNextMap(mapsizeof(map)))
        {
            
CPrintToChatAll("[SM] %t""Changing Maps"map);
            
CreateTimer(5.0Timer_ChangeMap_TIMER_FLAG_NO_MAPCHANGE);
            
g_InChange true;
            
            
ResetRTV();
            
            
g_RTVAllowed false;
        }
        return;    
    }
    
    if (
CanMapChooserStartVote())
    {
        new 
MapChange:when MapChange:GetConVarInt(g_Cvar_ChangeTime);
        
InitiateMapChooserVote(when);
        
        
ResetRTV();
        
        
g_RTVAllowed false;
        
CreateTimer(GetConVarFloat(g_Cvar_Interval), Timer_DelayRTV_TIMER_FLAG_NO_MAPCHANGE);
    }
}

ResetRTV()
{
    
g_Votes 0;
            
    for (new 
i=1i<=MAXPLAYERSi++)
    {
        
g_Voted[i] = false;
    }
}

public 
Action:Timer_ChangeMap(Handle:hTimer)
{
    
g_InChange false;
    
    
LogMessage("RTV changing map manually");
    
    new 
String:map[PLATFORM_MAX_PATH];
    if (
GetNextMap(mapsizeof(map)))
    {    
        
ForceChangeLevel(map"RTV after mapvote");
    }
    
    return 
Plugin_Stop;
}

// Rock The Vote Extended functions

public Action:Command_ForceRTV(clientargs)
{
    if (!
g_CanRTV || !client)
    {
        return 
Plugin_Handled;
    }

    
ShowActivity2(client"[RTVE] ""%t""Initiated Vote Map");

    
StartRTV();
    
    return 
Plugin_Handled;

this topic:

https://forums.alliedmods.net/showthread.php?t=156974

Quote:
Originally Posted by Cruze View Post
I can't help you if you just write "don't works". At least try to explain how does it not work.
it's load perfectly..but when i type rtv with admin name .. rtv works and come map menu
generals is offline
Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 09:20.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode