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

[Paid Requests] A slew of Plugin Requests


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
Snack Patrol
Member
Join Date: Jan 2012
Location: Earth
Old 09-08-2012 , 18:12   [Paid Requests] A slew of Plugin Requests
Reply With Quote #1

Hey guys, I am looking for the following plugins for my TF2 server and am willing to pay for each one. The price of each is listed below the description of the plug-in. I also have listed the priority of each in order of what I see is most important for me atm. Thanks. Keep in mind I have zero scripting knowledge whatsoever and I understand some of these are fairly easy to code with minimal coding knowledge, but again I have zero.

Please PM me if you can do exactly what I'm asking, and are willing to do it for the listed price. Also some links to your prior work would be nice.

One last thing is that I think these prices are fair, I apologize if they are a huge insult. I am not exactly the richest person but I tried to make them fair regardless. Prices are negotiable if need be (to a certain extent). Anyway, here we go! (There's a lot):

Random Advertisements
Priority: Medium High

Basically I want this plug-in, but instead of displaying them in the order they're listed in the file, it displays a random one.

Price: $30

Custom Weapon Sounds
Priority: Medium High

Weapon sounds are client-side. However I believe there are ways around this. Something like, block the default weapon sound, and then attach some code that plays a sound when the weapon fires/reloads.

I need this to be able to have an easy enough interface, so I can go in and edit any weapon sound I want. What I mean is, I have some custom sounds in mind, but I don't want to be restricted to just those. I want the plugin to have some sort of config file where, if I go into game_sounds_weapons.txt for example, and look up a sound's information, I can then edit a config file to adjust any weapon sound I want.

I also need this to have support for reload sounds, machina double kill, sentry sounds, etc. If someone could make this so that I can bypass any client-side sound that's basically what I'd want.

Price: $38

Server-Filling Perks
Priority: High

I need a plug-in akin to the ones used by UKCS & (-TN-) clan in which the first x amount of people (I'd prefer 5) who join the server, are then granted perks if they stay until it has around 20 people, or is full. Then, if the server empties out, it resets. The perks I'd want would be the same as donator perks (which I haven't exactly set up yet, but still). They would be as follows:
  • A reserved slot on the server for as long as it has people in it.
  • Colored text
  • A sprite over their head as I've seen many servers do.
  • Maybe some other stuff.
Basically if you could have it be like "Ok, if you are one of these 5 people, give them access to Donator Benefits". I don't know how you'd code that but I'm sure we could work something out. Maybe through admin flags?


Price: $48


Mantreads Instant Kill
Priority: Medium


Exactly what it sounds like. Like the Goomba stomp plug-in but restricted to the person having the mantreads on. I just hate that they don't instant kill people as it's hard enough to land on a person's head in the first place.


Price: $18


Kirby Star Sprites When Landing
Priority: Medium Low


I would like, if possible, that when someone takes fall damage, Star sprites to come out of their feet, like this video when King Dedede lands: Here. I would like it so that at any angle, they would appear to come out of the left & right side of the person, no matter which way the person is facing. Basically, like this: Picture. Also, I can and will provide the sprite(s). That's no biggie.


Price: $40


Loadout Restriction Vote
Priority: High

I would like basically the ability to make votes, that when you type for instance voterestrict, a menu would pop up like this:


Pick your loadout!
1. Vote all Trolldier
2. Vote All Melee Heavy
3. Vote All Holiday Punch Heavy
4. Vote All Spy
5. Vote Back to Normal



After enough people trigger the same thing by chat, (whether it be by a certain percentage or a minimum number, or both, like Custom Votes), a vote would pop up for all players asking if they'd like to


Go All Trolldier?
1. Yes
2. No


If the vote succeeds, I'd like it to force the class, and loadout that was chosen in the vote. I'm pretty sure this can be done because the Give Items plugin exists, a class restrict plug-in/Set Class plug-in exists, and many vote plugins exist, just would like to be able to bring these all together.

Price: $100

~~~

Prices are definitely up for negotiation, but not by that much, I believe these are fair prices to work with. Again, if you can make this happen, PM me or reply here or something. I hope I didn't break any rules. Thanks in advance guys.

Last edited by Snack Patrol; 09-08-2012 at 18:17.
Snack Patrol is offline
Mitchell
~lick~
Join Date: Mar 2010
Old 09-08-2012 , 20:08   Re: [Paid Requests] A slew of Plugin Requests
Reply With Quote #2

Quote:
Originally Posted by Snack Patrol View Post
Random Advertisements
Priority: Medium High

Basically I want this plug-in, but instead of displaying them in the order they're listed in the file, it displays a random one.

Price: $30
I could do that
Mitchell is offline
necavi
Veteran Member
Join Date: Sep 2010
Old 09-08-2012 , 20:20   Re: [Paid Requests] A slew of Plugin Requests
Reply With Quote #3

As could I, I have a plugin that'd only need some tweaks to do so.
necavi is offline
Mitchell
~lick~
Join Date: Mar 2010
Old 09-08-2012 , 20:24   Re: [Paid Requests] A slew of Plugin Requests
Reply With Quote #4

Quote:
Originally Posted by necavi View Post
As could I, I have a plugin that'd only need some tweaks to do so.
i already called dibs! plus i just have like 5 more lines of code, then it would be done lol.
Mitchell is offline
thetwistedpanda
Good Little Panda
Join Date: Sep 2008
Old 09-08-2012 , 20:51   Re: [Paid Requests] A slew of Plugin Requests
Reply With Quote #5

Just a little note. While some of the prices are fair (only two of them would actually be difficult), these two can probably save you some money.

Random Advertisements
- Two ways to write this, the first one allowing repeat messages and the second one merely storing the index in an array, removing them one at a time, and then repeating the process when none remains.

Mantreads Instant Kill
- Involves taking the Goomba Stomp plugin and checking to see if an item is in a slot. Should be very easy, even for someone not familiar with TF2.
__________________

Last edited by thetwistedpanda; 09-08-2012 at 20:56.
thetwistedpanda is offline
Mitchell
~lick~
Join Date: Mar 2010
Old 09-08-2012 , 21:03   Re: [Paid Requests] A slew of Plugin Requests
Reply With Quote #6

Honestly when i get done with the random advert one ill just paste it here for any one, no payment required.

Here is a quick snippet of the coding, too lazy to upload it as a plugin:
PHP Code:
#pragma semicolon 1

#include <sourcemod>

#define PL_VERSION    "0.5.5"
#define CVAR_DISABLED "OFF"
#define CVAR_ENABLED  "ON"
#define SIZE_OF_INT        2147483647
#define MAXADVERTS    255

public Plugin:myinfo = {
    
name        "Advertisements",
    
author      "Tsunami",
    
description "Display advertisements",
    
version     PL_VERSION,
    
url         "http://www.tsunami-productions.nl"
};

enum AdvertsConf
{
    
String:Text[256],
    
String:Type[6],
    
String:Flags[16],
};
new 
Advertisments[MAXADVERTS+1][AdvertsConf];
new 
AdvertCount 0;

new 
g_iFrames                 0;
new 
g_iTickrate;
new 
bool:g_bTickrate          true;
new 
Float:g_fTime;
new 
Handle:g_hAdvertisements  INVALID_HANDLE;
new 
Handle:g_hCenterAd[MAXPLAYERS 1];
new 
Handle:g_hEnabled;
new 
Handle:g_hFile;
new 
Handle:g_hInterval;
new 
Handle:g_hTimer;

static 
g_iSColors[4]             = {1,               3,              3,           4};
static 
g_iTColors[13][3]         = {{255255255}, {25500},    {02550}, {00255}, {2552550}, {2550255}, {0255255}, {2551280}, {2550128}, {1282550}, {0255128}, {1280255}, {0128255}};
static 
String:g_sSColors[4][13]  = {"{DEFAULT}",     "{LIGHTGREEN}""{TEAM}",    "{GREEN}"};
static 
String:g_sTColors[13][12] = {"{WHITE}",       "{RED}",        "{GREEN}",   "{BLUE}",    "{YELLOW}",    "{PURPLE}",    "{CYAN}",      "{ORANGE}",    "{PINK}",      "{OLIVE}",     "{LIME}",      "{VIOLET}",    "{LIGHTBLUE}"};

public 
OnPluginStart() {
    
CreateConVar("sm_advertisements_version"PL_VERSION"Display advertisements"FCVAR_PLUGIN|FCVAR_SPONLY|FCVAR_REPLICATED|FCVAR_NOTIFY);
    
g_hEnabled        CreateConVar("sm_advertisements_enabled",  "1",                  "Enable/disable displaying advertisements.");
    
g_hFile           CreateConVar("sm_advertisements_file",     "advertisements.txt""File to read the advertisements from.");
    
g_hInterval       CreateConVar("sm_advertisements_interval""30",                 "Amount of seconds between advertisements.");
    
    
HookConVarChange(g_hIntervalConVarChange_Interval);
    
RegServerCmd("sm_advertisements_reload"Command_ReloadAds"Reload the advertisements");
}

public 
OnMapStart() {
    
ParseAds();
    
    
g_hTimer          CreateTimer(GetConVarInt(g_hInterval) * 1.0Timer_DisplayAds_TIMER_REPEAT|TIMER_FLAG_NO_MAPCHANGE);
}

public 
OnGameFrame() {
    if (
g_bTickrate) {
        
g_iFrames++;
        
        new 
Float:fTime GetEngineTime();
        if (
fTime >= g_fTime) {
            if (
g_iFrames == g_iTickrate) {
                
g_bTickrate false;
            } else {
                
g_iTickrate g_iFrames;
                
g_iFrames   0;    
                
g_fTime     fTime 1.0;
            }
        }
    }
}

public 
ConVarChange_Interval(Handle:convar, const String:oldValue[], const String:newValue[]) {
    if (
g_hTimer != INVALID_HANDLE) {
        
KillTimer(g_hTimer);
    }
    
    
g_hTimer          CreateTimer(GetConVarInt(g_hInterval) * 1.0Timer_DisplayAds_TIMER_REPEAT|TIMER_FLAG_NO_MAPCHANGE);
}

public 
Handler_DoNothing(Handle:menuMenuAction:actionparam1param2) {}

public 
Action:Command_ReloadAds(args) {
    
ParseAds();
}

public 
Action:Timer_DisplayAds(Handle:timer) {
    if (
GetConVarBool(g_hEnabled)) {
        
decl AdminFlag:fFlagList[16], String:sBuffer[256], String:sFlags[16], String:sText[256], String:sType[6];
        new 
Rnd Math_GetRandomInt(0AdvertCount);
        
Format(sType 6"%s",Advertisments[Rnd][Type]);
        
Format(sText 256"%s",Advertisments[Rnd][Text]);
        
Format(sFlags 16"%s",Advertisments[Rnd][Flags]);
        new 
bool:bAdmins StrEqual(sFlags""), bool:bFlags = !StrEqual(sFlags"none");
        if (
bFlags) {
            
FlagBitsToArray(ReadFlagString(sFlags), fFlagListsizeof(fFlagList));
        }
        new 
RandomAdvert AdvertCount
        
if (StrContains(sText"{CURRENTMAP}") != -1) {
            
GetCurrentMap(sBuffersizeof(sBuffer));
            
ReplaceString(sTextsizeof(sText), "{CURRENTMAP}"sBuffer);
        }
        
        if (
StrContains(sText"{DATE}")       != -1) {
            
FormatTime(sBuffersizeof(sBuffer), "%m/%d/%Y");
            
ReplaceString(sTextsizeof(sText), "{DATE}",       sBuffer);
        }
        
        if (
StrContains(sText"{TICKRATE}")   != -1) {
            
IntToString(g_iTickratesBuffersizeof(sBuffer));
            
ReplaceString(sTextsizeof(sText), "{TICKRATE}",   sBuffer);
        }
        
        if (
StrContains(sText"{TIME}")       != -1) {
            
FormatTime(sBuffersizeof(sBuffer), "%I:%M:%S%p");
            
ReplaceString(sTextsizeof(sText), "{TIME}",       sBuffer);
        }
        
        if (
StrContains(sText"{TIME24}")     != -1) {
            
FormatTime(sBuffersizeof(sBuffer), "%H:%M:%S");
            
ReplaceString(sTextsizeof(sText), "{TIME24}",     sBuffer);
        }
        
        if (
StrContains(sText"{TIMELEFT}")   != -1) {
            new 
iMinsiSecsiTimeLeft;
            
            if (
GetMapTimeLeft(iTimeLeft) && iTimeLeft 0) {
                
iMins iTimeLeft 60;
                
iSecs iTimeLeft 60;
            }
            
            
Format(sBuffersizeof(sBuffer), "%d:%02d"iMinsiSecs);
            
ReplaceString(sTextsizeof(sText), "{TIMELEFT}",   sBuffer);
        }
        
        if (
StrContains(sText"\\n")          != -1) {
            
Format(sBuffersizeof(sBuffer), "%c"13);
            
ReplaceString(sTextsizeof(sText), "\\n",          sBuffer);
        }
        
        new 
iStart StrContains(sText"{BOOL:");
        while (
iStart != -1) {
            new 
iEnd StrContains(sText[iStart 6], "}");
            
            if (
iEnd != -1) {
                
decl String:sConVar[64], String:sName[64];
                
                
strcopy(sConVariEnd 1sText[iStart 6]);
                
Format(sNamesizeof(sName), "{BOOL:%s}"sConVar);
                
                new 
Handle:hConVar FindConVar(sConVar);
                if (
hConVar != INVALID_HANDLE) {
                    
ReplaceString(sTextsizeof(sText), sNameGetConVarBool(hConVar) ? CVAR_ENABLED CVAR_DISABLED);
                }
            }
            
            new 
iStart2 StrContains(sText[iStart 1], "{BOOL:") + iStart 1;
            if (
iStart == iStart2) {
                break;
            } else {
                
iStart iStart2;
            }
        }
        
        
iStart StrContains(sText"{");
        while (
iStart != -1) {
            new 
iEnd StrContains(sText[iStart 1], "}");
            
            if (
iEnd != -1) {
                
decl String:sConVar[64], String:sName[64];
                
                
strcopy(sConVariEnd 1sText[iStart 1]);
                
Format(sNamesizeof(sName), "{%s}"sConVar);
                
                new 
Handle:hConVar FindConVar(sConVar);
                if (
hConVar != INVALID_HANDLE) {
                    
GetConVarString(hConVarsBuffersizeof(sBuffer));
                    
ReplaceString(sTextsizeof(sText), sNamesBuffer);
                }
            }
            
            new 
iStart2 StrContains(sText[iStart 1], "{") + iStart 1;
            if (
iStart == iStart2) {
                break;
            } else {
                
iStart iStart2;
            }
        }
        
        if (
StrContains(sType"C") != -1) {
            for (new 
1iClients GetClientCount(); <= iClientsi++) {
                if (
IsClientInGame(i) && !IsFakeClient(i) &&
                        ((!
bAdmins && !(bFlags && HasFlag(ifFlagList))) ||
                         
bAdmins && (GetUserFlagBits(i) & ADMFLAG_GENERIC ||
                                                 
GetUserFlagBits(i) & ADMFLAG_ROOT))) {
                    
PrintCenterText(isText);
                    
                    new 
Handle:hCenterAd;
                    
g_hCenterAd[i] = CreateDataTimer(1.0Timer_CenterAdhCenterAdTIMER_FLAG_NO_MAPCHANGE|TIMER_REPEAT);
                    
WritePackCell(hCenterAd,   i);
                    
WritePackString(hCenterAdsText);
                }
            }
        }
        if (
StrContains(sType"H") != -1) {
            for (new 
1iClients GetClientCount(); <= iClientsi++) {
                if (
IsClientInGame(i) && !IsFakeClient(i) &&
                        ((!
bAdmins && !(bFlags && HasFlag(ifFlagList))) ||
                         
bAdmins && (GetUserFlagBits(i) & ADMFLAG_GENERIC ||
                                                 
GetUserFlagBits(i) & ADMFLAG_ROOT))) {
                    
PrintHintText(isText);
                }
            }
        }
        if (
StrContains(sType"M") != -1) {
            new 
Handle:hPl CreatePanel();
            
DrawPanelText(hPlsText);
            
SetPanelCurrentKey(hPl10);
            
            for (new 
1iClients GetClientCount(); <= iClientsi++) {
                if (
IsClientInGame(i) && !IsFakeClient(i) &&
                        ((!
bAdmins && !(bFlags && HasFlag(ifFlagList))) ||
                         
bAdmins && (GetUserFlagBits(i) & ADMFLAG_GENERIC ||
                                                 
GetUserFlagBits(i) & ADMFLAG_ROOT))) {
                    
SendPanelToClient(hPliHandler_DoNothing10);
                }
            }
            
            
CloseHandle(hPl);
        }
        if (
StrContains(sType"S") != -1) {
            new 
iTeamColors StrContains(sText"{TEAM}"), String:sColor[4];
            
            
Format(sTextsizeof(sText), "%c%s"1sText);
            
            for (new 
0sizeof(g_iSColors); c++) {
                if (
StrContains(sTextg_sSColors[c])) {
                    
Format(sColorsizeof(sColor), "%c"g_iSColors[c]);
                    
ReplaceString(sTextsizeof(sText), g_sSColors[c], sColor);
                }
            }
            
            if (
iTeamColors == -1) {
                for (new 
1iClients GetClientCount(); <= iClientsi++) {
                    if (
IsClientInGame(i) && !IsFakeClient(i) &&
                            ((!
bAdmins && !(bFlags && HasFlag(ifFlagList))) ||
                             
bAdmins && (GetUserFlagBits(i) & ADMFLAG_GENERIC ||
                                                     
GetUserFlagBits(i) & ADMFLAG_ROOT))) {
                        
PrintToChat(isText);
                    }
                }
            } else {
                for (new 
1iClients GetClientCount(); <= iClientsi++) {
                    if (
IsClientInGame(i) && !IsFakeClient(i) &&
                            ((!
bAdmins && !(bFlags && HasFlag(ifFlagList))) ||
                             
bAdmins && (GetUserFlagBits(i) & ADMFLAG_GENERIC ||
                                                     
GetUserFlagBits(i) & ADMFLAG_ROOT))) {
                        
SayText2(isText);
                    }
                }
            }
        }
        if (
StrContains(sType"T") != -1) {
            
decl String:sColor[16];
            new 
iColor = -1iPos BreakString(sTextsColorsizeof(sColor));
            
            for (new 
0sizeof(g_sTColors); i++) {
                if (
StrEqual(sColorg_sTColors[i])) {
                    
iColor i;
                }
            }
            
            if (
iColor == -1) {
                
iPos     0;
                
iColor   0;
            }
            
            new 
Handle:hKv CreateKeyValues("Stuff""title"sText[iPos]);
            
KvSetColor(hKv"color"g_iTColors[iColor][0], g_iTColors[iColor][1], g_iTColors[iColor][2], 255);
            
KvSetNum(hKv,   "level"1);
            
KvSetNum(hKv,   "time",  10);
            
            for (new 
1iClients GetClientCount(); <= iClientsi++) {
                if (
IsClientInGame(i) && !IsFakeClient(i) &&
                        ((!
bAdmins && !(bFlags && HasFlag(ifFlagList))) ||
                         
bAdmins && (GetUserFlagBits(i) & ADMFLAG_GENERIC ||
                                                 
GetUserFlagBits(i) & ADMFLAG_ROOT))) {
                    
CreateDialog(ihKvDialogType_Msg);
                }
            }
            
            
CloseHandle(hKv);
        }
    }
}

public 
Action:Timer_CenterAd(Handle:timerHandle:pack) {
    
decl String:sText[256];
    static 
iCount          0;
    
    
ResetPack(pack);
    new 
iClient            ReadPackCell(pack);
    
ReadPackString(packsTextsizeof(sText));
    
    if (
IsClientInGame(iClient) && ++iCount 5) {
        
PrintCenterText(iClientsText);
        
        return 
Plugin_Continue;
    } else {
        
iCount               0;
        
g_hCenterAd[iClient] = INVALID_HANDLE;
        
        return 
Plugin_Stop;
    }
}

ParseAds() {
    if (
g_hAdvertisements != INVALID_HANDLE) {
        
CloseHandle(g_hAdvertisements);
    }
    
    for (new 
1<= MAXADVERTSi++) {
        
Format(Advertisments[i][Text], 256"");
        
Format(Advertisments[i][Type], 6"");
        
Format(Advertisments[i][Flags], 16"");
    }
    
g_hAdvertisements CreateKeyValues("Advertisements");
    
    
decl String:sFile[256], String:sPath[256];
    
GetConVarString(g_hFilesFilesizeof(sFile));
    
BuildPath(Path_SMsPathsizeof(sPath), "configs/%s"sFile);
    
    
AdvertCount 0;
    if (
FileExists(sPath)) {
        
FileToKeyValues(g_hAdvertisementssPath);
        
KvGotoFirstSubKey(g_hAdvertisements);
        
decl String:sFlags[16], String:sText[256], String:sType[6];
        do
        {
            
KvGetString(g_hAdvertisements"type",  sType,  sizeof(sType));
            
Format(Advertisments[i][Type], 6"%s",sType);
            
KvGetString(g_hAdvertisements"text",  sText,  sizeof(sText));
            
Format(Advertisments[i][Text], 256"%s",sText);
            
KvGetString(g_hAdvertisements"flags"sFlagssizeof(sFlags), "none");
            
Format(Advertisments[i][Flags], 16"%s",sFlags);
            
AdvertCount++;
        } while (
KvGotoNextKey(kv));
        
KvRewind(g_hAdvertisements);
        
    } else {
        
SetFailState("File Not Found: %s"sPath);
    }
}

SayText2(to, const String:message[]) {
    new 
Handle:hBf StartMessageOne("SayText2"to);
    
    if (
hBf != INVALID_HANDLE) {
        
BfWriteByte(hBf,   to);
        
BfWriteByte(hBf,   true);
        
BfWriteString(hBfmessage);
        
        
EndMessage();
    }
}

bool:HasFlag(iClientAdminFlag:fFlagList[16]) {
    new 
iFlags GetUserFlagBits(iClient);
    if (
iFlags ADMFLAG_ROOT) {
        return 
true;
    } else {
        for (new 
0sizeof(fFlagList); i++) {
            if (
iFlags FlagToBit(fFlagList[i])) {
                return 
true;
            }
        }
        
        return 
false;
    }
}
//SMLIB stock!
stock Math_GetRandomInt(minmax)
{
    new 
random GetURandomInt();

    if (
random == 0) {
        
random++;
    }

    return 
RoundToCeil(float(random) / (float(SIZE_OF_INT) / float(max min 1))) + min 1;


Last edited by Mitchell; 09-08-2012 at 21:32.
Mitchell is offline
Snack Patrol
Member
Join Date: Jan 2012
Location: Earth
Old 09-12-2012 , 05:30   Re: [Paid Requests] A slew of Plugin Requests
Reply With Quote #7

Hey guys, thanks for the response so far. I've found someone to do the Mantreads Instant Kill, and someone working on the Server-Filling Perks so I just need the others atm. How's progress on the Advertisements one? Currently that code isn't working
Snack Patrol is offline
minimoney1
SourceMod Donor
Join Date: Dec 2010
Old 09-12-2012 , 06:08   Re: [Paid Requests] A slew of Plugin Requests
Reply With Quote #8

You could use my adverts plugin and with a simple module for it, it would function exactly as you please.
Edit: Try this out: https://github.com/minimoney1/SM-TF2...erts_random.sp (It's that simple, or should be)
Edit 2: Make sure you try it with a beta version; i.e. get the scripting folder and compile it for yourself.
__________________
Need help? PM me or add me on Steam.
My Steam




Quote:
Originally Posted by Rp.KryptoNite View Post
For some reason his Plugin never worked for me ,
@credits were added
im not stealing any plugins dude its my THING

Last edited by minimoney1; 09-12-2012 at 06:45.
minimoney1 is offline
ph
AlliedModders Donor
Join Date: Mar 2006
Old 09-12-2012 , 18:34   Re: [Paid Requests] A slew of Plugin Requests
Reply With Quote #9

Quote:
Originally Posted by Snack Patrol View Post
Server-Filling Perks
Priority: High

I need a plug-in akin to the ones used by UKCS & (-TN-) clan in which the first x amount of people (I'd prefer 5) who join the server, are then granted perks if they stay until it has around 20 people, or is full. Then, if the server empties out, it resets. The perks I'd want would be the same as donator perks (which I haven't exactly set up yet, but still). They would be as follows:
  • A reserved slot on the server for as long as it has people in it.
  • Colored text
  • A sprite over their head as I've seen many servers do.
  • Maybe some other stuff.
Basically if you could have it be like "Ok, if you are one of these 5 people, give them access to Donator Benefits". I don't know how you'd code that but I'm sure we could work something out. Maybe through admin flags?


Price: $48

I am so keen to PAY for the developer for this plugin, please private message me.
__________________

Last edited by ph; 09-12-2012 at 18:34.
ph is offline
Inflikted
SourceMod Donor
Join Date: Jan 2009
Old 09-13-2012 , 10:42   Re: [Paid Requests] A slew of Plugin Requests
Reply With Quote #10

Quote:
Originally Posted by ph View Post
I am so keen to PAY for the developer for this plugin, please private message me.
I had this already requested and completed here -> https://forums.alliedmods.net/showthread.php?t=142073

Minimum Player number to get Stamm Points
Less Players => More Points

Last edited by Inflikted; 09-13-2012 at 10:45.
Inflikted 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:57.


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