aboutsummaryrefslogtreecommitdiff
path: root/README.md
blob: f1791bcc52c9688aedff766eb22b1bf4539da05b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
### WARNING: THIS IS EXTREMELY HORRIBLE AND BAD

you know how in open source licenses there's that bit that goes like

> THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
> SOFTWARE.

yea

* leaks a little bit of memory every map load (as a treat)
* is almost guaranteed to break with every open fortress revision
* locks you into certain server settings lest there be jank

anyway with that said

yuuko_votes
===========

* `yuuko_votes`, the headline item. yuuko's custom open fortress votes, that
  integrate into the native vote menu.
  * `sv_vote_issue_change_fraglimit_allowed`
    * presents 5 values, with the smallest guaranteed to be current fraglimit
      rounded to the next highest 10, so the vote can never terminate the
      match immediately upon success.
    * when running this plugin, you need to set a new convar called 
      `sm_default_fraglimit` instead of `mp_fraglimit`. this is down to init
      order but basically i couldn't find a good place to set `mp_fraglimit`
      that doesn't get run on every map load, which makes the voted-on value
      fail to persist across map loads. however, there's also a hook in this
      plugin that resets `mp_fraglimit` *to* `sm_default_fraglimit` whenever
      the server goes from 0 to 1 gamers, so that players aren't blindsided by
      something insane like 10 or 90 frags the morning after. anyway long story
      short is this plugin takes complete ownership of `mp_fraglimit` dealwithit
  * `sv_vote_issue_extendtimer_allowed`
    * simple yes/no vote to tack 10 minutes onto the *current* timer, i.e. it
      does not persist
    * you probably want `mp_maxrounds{,_ffa}` set to 1 if you enable this.

* `yuuko_callvote_fix`, lets the server console initiate votes. by default
  open fortress is hardcoded to forbid this. you probably do not need this
  as it was written for another experiment (cf. PlayerCountSurvey in
  `yuuko_votes.sp`)

* `yuuko_maptimer`, lets you mess with the map timer from the console. was
  written for debugging purposes but hey have fun go nuts

* `yuuko_fake_rtv`, `yuuko_votes` used to implement a native rtv but open
  fortress just has one of those now! this just whispers back to anyone who
  types rtv in chat that they can use the vote menu instead.

building
--------

requires [SM-Memory], then something like:
  
    mkdir plugins
    # example selection
    for plug in yuuko_votes yuuko_fake_rtv; do
      spcomp \
        -i /path/to/SM-Memory/pawn/sourcemod/scripting/include \
        $plug.sp \
        -o plugins/$plug.smx
    done

installing
----------

merge `plugins` and `gamedata` over your production sourcemod install
  
thanks, and have fun

license
-------
snore zzzzzz honk shooo mimimimimimimi
https://svn.alliedmods.net/viewvc.cgi/trunk/public/licenses/LICENSE.txt?revision=2255&root=sourcemod

they technically have no grounds to mandate this but gpl linking
""""violations"""" have resulted in out-of-court settlements and i dont want
any smoke so w/e.

[SM-Memory]: https://github.com/Scags/SM-Memory