Does anyone know where i can get this plugin

Discussion in 'Support' started by wholegrainhunter, Aug 11, 2009.

  1. wholegrainhunter

    wholegrainhunter Member

    Messages:
    17
    Likes Received:
    0
    Trophy Points:
    0
    the one where you type !ri in chat and you see what your team is researching i am sure it is somewhere on these forums but i cant find it. Would some help point me in the right direction. Thank you
     
  2. Kane

    Kane Member

    Messages:
    1,337
    Likes Received:
    0
    Trophy Points:
    0
    It is G4TC-only, based on the Empires Eventscripts extension which is free (google is your friend) -> code one yourself
     
  3. wholegrainhunter

    wholegrainhunter Member

    Messages:
    17
    Likes Received:
    0
    Trophy Points:
    0
    Thing is i dont know how to code and im not sure how interested my scripters really are in our new Empires server. Ill try though D: to get it to work. Also thank you
     
  4. wholegrainhunter

    wholegrainhunter Member

    Messages:
    17
    Likes Received:
    0
    Trophy Points:
    0
  5. wholegrainhunter

    wholegrainhunter Member

    Messages:
    17
    Likes Received:
    0
    Trophy Points:
    0
    the plugin is slightly different though it is
    !researchinfo
    to show what is being researched
     
  6. Roflcopter Rego

    Roflcopter Rego Member

    Messages:
    624
    Likes Received:
    0
    Trophy Points:
    0
    That is the Viper server one, coded by the more share-friendly viper people. They are completely unconnected (Viper had this before it was under the G4TC group)
     
  7. wholegrainhunter

    wholegrainhunter Member

    Messages:
    17
    Likes Received:
    0
    Trophy Points:
    0
    Ah it is easily edited from sm_researchinfo to sm_ri just change the first cmd and then recompile. I thought the who concept belonged to viper so i was shocked to find it on sourcemod.
     
  8. Theowningone

    Theowningone Noone likes me :'(

    Messages:
    704
    Likes Received:
    0
    Trophy Points:
    0
    No, Nachos had their own version before the G4TC version was created.(I think at least, what counts here is that it isnt G4TC exclusive.)

    Nope, that's the version I made for nachos. So even more unconnected.






    Also, !ri was not included in that because as i said before, i think i made it before G4TC made theirs and also made the !ri command popular. Had i known it would be that much more popular than !researchinfo, i would have made it that instead.
     
  9. DrummerX

    DrummerX Empires Tyrant

    Messages:
    1,193
    Likes Received:
    0
    Trophy Points:
    0
    Neither !ri or !researchinfo is exclusive to any server.

    There are plugins and other ways to add chat commands to any server.

    For instances, in G4TC you can type !kill to suicide and !ri for the short version, ELC also has this. Chat commands are not hard to make and are very easily done.

    I wasn't able to find it but there's a plugin along the lines of chat commands or chat triggers. It allows you to do anything you want basically.
     
  10. vipervicki

    vipervicki Member

    Messages:
    2,611
    Likes Received:
    130
    Trophy Points:
    0
    This may clear things up a bit:

    Before VIPER joined g4tc and before I used sourcemod I was using Beetlesmod admin mod, which had addsaytrigger options. So what I did was I made theowningones !reasearchinfo into an addsaytrigger for !ri using Beetlesmod. So when we were typing !ri in VIPER it was actually triggering theowningones !researchinfo command from his plugin. I do not think g4tc had their script at this time, but I could be wrong.

    It would be nice if SM had an addsaytigger plugin and a small map vote plugin, meaning when the server had less than 15 people it would trigger a mapvote that contains only smaller maps *hint *hint ;-)
     
    Last edited: Aug 14, 2009
  11. DrummerX

    DrummerX Empires Tyrant

    Messages:
    1,193
    Likes Received:
    0
    Trophy Points:
    0
    Viper there are plugins that do what you just said, you just have to search for them.
     
  12. vipervicki

    vipervicki Member

    Messages:
    2,611
    Likes Received:
    130
    Trophy Points:
    0
    I have researched small map vote plugins and there are none in Sourcemod..same as addsaytriggers plugins for SM. If you know where I can find them please let me know, because I have not found any.
     
  13. Kane

    Kane Member

    Messages:
    1,337
    Likes Received:
    0
    Trophy Points:
    0
  14. vipervicki

    vipervicki Member

    Messages:
    2,611
    Likes Received:
    130
    Trophy Points:
    0
    thank you I have seen that plugin but it appears to be abandoned by its dev and from what I have read the plugin gets several different type of errors, so I do not know if it will work on empires or not.
     
  15. wholegrainhunter

    wholegrainhunter Member

    Messages:
    17
    Likes Received:
    0
    Trophy Points:
    0
    viper that is quite possible it is a plugin that on a certains amount of ppl only has certain maps avaliable. If you are interested i vaguely remember it from sourcemod. Ill look it up for you and see if anything useful pops up.
    this is the best i could find but i dont think it works the way you would want.
    http://forums.alliedmods.net/showthread.php?p=599464
    wait i just realized kane already gave the link to the same plugin >< lol
     
    Last edited: Aug 14, 2009
  16. Phroggie

    Phroggie Member

    Messages:
    1
    Likes Received:
    0
    Trophy Points:
    0
    Here, I suppose I can share things, too.
    Code:
    #include <sourcemod>
    #include <sdktools>
    
    #pragma semicolon 1
    
    new Handle:ResearchNames; // Holds a trie of numbers -> names for the individual research items
    new BECurrentResearchI;   // Holds the index (integer, 0 to 50) of what BE is currently researching
    new BEResearchTimeleftI;  // Holds the number of seconds until BE's research completes
    new NFCurrentResearchI;   // Holds the index (integer, 0 to 50) of what NF is currently researching
    new NFResearchTimeleftI;  // Holds the number of seconds until NF's research completes
    
    public Plugin:myinfo = {
    	name = "JPL Research Info",
    	author = "Phroggie",
    	description = "JPLs researchinfo plugin",
    	version = "1.0.0.4",
    	url = "http://www.empiresjpl.com/"
    }
    
    GetCurrentResearch() {
    	new maxents = GetMaxEntities();
    	decl String:classname[64];
    	new ent = 0;
    	for(new i = 0; i <= maxents; i++){
            if(IsValidEntity(i)){
                GetEntityNetClass(i, classname, sizeof(classname));
                if(StrEqual(classname, "CResearchResource")){
                    ent = i;
                    break;
    	        }
            }
        }
    	
    	if(IsValidEntity(ent)) {
    		new item = FindSendPropOffs("CResearchResource", "m_iResearchItem_IMP");
    		BECurrentResearchI = GetEntData(ent, item, 4);
    		
    		item = FindSendPropOffs("CResearchResource", "m_iResearchItem_NF");
    		NFCurrentResearchI = GetEntData(ent, item, 4);
    	}
    }
    
    GetResearchTime() {
    	new maxents = GetMaxEntities();
    	new ent = 0;
    	decl String:classname[64];
    
    	for (new i=0; i <= maxents; i++) {
    		if(IsValidEntity(i)) {
    			GetEntityNetClass(i, classname, sizeof(classname));
    			if (StrEqual(classname, "CResearchResource")) {
    				ent = i;
    				break;
    			}
    		}
    	}
    	
    	if(IsValidEntity(ent)) {
    		new item = FindSendPropOffs("CResearchResource", "m_iResearchTime_NF");
    		NFResearchTimeleftI = GetEntData(ent, item, 4);
    
    		item = FindSendPropOffs("CResearchResource", "m_iResearchTime_IMP");
    		BEResearchTimeleftI = GetEntData(ent, item, 4);
    	}
    }
    
    public OnPluginStart() {
    	BECurrentResearchI = 0;
    	BEResearchTimeleftI = 0;
    	NFCurrentResearchI = 0;
    	NFResearchTimeleftI = 0;
    
    	ResearchNames = CreateTrie();
    	SetTrieString(ResearchNames, "0", "None", true);
    	SetTrieString(ResearchNames, "1", "Physics", true);
    	SetTrieString(ResearchNames, "2", "Superheated Material Physics", true);
    	SetTrieString(ResearchNames, "3", "Plasma Cannon Projectile", true);
    	SetTrieString(ResearchNames, "4", "Plasma Bullet Projectile", true);
    	SetTrieString(ResearchNames, "5", "Projectile Physics", true);
    	SetTrieString(ResearchNames, "6", "Reflective Armor", true);
    	SetTrieString(ResearchNames, "7", "Extended Range Cannon", true);
    	SetTrieString(ResearchNames, "8", "Heavy Caliber Machine Gun", true);
    	SetTrieString(ResearchNames, "9", "Nuclear Fission", true);
    	SetTrieString(ResearchNames, "10", "Fission Reactor", true);
    	SetTrieString(ResearchNames, "11", "HIT Warhead", true);
    	SetTrieString(ResearchNames, "12", "Chemistry", true);
    	SetTrieString(ResearchNames, "13", "Improved Flagration Compounds", true);
    	SetTrieString(ResearchNames, "14", "Explosive Tipped Bullets", true);
    	SetTrieString(ResearchNames, "15", "Improved Detonation Compounds", true);
    	SetTrieString(ResearchNames, "16", "Upgraded Grenades", true);
    	SetTrieString(ResearchNames, "17", "Explosive Shells", true);
    	SetTrieString(ResearchNames, "18", "Improved Warhead Compounds", true);
    	SetTrieString(ResearchNames, "19", "Upgraded Missile Warhead", true);
    	SetTrieString(ResearchNames, "20", "Upgraded Grenadier RPG", true);
    	SetTrieString(ResearchNames, "21", "Advanced Grenadier RPG", true);
    	SetTrieString(ResearchNames, "22", "Improved Heat Transfer Fluids", true);
    	SetTrieString(ResearchNames, "23", "Advanced Coolant Engine", true);
    	SetTrieString(ResearchNames, "24", "Absorbant Armor", true);
    	SetTrieString(ResearchNames, "25", "Mechenical Engineering", true);
    	SetTrieString(ResearchNames, "26", "Advanced Personnel Deployment", true);
    	SetTrieString(ResearchNames, "27", "Upgraded Chassis", true);
    	SetTrieString(ResearchNames, "28", "Medium Tank Chassis", true);
    	SetTrieString(ResearchNames, "29", "Artillery Tank Chassis", true);
    	SetTrieString(ResearchNames, "30", "Advanced Chassis", true);
    	SetTrieString(ResearchNames, "31", "Heavy Tank Chassis", true);
    	SetTrieString(ResearchNames, "32", "Advanced Machining", true);
    	SetTrieString(ResearchNames, "33", "Composite Armor", true);
    	SetTrieString(ResearchNames, "34", "Gas Turbine Engine", true);
    	SetTrieString(ResearchNames, "35", "Electrical Engineering", true);
    	SetTrieString(ResearchNames, "36", "Advanced Magnet Research", true);
    	SetTrieString(ResearchNames, "37", "Rail Gun", true);
    	SetTrieString(ResearchNames, "38", "3 Phase Electric Motor", true);
    	SetTrieString(ResearchNames, "39", "Reactive Armor", true);
    	SetTrieString(ResearchNames, "40", "Tracking Systems", true);
    	SetTrieString(ResearchNames, "41", "Homing Missiles", true);
    	SetTrieString(ResearchNames, "42", "Guided Missiles", true);
    	SetTrieString(ResearchNames, "43", "Upgraded Turrets Lvl 2", true);
    	SetTrieString(ResearchNames, "44", "Upgraded Turrets Lvl 3", true);
    	SetTrieString(ResearchNames, "45", "Biology", true);
    	SetTrieString(ResearchNames, "46", "Regenerative Armor", true);
    	SetTrieString(ResearchNames, "47", "Bio Diesel Engine", true);
    	SetTrieString(ResearchNames, "48", "Biological Weaponry", true);
    	SetTrieString(ResearchNames, "49", "Biological Warhead", true);
    	SetTrieString(ResearchNames, "50", "Biological Projectile", true);
    
    	/* 50 is currently (2.24d) the highest research node. if anyone sees a 51, let phroggie know to update this. */
    	SetTrieString(ResearchNames, "51", "Phroggie is a pimp: 51", true);
    	SetTrieString(ResearchNames, "52", "Phroggie is a pimp: 52", true);
    	SetTrieString(ResearchNames, "53", "Phroggie is a pimp: 53", true);
    
    	RegConsoleCmd("sm_researchinfo", Info, "Get info on your teams research");
    	RegConsoleCmd("sm_ri", Info, "Get info on your teams research. Alias of sm_researchinfo.");
    }
    
    public Action:Info(client,args) {
    	decl String:nfResearchK[64];  // Trie key for NF Research. Is string of NFCurrentResearchI
    	decl String:nfResearchV[64];  // Trie string. Is plaintext of current research
    	decl String:nfResearchS[128]; // Output formatted string of NF's research.
    	
    	decl String:beResearchK[64];
    	decl String:beResearchV[64];
    	decl String:beResearchS[128];
    
    	if (client < 0) {
    		return Plugin_Handled;
    	}
    
    	GetCurrentResearch();
    	GetResearchTime();
    	
    	// TODO: Will this explode if NFCurrentResearchI or BECurrentResearchI is an insane number?
    	
    	/* pull NF's research info and parse it out */
    	IntToString(NFCurrentResearchI, nfResearchK, sizeof(nfResearchK));
    	GetTrieString(ResearchNames, nfResearchK, nfResearchV, sizeof(nfResearchV));
    	if (NFCurrentResearchI > 0) {
    		Format(nfResearchS, sizeof(nfResearchS), "Current Research: %s, %i seconds.", nfResearchV, NFResearchTimeleftI);
    	} else {
    		Format(nfResearchS, sizeof(nfResearchS), "Current Research: NONE.");
    	}
    	
    	/* pull BE's research info and parse it out */
    	IntToString(BECurrentResearchI, beResearchK, sizeof(beResearchK));
    	GetTrieString(ResearchNames, beResearchK, beResearchV, sizeof(beResearchV));
    	if (BECurrentResearchI > 0) {
    		Format(beResearchS, sizeof(beResearchS), "Current Research: %s, %i seconds.", beResearchV, BEResearchTimeleftI);
    	} else {
    		Format(beResearchS, sizeof(beResearchS), "Current Research: NONE.");
    	}
    	
    	if (client == 0) {
    		// server console
    		PrintToConsole(client, "jpl_researchinfo: NF %s", nfResearchS);
    		PrintToConsole(client, "jpl_researchinfo, BE %s", beResearchS);
    	} else {
    		new Team = GetClientTeam(client);
    		if (Team == 2) {
    			// Northern Faction
    			PrintToConsole(client, "jpl_researchinfo: %s", nfResearchS);
    			PrintToChat(client, "%s", nfResearchS);
    		} else if (Team == 3) {
    			// Brenodi Empire
    			PrintToConsole(client, "jpl_researchinfo: %s", beResearchS);
    			PrintToChat(client, "%s", beResearchS);
    		} else {
    			// Spectator or something horribly wrong
    			PrintToConsole(client, "jpl_researchinfo: Join a team to see current research.");
    			PrintToChat(client, "Join a team to see current research.");
    		}
    	}
    
    	return Plugin_Handled;
    }
    
     
    Last edited: Oct 31, 2009
  17. craig.gates

    craig.gates Member

    Messages:
    109
    Likes Received:
    0
    Trophy Points:
    0
    Hi i just looked at all this and its way over my head. Can anyone help me out here. I just want to be able to type !ri or !researchinfo in chat and there you have it i dont understand compling and everything else has somebody got the files that i could just put in the correct folder please? kind regards Craig.
     
  18. DrummerX

    DrummerX Empires Tyrant

    Messages:
    1,193
    Likes Received:
    0
    Trophy Points:
    0
    The !researchinfo plugin is at the sourcemod.net website, as for !ri (sam plugin differet trigger) you'll need a trigger plugin and setup your own trigger system. As for that, good luck.
     

Share This Page