• Flow - Collection of gamemodes and accessories
    536 replies, posted
Add a surf-hsw style? AW and SD would replace A and D, or AS and WD. It's really what "half-sideways" means, the HSW used in bhop servers is more along the lines of half-w only in my opinion.
[QUOTE=Gravious;47378698]I get really pissed off at people posting in 5 year old threads and I couldn't stop myself from responding :p You're welcome! Glad you're enjoying it! For faster drawing and thus higher FPS I hardcoded the colors for the timer in cl_timer.lua. The function "GM:HUDPaintBackground()" draws the whole box, so it's definitely in there. There are two blocks for drawing the actual box (for spectator and for normal player) (now that I look at it I could've minimized the code a bit), they look like this: [code] surface.SetDrawColor( Color(35, 35, 35, Ov) ) surface.DrawRect( Xo, ScrH() - Yo, 230, 95 ) surface.SetDrawColor( Color(42, 42, 42, Ov) ) surface.DrawRect( Xo + 5, ScrH() - Yo + 5, 220, 55 ) surface.DrawRect( Xo + 5, ScrH() - Yo + 65, 220, 25 ) [/code] The first color [b]Color(35, 35, 35, Ov)[/b] is for the outer box (it's slightly darker than the inner box). Ov is for opacity so you must leave that in. The format is Color( R, G, B, A ). You can select any color [url=http://colorpicker.com/]here[/url] but please choose nice colors :) Then for the inner box you have to edit [b]Color(42, 42, 42, Ov)[/b] following the same steps. After you've done that just copy the block and paste it over the other block of code (they're both at cl_timer.lua line 339 and line 377). I hope that'll help! This release only features my content. pG's gamemode has an admin panel built in my default (for managing the bhop content, accessible by !admincp), I don't have pG's custom admin panel for managing players and if I would've had it, it wouldn't be released here because I explicitly put this on the F.A.Q: [b]Q[/b]: Do you maybe have the code of another X gamemode? [b]A[/b]: I might, but I will only release my own work here. Everything in here is limited to what I have created by myself. About chat tags for ranks, pG's gamemode doesn't have this, but the GFL gamemode does, so I'd recommend you have a look at cl_lang.lua line 172 (Config.GFLRanks) and cl_init.lua line 219 for actually displaying the chat tags stored in the Config.GFLRanks table. Let me know how far you get! Nope.[/QUOTE] Hey, gravious i got Admins chat tags working i was just wondering how would i go about of fetching ranks like [New] Matt: something thanks.
[QUOTE=FiBzY;47380942]Ok thanks I was meaning bhop ranks i tried this code but it dosen't seem to work: [code] local RankID = ply:GetNWInt("BhopRank", 1) table.insert( tab, Color( 255, 255, 255 ) ) table.insert( tab, "[" ) table.insert( tab, GAMEMODE.RankList[ply:GetNWInt("BhopRank", 1)] ) table.insert( tab, Color( 255, 255, 255 ) ) table.insert( tab, "] " ) [/code] Did i miss something it only says [Unranked] in chat.[/QUOTE] If you want my help, why are you not being more precise about what you want? I'm sorry I just don't know what to explain; your questions aren't really making sense to me (what I don't understand either since you're from the US and speak English better than me). [QUOTE=cam_;47380973]Add a surf-hsw style? AW and SD would replace A and D, or AS and WD. It's really what "half-sideways" means, the HSW used in bhop servers is more along the lines of half-w only in my opinion.[/QUOTE] You can still do Surf HSW in Bhop I believe. Most people do HSW like this since it's the common way. If you want you can copy over the button limitations from my Surf gamemode to force people to do it that way. [QUOTE=Matt0722;47381169]Hey, gravious i got Admins chat tags working i was just wondering how would i go about of fetching ranks like [New] Matt: something thanks.[/QUOTE] Same thing about FiBzY goes for you; what exactly do you mean? Also for the pG gamemode? You can edit ranks by editing the rank table (in a shared file). To add new ones just add a new row to the table and look where the table is being used (Can't be more precise right now, sorry).
[QUOTE=Gravious;47381827]If you want my help, why are you not being more precise about what you want? I'm sorry I just don't know what to explain; your questions aren't really making sense to me (what I don't understand either since you're from the US and speak English better than me). You can still do Surf HSW in Bhop I believe. Most people do HSW like this since it's the common way. If you want you can copy over the button limitations from my Surf gamemode to force people to do it that way. Same thing about FiBzY goes for you; what exactly do you mean? Also for the pG gamemode? You can edit ranks by editing the rank table (in a shared file). To add new ones just add a new row to the table and look where the table is being used (Can't be more precise right now, sorry).[/QUOTE] what i mean is chat ranks like in flow, gfl when someone chats it shows there rank beisde there name thanks man :)
Sorry I didn't speak English good. I was talking about chat tag ranks that are from !ranks. There is the chat tag rank: "[God] FiBs" like flow's gfl's ect... But the chat ranks are not added in the gamemode. So I was trying it code it. Here is the picture of what "pG" chat ranks look like: [IMG]http://i.imgur.com/9cKiCW1.jpg[/IMG] Mine only have the name like this: "FiBzY: test" I was trying to code the tag chat ranks... You dont have to help if you dont want I'll try more to get it working.
[QUOTE=Matt0722;47382164]what i mean is chat ranks like in flow, gfl when someone chats it shows there rank beisde there name thanks man :)[/QUOTE] [QUOTE=FiBzY;47382604]Sorry I didn't speak English good. I was talking about chat tag ranks that are from !ranks. There is the chat tag rank: "[God] FiBs" like flow's gfl's ect... But the chat ranks are not added in the gamemode. So I was trying it code it. Mine only have the name like this: "FiBzY: test" I was trying to code the tag chat ranks... You dont have to help if you dont want I'll try more to get it working.[/QUOTE] Oh wow, sorry guys. I wasn't aware there were no chat tags in this version at all! (The reason for this is that pG had a separate chat handling module for admins so I couldn't put that part of the code in the gamemode - and I completely forgot about adding it - then again, I did say there'd be no support for this gamemode but oh well). Because of that, I was completely misinterpreting the questions, and I thought you were asking for something else than chat tags for the Bhop ranks :p To get them working, all you have to do is add this function to the bottom of cl_init.lua: [code] local function ChatRanked( ply, szText, bTeam, bDead ) local tab = {} if bTeam then table.insert( tab, Color( 30, 160, 40 ) ) table.insert( tab, "(TEAM) " ) end if ply:GetNWInt( "Spectating", 0 ) == 1 then table.insert( tab, Color( 189, 195, 199 ) ) table.insert( tab, "*SPEC* " ) end if IsValid( ply ) and ply:IsPlayer() then local ID = ply:GetNWInt( "BhopRank", 1 ) table.insert( tab, COLOR_WHITE ) table.insert( tab, "[" ) table.insert( tab, GAMEMODE.RankList[ ID ][ 2 ] ) table.insert( tab, GAMEMODE.RankList[ ID ][ 1 ] ) table.insert( tab, COLOR_WHITE ) table.insert( tab, "] " ) table.insert( tab, Color( 98, 176, 255 ) ) table.insert( tab, ply:Name() ) else table.insert( tab, "Console" ) end table.insert( tab, COLOR_WHITE ) table.insert( tab, ": " ) table.insert( tab, szText ) chat.AddText( unpack( tab ) ) return true end hook.Add( "OnPlayerChat", "RankedChat", ChatRanked ) [/code] It should work without any edits but I haven't been able to test it so let me know!
[QUOTE=Gravious;47385355]Oh wow, sorry guys. I wasn't aware there were no chat tags in this version at all! (The reason for this is that pG had a separate chat handling module for admins so I couldn't put that part of the code in the gamemode - and I completely forgot about adding it - then again, I did say there'd be no support for this gamemode but oh well). Because of that, I was completely misinterpreting the questions, and I thought you were asking for something else than chat tags for the Bhop ranks :p To get them working, all you have to do is add this function to the bottom of cl_init.lua: [code] local function ChatRanked( ply, szText, bTeam, bDead ) local tab = {} if bTeam then table.insert( tab, Color( 30, 160, 40 ) ) table.insert( tab, "(TEAM) " ) end if ply:GetNWInt( "Spectating", 0 ) == 1 then table.insert( tab, Color( 189, 195, 199 ) ) table.insert( tab, "*SPEC* " ) end if IsValid( ply ) and ply:IsPlayer() then local ID = ply:GetNWInt( "BhopRank", 1 ) table.insert( tab, COLOR_WHITE ) table.insert( tab, "[" ) table.insert( tab, GAMEMODE.RankList[ ID ][ 2 ] ) table.insert( tab, GAMEMODE.RankList[ ID ][ 1 ] ) table.insert( tab, COLOR_WHITE ) table.insert( tab, "] " ) table.insert( tab, Color( 98, 176, 255 ) ) table.insert( tab, ply:Name() ) else table.insert( tab, "Console" ) end table.insert( tab, COLOR_WHITE ) table.insert( tab, ": " ) table.insert( tab, szText ) chat.AddText( unpack( tab ) ) return true end hook.Add( "OnPlayerChat", "RankedChat", ChatRanked ) [/code] It should work without any edits but I haven't been able to test it so let me know![/QUOTE] hey Gravious i just tryed the code it worked thanks :)
Thanks for the help man :D
Hey, Grav! I was wondering if I could get the SQL details for the radio system. They aren't included with the README file. I don't need a .SQL file to do it, I just want to know the types and such for the database and columns. Also, where do ranks save to? I'm not trying to edit rank points; I'm trying to figure out why players' ranks on my server aren't showing up in chat or on scoreboard half the time.
[QUOTE=Clouds;47400091]Hey, Grav! I was wondering if I could get the SQL details for the radio system. They aren't included with the README file. I don't need a .SQL file to do it, I just want to know the types and such for the database and columns. Also, where do ranks save to? I'm not trying to edit rank points; I'm trying to figure out why players' ranks on my server aren't showing up in chat or on scoreboard half the time.[/QUOTE] The SQL part for the radio is the same as the MySQL server for the main server. It's in Flow Network - Bunny Hop\Database\MySQL (for master database)\Structure for database.sql: [code] -- ---------------------------- -- Table structure for gmod_radio -- ---------------------------- DROP TABLE IF EXISTS `gmod_radio`; CREATE TABLE `gmod_radio` ( `nID` int(11) NOT NULL AUTO_INCREMENT, `szUnique` varchar(255) NOT NULL, `nService` int(11) DEFAULT '0', `nTicket` int(11) DEFAULT '0', `szDate` varchar(255) NOT NULL, `nDuration` int(11) DEFAULT '0', `szTagTitle` varchar(255) NOT NULL DEFAULT '', `szTagArtist` varchar(255) NOT NULL DEFAULT '', `szRequester` varchar(255) DEFAULT NULL, PRIMARY KEY (`nID`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; -- ---------------------------- -- Table structure for gmod_radio_queue -- ---------------------------- DROP TABLE IF EXISTS `gmod_radio_queue`; CREATE TABLE `gmod_radio_queue` ( `nID` int(11) NOT NULL AUTO_INCREMENT, `nTicket` int(11) NOT NULL, `nType` int(11) NOT NULL, `szDate` varchar(255) DEFAULT NULL, `szStatus` varchar(255) DEFAULT NULL, PRIMARY KEY (`nID`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; [/code] About the other question: Ranks aren't saved anywhere. They are calculated on the go, so you could have a look at sv_player where it uses a query with SUM (I believe). There were some problems with the latest Garry's Mod update, but those seem to be fixed. If ranks are stuck on "Retrieving..." all the time, you might have to simply update your server.
[QUOTE=Gravious;47400475]The SQL part for the radio is the same as the MySQL server for the main server. It's in Flow Network - Bunny Hop\Database\MySQL (for master database)\Structure for database.sql: [code] -- ---------------------------- -- Table structure for gmod_radio -- ---------------------------- DROP TABLE IF EXISTS `gmod_radio`; CREATE TABLE `gmod_radio` ( `nID` int(11) NOT NULL AUTO_INCREMENT, `szUnique` varchar(255) NOT NULL, `nService` int(11) DEFAULT '0', `nTicket` int(11) DEFAULT '0', `szDate` varchar(255) NOT NULL, `nDuration` int(11) DEFAULT '0', `szTagTitle` varchar(255) NOT NULL DEFAULT '', `szTagArtist` varchar(255) NOT NULL DEFAULT '', `szRequester` varchar(255) DEFAULT NULL, PRIMARY KEY (`nID`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; -- ---------------------------- -- Table structure for gmod_radio_queue -- ---------------------------- DROP TABLE IF EXISTS `gmod_radio_queue`; CREATE TABLE `gmod_radio_queue` ( `nID` int(11) NOT NULL AUTO_INCREMENT, `nTicket` int(11) NOT NULL, `nType` int(11) NOT NULL, `szDate` varchar(255) DEFAULT NULL, `szStatus` varchar(255) DEFAULT NULL, PRIMARY KEY (`nID`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; [/code] About the other question: Ranks aren't saved anywhere. They are calculated on the go, so you could have a look at sv_player where it uses a query with SUM (I believe). There were some problems with the latest Garry's Mod update, but those seem to be fixed. If ranks are stuck on "Retrieving..." all the time, you might have to simply update your server.[/QUOTE] Huh, I thought I updated. Now that the rank problem is solved, I just noticed I'm getting an error when trying to actually download the YT/GS track. [img]http://i.gyazo.com/5183ff27ec195a8a99704b024835a91d.png[/img] I'm not sure what could at all be causing this issue, so I wanted to know if you've run into it before I spend hours trying to fix something I know nothing of. I added the SQL tables; I feel like the issue goes back to my XAMPP install on the Windows VPS, but I'm not sure why it's happening. I've seen this issue with the Viooz player for the Cinema gamemode, but I wasn't the one to fix it and I can't find any information about it.
[QUOTE=Clouds;47400553]Huh, I thought I updated. Now that the rank problem is solved, I just noticed I'm getting an error when trying to actually download the YT/GS track. [img]http://i.gyazo.com/5183ff27ec195a8a99704b024835a91d.png[/img] I'm not sure what could at all be causing this issue, so I wanted to know if you've run into it before I spend hours trying to fix something I know nothing of. I added the SQL tables; I feel like the issue goes back to my XAMPP install on the Windows VPS, but I'm not sure why it's happening. I've seen this issue with the Viooz player for the Cinema gamemode, but I wasn't the one to fix it and I can't find any information about it.[/QUOTE] That error is caused by the gamemode sending a HTTP request to the radio system. It says the absolute URL is bad so I guess we could check the URL? On the sv_admin.lua file go to line 354 and you should find this function: [code] function Admin:ExecuteRequest( szPath, callback, errorcall, param ) http.Fetch( szPath, function( body ) callback( body, param ) end, errorcall or function() print( "[HTTP Error] Couldn't retrieve data from", szPath ) end ) end [/code] Add a print on top like this: [code] function Admin:ExecuteRequest( szPath, callback, errorcall, param ) print( "[HTTP LOG] Starting fetch on:", szPath ) http.Fetch( szPath, function( body ) callback( body, param ) end, errorcall or function() print( "[HTTP Error] Couldn't retrieve data from", szPath ) end ) end [/code] If I'm right, you should see a debug print with HTTP LOG before that error occurs and it'll show you the path which you can then trace back to its origin in sv_radio.lua's ExecuteRequest's.
[QUOTE=Gravious;47401524]That error is caused by the gamemode sending a HTTP request to the radio system. It says the absolute URL is bad so I guess we could check the URL? On the sv_admin.lua file go to line 354 and you should find this function: [code] function Admin:ExecuteRequest( szPath, callback, errorcall, param ) http.Fetch( szPath, function( body ) callback( body, param ) end, errorcall or function() print( "[HTTP Error] Couldn't retrieve data from", szPath ) end ) end [/code] Add a print on top like this: [code] function Admin:ExecuteRequest( szPath, callback, errorcall, param ) print( "[HTTP LOG] Starting fetch on:", szPath ) http.Fetch( szPath, function( body ) callback( body, param ) end, errorcall or function() print( "[HTTP Error] Couldn't retrieve data from", szPath ) end ) end [/code] If I'm right, you should see a debug print with HTTP LOG before that error occurs and it'll show you the path which you can then trace back to its origin in sv_radio.lua's ExecuteRequest's.[/QUOTE] Thanks for that. I was able to solve the URL issue with that. Now the radio is just saying that any track I choose from search is already in DB. I'm not gonna ask for help in fixing this one. I'm sure I can get it on my own. Thanks for all the help and support you've been giving us.
Any ulx fixes? i have it on my server aside from the inbuilt admin panel but i use ulx to customize ranks more but if i add someone to any rank other than user it moves them to the admin rank. (im using nfoservers to host it if that helps?) -[B]EDIT found a fix that in the gamemode just have to remove the code where it sets the user group in the gamemode files[/B]
The Ranks don't seem to work properly, it stays at the first rank even though when i type !ranks it says i have 117 points but yet im still on the first rank :( also, ULX ranks bug out too, i put myself as owner, next map change or rejoin im in admin or nothing
There's no need to use ULX with this gamemode unless you want to do some wack stuff like cheat with noclip. Anything ULX can do can be done within the admin panel or with simple lua additions. If you really need it, consider removing the admin panel and hard-coding the functions in to ULX so you can have an easy to use and streamlined interface for your moderators and admins. Julian, is your server updated? If so, is there any code you modified before/after putting the gamemode on your server? Did it ever work or has it always been this way? You're running two admin panels that are going to give conflicting permissions. You must either remove the usergroups from ULX or remove the assignment of usergroups from the gamemode. With either you do, you'll likely run into issues with assigning authority positions/command issues. As I said above, you may want to consider building the functions in to ULX so you don't have to worry about this and your staff has full access to all commands from a single control panel. [editline]27th March 2015[/editline] [QUOTE=Clouds;47402306]Thanks for that. I was able to solve the URL issue with that. Now the radio is just saying that any track I choose from search is already in DB. I'm not gonna ask for help in fixing this one. I'm sure I can get it on my own. Thanks for all the help and support you've been giving us.[/QUOTE] Well, I tried as hard as I could to try and track down my issue. Guess I'm giving up on the radio. Do I need to use a registered domain to get it all set up? I should be able to use localhost no problem, from what I could tell. I'm not getting anything logged in my SQL database, so the issue has to be with the files or their placement. Also, is the SurflineTicketManager supposed to crash when I drop the test ticket_12345.txt file into the folder? It downloads it and all, but I'm met with a TON of exceptions and errors afterwards and the program just completely stops.
[QUOTE=Clouds;47405768]There's no need to use ULX with this gamemode unless you want to do some wack stuff like cheat with noclip. Anything ULX can do can be done within the admin panel or with simple lua additions. If you really need it, consider removing the admin panel and hard-coding the functions in to ULX so you can have an easy to use and streamlined interface for your moderators and admins. Julian, is your server updated? If so, is there any code you modified before/after putting the gamemode on your server? Did it ever work or has it always been this way? You're running two admin panels that are going to give conflicting permissions. You must either remove the usergroups from ULX or remove the assignment of usergroups from the gamemode. With either you do, you'll likely run into issues with assigning authority positions/command issues. As I said above, you may want to consider building the functions in to ULX so you don't have to worry about this and your staff has full access to all commands from a single control panel. [/QUOTE] thanks for the feedback to my questions, My server is updated and i have not messed around with anything but its not as bad after all, since i am still "admin" on ulx and "owner" in the admin panel. there's only 2 bots on the server, does that mean i have to upgrade my slots or is there a way to choose how many bots to spawn in by default?, also each bot says "normal difficulty" even though its a bonus one, i just hope im not the only one with the problem
[QUOTE=demjulian;47406567]thanks for the feedback to my questions, My server is updated and i have not messed around with anything but its not as bad after all, since i am still "admin" on ulx and "owner" in the admin panel. there's only 2 bots on the server, does that mean i have to upgrade my slots or is there a way to choose how many bots to spawn in by default?, also each bot says "normal difficulty" even though its a bonus one, i just hope im not the only one with the problem[/QUOTE] There are only 2 bots. One bot will save normal mode and the other will save bonus/other mode.
[QUOTE=Clouds;47407378]There are only 2 bots. One bot will save normal mode and the other will save bonus/other mode.[/QUOTE] I'm not sure if you've seen this yet: [video=youtube;GlNuy_kp18w]http://www.youtube.com/watch?v=GlNuy_kp18w[/video] What exceptions are you getting? Paste anything! And thank you for helping me out with those questions :p --- It's fixed, awesome ;) Turned out to be a webserver problem.
Hey Gravious, I'm trying to look deeper into gamemode development by going through your bhop gamemode, but I'm kinda struggling to understand how your code's put together. What is the purpose of the core*.lua files? They seem to be in all of your gamemodes, but what kind of functionality do they provide to the gamemode? Are they similar to a shared.lua which is constant across all gamemodes you create? They seem slightly different across gamemodes, so do you have a "template" core.lua file which has all defaults and do you edit them depending on the gamemode? also, how do you get the gamemode to run so smoothly? even when i'm running a skeleton gamemode it's like i'm moving through gravel compared to your gamemodes, is there some black magic going on with the clientside code?
Hey Grav, another quick question: I went into the gmod_vips table in the MySQL DB and it gave me all the stuff for VIP AND EVIP. We don't use the Automatic VIP Script thing that is usable, so how do you set people to JUST VIP (so they don't get the EVIP benefits like custom chat color)? Thank you in advance for any answer you can provide :) Love the gamemode<3 :D
[QUOTE=Arizard;47415141]Hey Gravious, I'm trying to look deeper into gamemode development by going through your bhop gamemode, but I'm kinda struggling to understand how your code's put together. What is the purpose of the core*.lua files? They seem to be in all of your gamemodes, but what kind of functionality do they provide to the gamemode? Are they similar to a shared.lua which is constant across all gamemodes you create? They seem slightly different across gamemodes, so do you have a "template" core.lua file which has all defaults and do you edit them depending on the gamemode? also, how do you get the gamemode to run so smoothly? even when i'm running a skeleton gamemode it's like i'm moving through gravel compared to your gamemodes, is there some black magic going on with the clientside code?[/QUOTE] The core.lua files should be seen more as a core to the gamemode itself, not necessarily as a core to all gamemodes I brached off it. I simply wrote it as the center files of the gamemode where all important settings/essential pieces of code would go: Movement, Player & Hull Settings, Data Handlers and Language. I did write the files in a such a way that they'd be usable for other gamemodes as well (mainly core_data.lua and cl_receive.lua), especially Surf. They're very extensible, so they can really be used for any type of gamemode or even addon. I just edited the core files for how they would fit for the gamemode (not working off a template). A shared.lua file would have the same principle as this, except that not all core files are actually shared files between server and client. Let me actually just explain each file, that might help a bit: [Server Folder] [B]maps [/B]- contains .lua files which are named by maps. If the map is executed and an [appropriate Lua file for it exists, it will be executed on launch [Varying Folder] [B]modules [/B]- extensions to the gamemode which are easily removable (I think the naming of these modules say enough to you - smgr = Strafe Sync Manager = Sync) [Client] [B]cl_gui [/B]- all GUI related handling, all running on the same "base window" keeping messy Derma code to a minimum [Client] [B]cl_init [/B]- clientside initialization, includes all clientside files and has client-only functionality [Client] [B]cl_receive [/B]- this is where all the network code is and where the net 'packets' come in and are distributed over the other client files [Client] [B]cl_score [/B]- the scoreboard and nothing else [Client] [B]cl_timer [/B]- all timer functionality and even drawing because of quick access to localized variables [Shared] [B]core [/B]- required gamemode definitions, global config & functions and essential movement code [Server] [B]core_data [/B]- the data connection and loading of everything [Server*] [B]core_lang [/B]- all language strings with their identifiers and a parsing function (I have no idea why I corrupted the _G-lobal namespace with all this and didn't put it in a separate local table - I should've) [Shared] [B]core_player [/B]- the player struct with details about movement and loadout, very simple because us Bhoppers don't need much [Shared] [B]core_view [/B]- makes Bhopping under roofs do-able (thanks George) - has to be shared or it still feels like garbage [Server] [B]init [/B]- serverside initialization, includes all files and loads them via the core when it's ready - also has important base gamemode player limitation functions because I thought they didn't fit in sv_player (and keeps all GM functions close) [Server] [B]sv_command [/B]- handles everything about commands - I love the way this is setup and every server/gamemode should use a system like this rather than spaghetti code of if/else if statements. [Server] [B]sv_player [/B]- serverside functionality for the player (mainly loading their data and locations/placement) [Server] [B]sv_timer [/B]- all timing functionality via Meta Tables so they're accessible from my timer entities - checkpoints too because they're related to timing [Server] [B]sv_zones [/B]- loading the zone entities and really anything related to the map itself (initialization of func_door platforms and makes sure the files in /maps/ are loaded and also brings functionality for adding zones) *: I decided to move this to the server and send over strings instead of integers because: [b]1[/b]. the file is 14KB and would be sent to EVERY player even though they'll only see 20% of the strings and some even none. [b]2[/b]. a net message would have to be created anyway with a fixed buffer, so sending either an integer or a large string wouldn't differ much. [b]3[/b]. now that I think about it, I could even add IDs and cache a large part of the strings on the client. I began this version of the gamemode as a Surf gamemode for Surfline. Later on when it started growing people requested for Bunny Hop, and because Surf also uses skill based movement, I was able to copy a large part of it. Bunny Hop then got my focus again and the Bunny Hop gamemode grew much more feature rich, and after a while I just fully copied the Bunny Hop gamemode (thanks to this structure) and applied a few small changes to it for Surf which in turn resulted in the Skill Surf gamemode as it is now (hence the very large similarities). About the black magic that's going on here; I'd rather not talk about it. No really apart from having fully recoded the gamemode 3x and optimized every single part of it (well... not everything, and everything can still be improved multiple times more), there isn't really anything special going on here. I hope that was enough. You can always ask me for more detail, I'd be more than happy to answer them! And I still want to thank you personally for that very early support ;) [QUOTE=ShadowS FaLL;47415917]Hey Grav, another quick question: I went into the gmod_vips table in the MySQL DB and it gave me all the stuff for VIP AND EVIP. We don't use the Automatic VIP Script thing that is usable, so how do you set people to JUST VIP (so they don't get the EVIP benefits like custom chat color)? Thank you in advance for any answer you can provide :) Love the gamemode<3 :D[/QUOTE] Simply set the nType column to 1. I fully explained it [url=http://facepunch.com/showthread.php?t=1448806&p=47052705&viewfull=1#post47052705]here[/url] so check it out! Glad you like the gamemode ;)
Hey Grav, is there a way to port your mp triggers fix to Mr Gash's deathrun or I'd need to copy some code from the core files? Just curious if it's easily doable.
[QUOTE=rikyy;47418913]Hey Grav, is there a way to port your mp triggers fix to Mr Gash's deathrun or I'd need to copy some code from the core files? Just curious if it's easily doable.[/QUOTE] If it's "func_door" triggers then you can simply copy over bhop_ents.lua (Flow Bunny Hop -> Essential files) to lua/autorun/ I think you also need to take the Zones:Setup() function from sv_zones.lua to make sure the platforms are initialized, but then without the map specific checking I assume. With that it should be easily do-able!
how do i fix the ranking system? points grow on map competion but ranks dont change :s
[QUOTE=Gravious;47418176]The core.lua files should be seen more as a core to the gamemode itself, not necessarily as a core to all gamemodes I brached off it. I simply wrote it as the center files of the gamemode where all important settings/essential pieces of code would go: Movement, Player & Hull Settings, Data Handlers and Language. I did write the files in a such a way that they'd be usable for other gamemodes as well (mainly core_data.lua and cl_receive.lua), especially Surf. They're very extensible, so they can really be used for any type of gamemode or even addon. I just edited the core files for how they would fit for the gamemode (not working off a template). A shared.lua file would have the same principle as this, except that not all core files are actually shared files between server and client. Let me actually just explain each file, that might help a bit: [Server Folder] [B]maps [/B]- contains .lua files which are named by maps. If the map is executed and an [appropriate Lua file for it exists, it will be executed on launch [Varying Folder] [B]modules [/B]- extensions to the gamemode which are easily removable (I think the naming of these modules say enough to you - smgr = Strafe Sync Manager = Sync) [Client] [B]cl_gui [/B]- all GUI related handling, all running on the same "base window" keeping messy Derma code to a minimum [Client] [B]cl_init [/B]- clientside initialization, includes all clientside files and has client-only functionality [Client] [B]cl_receive [/B]- this is where all the network code is and where the net 'packets' come in and are distributed over the other client files [Client] [B]cl_score [/B]- the scoreboard and nothing else [Client] [B]cl_timer [/B]- all timer functionality and even drawing because of quick access to localized variables [Shared] [B]core [/B]- required gamemode definitions, global config & functions and essential movement code [Server] [B]core_data [/B]- the data connection and loading of everything [Server*] [B]core_lang [/B]- all language strings with their identifiers and a parsing function (I have no idea why I corrupted the _G-lobal namespace with all this and didn't put it in a separate local table - I should've) [Shared] [B]core_player [/B]- the player struct with details about movement and loadout, very simple because us Bhoppers don't need much [Shared] [B]core_view [/B]- makes Bhopping under roofs do-able (thanks George) - has to be shared or it still feels like garbage [Server] [B]init [/B]- serverside initialization, includes all files and loads them via the core when it's ready - also has important base gamemode player limitation functions because I thought they didn't fit in sv_player (and keeps all GM functions close) [Server] [B]sv_command [/B]- handles everything about commands - I love the way this is setup and every server/gamemode should use a system like this rather than spaghetti code of if/else if statements. [Server] [B]sv_player [/B]- serverside functionality for the player (mainly loading their data and locations/placement) [Server] [B]sv_timer [/B]- all timing functionality via Meta Tables so they're accessible from my timer entities - checkpoints too because they're related to timing [Server] [B]sv_zones [/B]- loading the zone entities and really anything related to the map itself (initialization of func_door platforms and makes sure the files in /maps/ are loaded and also brings functionality for adding zones) *: I decided to move this to the server and send over strings instead of integers because: [b]1[/b]. the file is 14KB and would be sent to EVERY player even though they'll only see 20% of the strings and some even none. [b]2[/b]. a net message would have to be created anyway with a fixed buffer, so sending either an integer or a large string wouldn't differ much. [b]3[/b]. now that I think about it, I could even add IDs and cache a large part of the strings on the client. I began this version of the gamemode as a Surf gamemode for Surfline. Later on when it started growing people requested for Bunny Hop, and because Surf also uses skill based movement, I was able to copy a large part of it. Bunny Hop then got my focus again and the Bunny Hop gamemode grew much more feature rich, and after a while I just fully copied the Bunny Hop gamemode (thanks to this structure) and applied a few small changes to it for Surf which in turn resulted in the Skill Surf gamemode as it is now (hence the very large similarities). About the black magic that's going on here; I'd rather not talk about it. No really apart from having fully recoded the gamemode 3x and optimized every single part of it (well... not everything, and everything can still be improved multiple times more), there isn't really anything special going on here. I hope that was enough. You can always ask me for more detail, I'd be more than happy to answer them! And I still want to thank you personally for that very early support ;) Simply set the nType column to 1. I fully explained it [url=http://facepunch.com/showthread.php?t=1448806&p=47052705&viewfull=1#post47052705]here[/url] so check it out! Glad you like the gamemode ;)[/QUOTE] Thanks for that, dunno why I didn't see that during the hundred times I've viewed this thread lol. I did see somewhere in this thread or maybe one of your vids, I don't really remember, that you somewhat explained how to get the Staff Ranks to have Chat Tags for the PG gamemode by copying the coding from GFL's and maybe editing some stuff with it. Can you explain in depth how to get them for the Flow game mode if possible? Thanks for all the great help you've given so far! :)
[QUOTE=ShadowS FaLL;47437995]Thanks for that, dunno why I didn't see that during the hundred times I've viewed this thread lol. I did see somewhere in this thread or maybe one of your vids, I don't really remember, that you somewhat explained how to get the Staff Ranks to have Chat Tags for the PG gamemode by copying the coding from GFL's and maybe editing some stuff with it. Can you explain in depth how to get them for the Flow game mode if possible? Thanks for all the great help you've given so far! :)[/QUOTE] Flow's gamemode already has chat tags by default ;p If you want to change text and colors, simply have a look at core.lua and change the strings / colors in the _C.Ranks table!
[QUOTE=Gravious;47442633]Flow's gamemode already has chat tags by default ;p If you want to change text and colors, simply have a look at core.lua and change the strings / colors in the _C.Ranks table![/QUOTE] Oh no I do know that, I mean so when a Staff Member talks in chat, people will be able to identify the person as a Staff Member. For example: [url]http://steamcommunity.com/sharedfiles/filedetails/?id=382154608[/url] Don't mind the majority of that screenshot lol it was the only one I had that showed what I'm talking about ;P In the chat where it says Super Admin, along with your Bhop Rank. Like on Flow's Gamemode when you use (TEAM) Chat. [url]http://steamcommunity.com/sharedfiles/filedetails/?id=418223435[/url] I want to do something like that shown in the screenshot^ (excluding the [Admin], just the Rank for the player i.e. Developer/Super/Admin/Mod), but for the normal chat. Hope I'm making sense with what I'm trying to say lol.
This comes straight from sv_admin.lua: [code] Admin.Level = { None = 0, Base = 1, Elevated = 2, Moderator = 4, Admin = 8, Super = 16, Developer = 32, Owner = 64 } Admin.Icons = { [Admin.Level.Base] = 1, [Admin.Level.Elevated] = 2, [Admin.Level.Moderator] = 3, [Admin.Level.Admin] = 4, [Admin.Level.Super] = 5, [Admin.Level.Developer] = 6, [Admin.Level.Owner] = 7 } [/code] What you can do on the client is this: [code] local tabLevels = { "VIP", "Elevated VIP", "Moderator", "Admin", "Super Admin", "Developer", "Owner" } for _,ply in pairs( player.GetAll() ) do local nLevel = ply:GetNWInt( "AccessIcon", 0 ) print( "The player", ply:Name(), "has access", tabLevels[ nLevel ] ) end [/code] What you can do is put that tabLevels table in your _C table In core.lua: [code] _C["AdminLevels"] = { "VIP", "Elevated VIP", "Moderator", "Admin", "Super Admin", "Developer", "Owner" } [/code] Now, in cl_init.lua, you have this block of code: [code] table.insert( tab, "[" ) table.insert( tab, _C.Ranks[ ID ][ 2 ] ) table.insert( tab, _C.Ranks[ ID ][ 1 ] ) table.insert( tab, GUIColor.White ) table.insert( tab, "] " ) [/code] What you can do is, before that block, something like this: [code] table.insert( tab, "(" ) -- table.insert( tab, Color( 255, 0, 0 ) ) -- Red color, you can use anything table.insert( tab, _C.AdminLevels[ nAccess ] ) table.insert( tab, GUIColor.White ) table.insert( tab, "] " ) [/code] --- This is really easy to make, and you should really have tried it by yourself before asking me :p I felt generous though so this is exactly how you do it (a very simple version of it, at least, but you can change the rest yourself I hope!)
Has anyone else been experiencing ranks and points randomly dropping for players over-time for the Flow Bunny Hop Gamemode? I've noticed that some players have had their points dropping over-time, resulting in rank drops. Is this integrated in the gamemode, or is it a possible bug?
Sorry, you need to Log In to post a reply to this thread.