Raised This Month: $ Target: $400
 0% 

[help]understanding this script:


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
haimmaik
Senior Member
Join Date: Jul 2005
Old 07-02-2006 , 13:49   [help]understanding this script:
Reply With Quote #1

well.. im trying to make a plugin for NS that see's how many kills and deaths a player got (using vault) and then lvl him up by setting his access level to the right levels (from M to S are custom lvls) for each level im using another icon (i made military ranks like icons) so every time u reach a higher rank.. ur icon looks like a higher level.

im trying to learn how to edit the users.ini fro the admins.sma plugin that i got built in with AMX.. and i dont really get it... well i understand whats going on but i dont know why he's doing stuff.. so i cant learn from it and build my own version (that only adds steamID and 1 flag from M to S) i also dont see there a way to delete an access or edit an access how i do that?

here is the code:
Code:
public addadminfn(id, level, cid) {  if (!cmd_access(id, level, cid, 3))   return PLUGIN_HANDLED    new idtype = ADMIN_STEAM | ADMIN_LOOKUP  if (read_argc() > 4)  {   new t_arg[16]   read_argv(4, t_arg, 15)     if (equali(t_arg, "steam") || equali(t_arg, "steamid") || equali(t_arg, "auth"))   {    idtype = ADMIN_STEAM   }   else if (equali(t_arg, "ip"))   {    idtype = ADMIN_IPADDR   }   else if (equali(t_arg, "name") || equali(t_arg, "nick"))   {    idtype = ADMIN_NAME   } else {    console_print(id, "[%s] Unknown idtype ^"%s^", use one of: steamid, ip, name", PLUGINNAME, t_arg)    return PLUGIN_HANDLED   }  }  new arg[33]  read_argv(1, arg, 32)  new player = -1    if (idtype & ADMIN_STEAM)  {   if (containi(arg, "STEAM_0:") == -1)   {    idtype |= ADMIN_LOOKUP    player = cmd_target(id, arg, 10)   }  }  else if (idtype & ADMIN_NAME)  {   player = cmd_target(id, arg, 10)     if (player)    idtype |= ADMIN_LOOKUP  }  else if (idtype & ADMIN_IPADDR)  {   new len = strlen(arg)   new dots, chars     for (new i = 0; i < len; i++)   {    if (arg[i] == '.')    {     if (!chars || chars > 3)      break         if (++dots > 3)      break         chars = 0    } else {     chars++    }        if (dots != 3 || !chars || chars > 3)    {     idtype |= ADMIN_LOOKUP     player = find_player("dh", arg)    }   }  }    if (idtype & ADMIN_LOOKUP && !player)  {   console_print(id, "%L", id, "CL_NOT_FOUND")   return PLUGIN_HANDLED  }    new flags[64]  read_argv(2, flags, 63)  new password[64]  if (read_argc() == 4)   read_argv(3, password, 63)  new auth[33]  if (idtype & ADMIN_LOOKUP)  {   if (idtype & ADMIN_STEAM)   {    get_user_authid(player, auth, 32)   }   else if (idtype & ADMIN_IPADDR)   {    get_user_ip(player, auth, 32)   }   else if (idtype & ADMIN_NAME)   {    get_user_name(player, auth, 32)   }  } else {   copy(auth, 32, arg)  }    new type[16], len    if (idtype & ADMIN_STEAM)   len += format(type[len], 15-len, "c")  else if (idtype & ADMIN_IPADDR)   len += format(type[len], 15-len, "d")    if (strlen(password) > 0)   len += format(type[len], 15-len, "a")  else   len += format(type[len], 15-len, "e")    AddAdmin(id, auth, flags, password, type)  cmdReload(id, ADMIN_CFG, 0)  if (player > 0)  {   new name[32]   get_user_info(player, "name", name, 31)   accessUser(player, name)  }  return PLUGIN_HANDLED } AddAdmin(id, auth[], accessflags[], password[], flags[]) { #if defined USING_SQL  new host[64], user[32], pass[32], db[128], table[32], error[128], dbType[7]    dbi_type(dbType, 6)  get_cvar_string("amx_sql_host", host, 63)  get_cvar_string("amx_sql_user", user, 31)  get_cvar_string("amx_sql_pass", pass, 31)  get_cvar_string("amx_sql_db", db, 127)  get_cvar_string("amx_sql_table", table, 31)  new Sql:sql = dbi_connect(host, user, pass, db, error, 127)    if (sql <= SQL_FAILED)  {   server_print("[AMXX] %L", LANG_SERVER, "SQL_CANT_CON", error)   //backup to users.ini #endif   // Make sure that the users.ini file exists.   new configsDir[64]   get_configsdir(configsDir, 63)   format(configsDir, 63, "%s/users.ini", configsDir)   if (!file_exists(configsDir))   {    console_print(id, "[%s] File ^"%s^" doesn't exist.", PLUGINNAME, configsDir)    return   }   // Make sure steamid isn't already in file.   new line = 0, textline[256], len   const SIZE = 63   new line_steamid[SIZE + 1], line_password[SIZE + 1], line_accessflags[SIZE + 1], line_flags[SIZE + 1], parsedParams     // <name|ip|steamid> <password> <access flags> <account flags>   while ((line = read_file(configsDir, line, textline, 255, len)))   {    if (len == 0 || equal(textline, ";", 1))     continue // comment line    parsedParams = parse(textline, line_steamid, SIZE, line_password, SIZE, line_accessflags, SIZE, line_flags, SIZE)        if (parsedParams != 4)     continue // Send warning/error?        if (containi(line_flags, flags) != -1 && equal(line_steamid, auth))    {     console_print(id, "[%s] %s already exists!", PLUGINNAME, auth)     return    }   }   // If we came here, steamid doesn't exist in users.ini. Add it.   new linetoadd[512]     format(linetoadd, 511, "^"%s^" ^"%s^" ^"%s^" ^"%s^"", auth, password, accessflags, flags)   console_print(id, "Adding:^n%s", linetoadd)   if (!write_file(configsDir, linetoadd))    console_print(id, "[%s] Failed writing to %s!", PLUGINNAME, configsDir) #if defined USING_SQL  }  new Result:Res = dbi_query(sql, "SELECT * FROM `%s` WHERE (`auth` = '%s')", table, auth)  if (Res == RESULT_FAILED)  {   dbi_error(sql, error, 127)   server_print("[AMXX] %L", LANG_SERVER, "SQL_CANT_LOAD_ADMINS", error)   console_print(id, "[AMXX] %L", LANG_SERVER, "SQL_CANT_LOAD_ADMINS", error)   dbi_close(sql)     return  }  else if (Res > RESULT_NONE)  {   console_print(id, "[%s] %s already exists!", PLUGINNAME, auth)   dbi_free_result(Res)   dbi_close(sql)     return  }  console_print(id, "Adding to database:^n^"%s^" ^"%s^" ^"%s^" ^"%s^"", auth, password, accessflags, flags)    dbi_query(sql, "REPLACE INTO `%s` (`auth`, `password`, `access`, `flags`) VALUES ('%s', '%s', '%s', '%s')", table, auth, password, accessflags, flags)  dbi_close(sql) #endif }

1 more thing.. it have been a long time since i didnt program in pawn.. i hardly remember stuff.. i'v been sitting on this chair for 9 hours trying to figure my way to build the plugin out with no success... please help me

thanks.
haimmaik 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 08:03.


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