AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Scripting Help (https://forums.alliedmods.net/forumdisplay.php?f=11)
-   -   rewrite plugin for amxx (https://forums.alliedmods.net/showthread.php?t=17806)

dagod 09-09-2005 12:54

rewrite plugin for amxx
 
Hello,

i have found a plugin for adminmod, which i really need in amxx, but i dont know how to configure it for amxx.

Code:
#include <core> #include <console> #include <string> #include <admin> #include <adminlib> #include <plugin> new STRING_VERSION[MAX_DATA_LENGTH] = "1.1"; new g_sMap[MAX_DATA_LENGTH]=""; /* Check whether vault.ini exists */ is_vaultfile_set(){     new vault[MAX_DATA_LENGTH];     getstrvar("admin_vault_file",vault,MAX_DATA_LENGTH);     if(streq(vault,"0") || strlen(vault)==0){         if(getvar("admin_debug")>0){             log("[BK_RES] No vault file defined.");         }         return 0;     }     return 1; } /* Define vault.ini */ define_vaultfile(){     new sPath[MAX_DATA_LENGTH];     getstrvar("amv_default_config_dir",sPath,MAX_DATA_LENGTH);     snprintf(sPath,MAX_DATA_LENGTH,"%s/vault.ini",sPath);     setstrvar("admin_vault_file",sPath);     reload();     if(getvar("admin_debug")>0){         log("[BK_RES] Defined vault.ini myself.");     } } /* Let's check, whether we should only refresh one map or all */ moremaps(sMapsFile[]){     if(strlen(g_sMap)!=0){         return 1;     }     else{         get_vaultdata("BK_RES_MAPS",sMapsFile,MAX_DATA_LENGTH);         /* This shouldn't happen and would spam the logs a bit, but better than an endless loop in the for-loop */         if(!fileexists(sMapsFile)){             log("[BK_RES] Defined mapsfile does not exist. Check admin_res_maps!");             return 0;         }     }     return filesize(sMapsFile,lines); } /* Just append the data of one file to another */ add_res_data(sMap[],sMap2[]){     new iLines;     new i;     new sLine[MAX_DATA_LENGTH];     if(fileexists(sMap)){         iLines=filesize(sMap,lines);         for(i=1;i<=iLines;i++){             readfile(sMap,sLine,i,MAX_DATA_LENGTH);             writefile(sMap2,sLine,-1);         }         return 1;     }     return 0; } /* Adding file to res-file, executed by external plugins */ public res_add(HLCommand,HLData,HLUserName,UserIndex){     new sMapsFile[MAX_DATA_LENGTH];     new sMap[MAX_DATA_LENGTH];     new sMapRes[MAX_DATA_LENGTH];     new sLine[MAX_DATA_LENGTH];     new iLines;     new i;     /* sLine should now include the new res file entry */     convert_string(HLData,sLine,MAX_DATA_LENGTH);         /* Now we check whether the file exists at all */     if(!fileexists(sLine)){         snprintf(sLine,MAX_TEXT_LENGTH,"[BK_RES] File %s does not exist on server.",sLine);         log(sLine);         return PLUGIN_HANDLED;     }     /* Let's check, whether we should only refresh one map or all */     iLines=moremaps(sMapsFile);         if(!iLines){         return PLUGIN_HANDLED;     }     /* Adding entry to res file */     for(i=1;i<=iLines;i++){         if(strlen(g_sMap)!=0){             strcpy(sMap,g_sMap,MAX_DATA_LENGTH);         }         else{             readfile(sMapsFile,sMap,i,MAX_DATA_LENGTH);         }         if(strlen(sMap)!=0){             snprintf(sMapRes,MAX_DATA_LENGTH,"maps/%s.res",sMap);             writefile(sMapRes,sLine,-1);         }     }     return PLUGIN_HANDLED; } /* This function is for adding map specific data and/or default data to the res file(s). */ public res_refresh(HLCommand,HLData,HLUserName,UserIndex){     new sMap[MAX_DATA_LENGTH];     new sMapDefault[MAX_DATA_LENGTH];     new sMapsFile[MAX_DATA_LENGTH];     new sMapRes[MAX_DATA_LENGTH];     new sPath[MAX_DATA_LENGTH];     new iLines;     new i;         /* Let's check, whether we should only refresh one map or all */     iLines=moremaps(sMapsFile);         /* exit, if there is something wrong */     if(!iLines){         return PLUGIN_HANDLED;     }         getstrvar("amv_default_config_dir",sPath,MAX_DATA_LENGTH);     snprintf(sMapDefault,MAX_DATA_LENGTH,"%s/res/default.res",sPath);     for(i=1;i<=iLines;i++){         if(strlen(g_sMap)!=0){             strcpy(sMap,g_sMap,MAX_DATA_LENGTH);         }         else{             readfile(sMapsFile,sMap,i,MAX_DATA_LENGTH);         }         if(strlen(sMap)!=0 && sMap[0]!='/' && sMap[0]!='#' && sMap[0]!=';'){             /* We like to add any map specific data to the res file */             snprintf(sMapRes,MAX_DATA_LENGTH,"maps/%s.res",sMap); //The res file             snprintf(sMap,MAX_DATA_LENGTH,"%s/res/%s.res",sPath,sMap); //The map specific res file             add_res_data(sMap,sMapRes);             /* Of course, we also want to add some default data for all maps, if it exists */             add_res_data(sMapDefault,sMapRes);         }     }         strinit(g_sMap);     log("[BK_RES] Res files created!");     return PLUGIN_HANDLED; } /* Starting the recreation of the res files for all maps or a specific map */ public admin_res_refresh(HLCommand,HLData,HLUserName,UserIndex){     new sMap[MAX_DATA_LENGTH];     new iLines,i;     new sMapsFile[MAX_DATA_LENGTH];     /* sMap should now include the map to be renewed or nothing */     convert_string(HLData,sMap,MAX_DATA_LENGTH);     /* Let's check, whether we should only refresh one map or all */     iLines=moremaps(sMapsFile);     /* exit, if there is something wrong */     if(!iLines){         return PLUGIN_HANDLED;     }     /* Delete those files we want to recreate at first*/     for(i=1;i<=iLines;i++){         if(strlen(sMap)!=0){             strcpy(g_sMap,sMap,MAX_DATA_LENGTH);         }         else{             readfile(sMapsFile,sMap,i,MAX_DATA_LENGTH);         }         if(strlen(sMap)!=0 && sMap[0]!='/' && sMap[0]!='#' && sMap[0]!=';'){             snprintf(sMap,MAX_DATA_LENGTH,"maps/%s.res",sMap);             if(fileexists(sMap)){                 deletefile(sMap);             }         }         strinit(sMap);     }     /* Ok let's see, which plugin has something to tell ;-) */     plugin_exec("res_refresh","");     return PLUGIN_HANDLED; } /* Defining the file with the maps for which res files should be created */ public admin_res_maps(HLCommand,HLData,HLUserName,UserIndex){     new sMapsFile[MAX_DATA_LENGTH];     new sText[MAX_TEXT_LENGTH];     /* Here we have most probably the maps file */     convert_string(HLData,sMapsFile,MAX_DATA_LENGTH);         /* At first we check, if a map is specified. If it isn't, we would return the current value */     if(!strlen(sMapsFile)){         get_vaultdata("BK_RES_MAPS",sMapsFile,MAX_DATA_LENGTH);         snprintf(sText,MAX_TEXT_LENGTH,"Maps file is: %s",sMapsFile);         selfmessage(sText);         return PLUGIN_HANDLED;     }         /* Secondly, we check whether the specified file exists. If it does exist, we would change the the setting and return the new value */     if(fileexists(sMapsFile)){         set_vaultdata("BK_RES_MAPS",sMapsFile);         snprintf(sText,MAX_TEXT_LENGTH,"Maps file is now: %s",sMapsFile);         selfmessage(sText);         return PLUGIN_HANDLED;     }         /* If everything fails, the file is non-existant, so we inform the user that he/she made a mistake */     snprintf(sText,MAX_TEXT_LENGTH,"ERROR: Specified maps file %s does not exist!",sMapsFile);     selfmessage(sText);     return PLUGIN_HANDLED; } /* Init the plugin */ public plugin_init() {     new sMaps[MAX_DATA_LENGTH];     /* Plugin Registrierung */     plugin_registerinfo("BK Res","Managing Res-Files",STRING_VERSION);     plugin_registercmd("res_refresh","res_refresh",ACCESS_CONFIG,"");     plugin_registercmd("res_add","res_add",ACCESS_CONFIG,"");     plugin_registercmd("admin_res_refresh","admin_res_refresh",ACCESS_CONFIG,"admin_res_refresh [mapname]: Regenerates res-files of all or a certain map.");     plugin_registercmd("admin_res_maps","admin_res_maps",ACCESS_CONFIG,"admin_res_maps <maplist>: Defines the file including the maps for which res-files should be created.");     /* vault.ini check und ggf. definieren */     if(!is_vaultfile_set()){         define_vaultfile();     }     /* Install plugin with initial values */     if(!get_vaultdata("BK_RES_MAPS",sMaps,MAX_DATA_LENGTH)){         getstrvar("mapcyclefile",sMaps,MAX_DATA_LENGTH);         set_vaultdata("BK_RES_MAPS",sMaps);         set_vaultnumdata("BK_RES_NO",0);         if(getvar("admin_debug")>0){             log("[BK_RES] Installed! Using mapcycle for res file creation.");         }     }     return PLUGIN_CONTINUE; }
Could someone write a new version for amxmodx, please?

Readmes for this plugins are in German and inEnglish
/EDIT: oh, you have to copy and paste the links, cause the provider allows no extern linking..

much thx 4 help

dagod

Xanimos 09-09-2005 13:27

Just tell us what it did.
You cant really port adminmod to AmxX. You would have to recreate from scratch.

So if you post in suggestions/requests you can ask for someone to make it.

dagod 09-09-2005 13:49

i DID post a request HERE, but they only say that i would be too lazy, so i have asked my friend google and it said, that adminmod have already this plugin....

i just need a plguin that works like a .res file, which works for ALL maps instead of just one map....

Brad 09-09-2005 14:02

I just responded in your original post.


All times are GMT -4. The time now is 14:23.

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