Raised This Month: $ Target: $400
 0% 

Criminalmod help. Native Error get_user_menu


  
 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
Author Message
viagra
New Member
Join Date: Jan 2005
Old 03-27-2005 , 13:15   Criminalmod help. Native Error get_user_menu
Reply With Quote #1

okey, got the script form hlrn.net. Made by Twilight Suzuka. And it supose to work on Ts. But the script had two errors, one was No free edicts and the second one was Get_user_menu. I managed to get the no free edicts away buy uncommenting something at the stop of the script. and then i really struggled to get the second part to work. What can be wrong, il post the script. with the first probleme fixed.

*EDIT* I forgot to add the lines whrer the fault cam up in debug mode. 532, 177, 101


Code:
#pragma tabsize 0 #include <amxmodx> #include <amxmisc> #include <string> #include <fun> #include <engine> new kills[33], deaths[33], starttime[33], lastkill[33], secondkill[33], killed[33], killedby[33], warnings[33], warnstatus[33] new prunetime = 1209600 new bool:dmer[33], bool:potdmer[33] new statusbar[5][32] = {"No status", "Slight Criminal Status", "Moderate Criminal Status", "High Criminal Status", "DeathMatcher"}; new barremarks[5][50] = {"Keep up the good work", "Keep it on the low", "Lay low a while", "Cops are on your tail", "What are you doing in an RP server?"}; new punishments[4][30] = {"Permanent Ban","Temp Ban","Kick","Blank"} new storedid[33] = -1 public plugin_init() {     register_plugin("Criminal Mod", "1.17", "TSX")         register_cvar("nodm_block","1",FCVAR_PRINTABLEONLY);         register_cvar("nodm_respawn","1",FCVAR_PRINTABLEONLY);         register_cvar("nodm_fadeblack","1",FCVAR_PRINTABLEONLY);     register_cvar("aa_death_level", "200",FCVAR_PRINTABLEONLY);     register_cvar("aa_kill_level", "300",FCVAR_PRINTABLEONLY);     register_cvar("aa_warning_warning", "300",FCVAR_PRINTABLEONLY);     register_cvar("aa_warning_slap", "400",FCVAR_PRINTABLEONLY);     register_cvar("aa_warning_slay", "450",FCVAR_PRINTABLEONLY);     register_cvar("aa_warning_blank", "500",FCVAR_PRINTABLEONLY);     register_cvar("aa_warning_kick", "600",FCVAR_PRINTABLEONLY);     register_cvar("aa_warning_bantemp", "650",FCVAR_PRINTABLEONLY);     register_cvar("aa_warning_ban", "700",FCVAR_PRINTABLEONLY);     register_cvar("aa_admin_highlander", "1",FCVAR_PRINTABLEONLY);     register_cvar("clear_allowed", "1",FCVAR_PRINTABLEONLY);         register_event("TSMessage","respawn_message","b");     register_menucmd(register_menuid("AA: Consulting on:"), 1023, "consult_key");         register_concmd("say /criminals","show_criminals",ADMIN_KICK)         register_concmd("amx_deathblock","deathblock",ADMIN_LEVEL_A,"<0|1> - turns death blocking on or off");         register_concmd("amx_forcerespawn","forcerespawn",ADMIN_LEVEL_A,"<0|1> - turns force respawn on or off");         register_concmd("amx_fadetoblack","fadetoblack",ADMIN_LEVEL_A,"<0|1> - turns fade to black on death on or off");     set_task(2.0,"crimbar",0,"",0,"bd");         // handle deathblock on load         if(!get_cvar_num("nodm_block")) set_msg_block(get_user_msgid("DeathMsg"),BLOCK_NOT);         else if(get_cvar_num("nodm_block")) set_msg_block(get_user_msgid("DeathMsg"),BLOCK_SET); } //public respawn_message(id) { //  if(!get_cvar_num("nodm_respawn")) return PLUGIN_HANDLED //          spawn(id) // //} public fade(id) {     if(is_user_alive(id)) {         message_begin(MSG_ONE,get_user_msgid("ScreenFade"),{0,0,0},id);         write_short(~0); // duration, ~0 is max         write_short(~0); // hold time, ~0 is max         write_short(1<<12); // flags, no idea wtf 1<<12 is         write_byte(0); // red, 0 for black         write_byte(0); // green, 0 for black         write_byte(0); // blue, 0 for black         write_byte(255); // alpha, 255 for total black         message_end();         set_task(10.0,"fade",id); // reset it, screenfade only last for so long         } } public crimbar(){         if(!get_cvar_num("nodm_block")) set_msg_block(get_user_msgid("DeathMsg"),BLOCK_NOT);         else if(get_cvar_num("nodm_block")) set_msg_block(get_user_msgid("DeathMsg"),BLOCK_SET);     for(new i=0;i< get_maxplayers(); i++){         if(is_user_connected(i)){             new lev = warnstatus[i]/100             if(lev>5) lev = 5             set_hudmessage(0,175,0,-1.0,-0.02,0,0.0,5.0,0.0,0.0,2);             show_hudmessage(i,"Criminal Status:%s^n%s",statusbar[lev],barremarks[lev]);         }     } return 1; } public client_putinserver(id) {     set_user_frags(id, 0)     remember_frags(id)     client_cmd(id,"hud_centerid 0")     client_cmd(id,"hud_deathnotice_time 0")     client_cmd(id,"hud_drawhistory_time 0")     starttime[id] = get_systime();     lastkill[id] = -1     secondkill[id] = -1     killed[id] = -1     killedby[id] = -1     check_em(id,0)     check_em(id,1)      warnstatus[id] = -1     return PLUGIN_CONTINUE; } public client_death(killer,victim,wpnindex,hitplace,TK){     kills[killer] += get_cvar_num("aa_kill_level");     deaths[victim] += get_cvar_num("aa_death_level");     secondkill[killer] = lastkill[killer]     lastkill[killer] = get_systime();     killed[victim] = victim     killedby[victim] = killer     calculate_status(killer,1)     calculate_status(victim,0)     record_frags(killer,1)     record_frags(victim,0)     check_em(killer,1)     check_em(victim,0)         if(get_cvar_num("nodm_fadeblack")) set_task(2.5,"fade",victim);     if(get_cvar_num("clear_allowed")){         set_user_frags(killer, 0)         set_user_frags(victim, 0)     }     exec_clear()     return 1; } public calculate_status(id,mode){     if(kills[id] > 5) potdmer[id] = true;     if(warnings[id] > 5) potdmer[id] = true     if(potdmer[id] == true){         new multi = (lastkill[id] - secondkill[id])/60         new pote = kills[id]/multi         new potential = pote*100         if(potential > 500) dmer[id] = true     }     if(dmer[id] == true) warnstatus[id] = 1000;     if(mode == 1){         if((potdmer[killedby[id]] == true) || (dmer[killedby[id]] == true)){             if(potdmer[id] == false || dmer[id] == false) return 1;         }         if(secondkill[id] == -1) warnstatus[id] += get_cvar_num("aa_kill_level")         else{             new multi = (lastkill[id] - secondkill[id])/60             new pote = kills[id]/multi             new potential = pote*100             if(warnstatus[id] == -1) warnstatus[id] = potential             else warnstatus[id] += potential         }       return 1;     }     if(mode == 0){         if(warnstatus[id] == -1) return 1;         else{             new timebetween = lastkill[id] - secondkill[id]             if(potdmer[id] == true){                 if(timebetween < 300) warnstatus[id] += (kills[id]/(lastkill[id] - secondkill[id]))*100                 else potdmer[id] = true             }         }         return 1     }     return 0;           } public check_em(id,mode){     new admin=0     if(get_cvar_num("aa_admin_highlander")){         admin = check_admins()     }           if(mode == 1){         if(warnstatus[id] > (get_cvar_num("aa_warning_banperm"))){             warnings[id] += 1             if(admin != 0){                 consult_admin(admin,id,1)                 return 1;             }             spawn(id);             console_print(id,"[TSX AA] **** You have been banned for Dm'ing. ****")             new userid2 = get_user_userid(id)             server_cmd("banid 0 #%d kick;writeid",userid2)             return 1;         }         if(warnstatus[id] > (get_cvar_num("aa_warning_bantemp"))){             warnings[id] += 1             if(admin != 0){                 consult_admin(admin,id,2)                 return 1;             }             spawn(id);             console_print(id,"[TSX AA] **** You have been banned for Dm'ing. ****")             new userid2 = get_user_userid(id)             server_cmd("banid 10 #%d kick;writeid",userid2)             return 1;         }         if(warnstatus[id] > (get_cvar_num("aa_warning_kick"))){             warnings[id] += 1             if(admin != 0){                 consult_admin(admin,id,3)                 return 1;             }             spawn(id);             console_print(id,"[TSX AA] **** You have been kicked for DM'ing. ****")             new userid2 = get_user_userid(id)             server_cmd("kick #%d",userid2)             return 1;         }         if(warnstatus[id] > (get_cvar_num("aa_warning_blank"))){             warnings[id] += 1             if(admin != 0){                 consult_admin(admin,id,4)                 return 1;             }             spawn(id);             client_print(id,print_chat,"[TSX AA] **** This is your last warning. Do not DM. ****")             blank(id)             return 1;         }         if(warnstatus[id] > (get_cvar_num("aa_warning_slay"))){             warnings[id] += 1             spawn(id);             client_print(id,print_chat,"[TSX AA] **** This is your third warning. Do not DM. ****")             new health2 = get_user_health(id);             set_user_health(id, health2-100);             return 1;         }         if(warnstatus[id] > (get_cvar_num("aa_warning_slap"))){             warnings[id] += 1             spawn(id);             client_print(id,print_chat,"[TSX AA] **** This is your second warning. Do not DM. ****")             user_slap(id,60);             return 1;         }         if(warnstatus[id] > (get_cvar_num("aa_warning_warning"))){             warnings[id] += 1             strip_user_weapons(id)             spawn(id);             client_print(id,print_chat,"[TSX AA] **** This is your first warning. Do not DM. ****")             return 1;         }else{             unblank(id)             spawn(id)             if(warnings[id] > 0) warnings[id]--         }     }     if(mode == 0){         if(potdmer[id] == true) check_em(id,1)         if(dmer[id] == true) check_em(id,1)     }     return 1; }         public exec_clear() {     new players[32], inum     get_players(players,inum,"a")     for(new i = 0 ;i < inum ;++i) {         if(get_cvar_num("clear_allowed")){             client_cmd(players[i],"clear")         }         client_cmd(players[i],"hud_centerid 0")         client_cmd(players[i],"hud_deathnotice_time 0")         client_cmd(players[i],"hud_drawhistory_time 0")     } } public show_criminals(id,level,cid){         if(!cmd_access(id,level,cid,2)) { // no access         return PLUGIN_HANDLED;     }     for(new i=0;i< get_maxplayers(); i++){         if(is_user_connected(i)){             if(dmer[id] == true){                 new username[32]                 get_user_name(i,username,31)                 console_print(id,"%i. %s is a dmer. Level:%i",i,username,warnstatus[i])             }else if(potdmer[id] == true){                 new username[32]                 get_user_name(i,username,31)                 console_print(id,"%i. %s is a potential dmer. Level:%i",i,username,warnstatus[i])             }         }     }     return 1; } public remember_frags(id){     new authid[32], vaultstring[256]     get_user_authid(id,authid,31)     format(vaultstring,255,"CRIM=%s=status",authid); // get money     new stat[256]     get_cvaultdata(vaultstring,stat,255,"crim_vault.ini",1)     warnstatus[id] = str_to_num(stat)     if(cvaultdata_exists(vaultstring,"crim_vault.ini",1)) {         format(vaultstring,255,"CRIM=%s=kills",authid); // get money         new kil[256];         get_cvaultdata(vaultstring,kil,255,"crim_vault.ini",1);         kills[id] = str_to_num(kil);     }     else kills[id] = 0     if(cvaultdata_exists(vaultstring,"crim_vault.ini",1)) {         format(vaultstring,255,"CRIM=%s=deaths",authid); // get money         new det[256];         get_cvaultdata(vaultstring,det,255,"crim_vault.ini",1);         deaths[id] = str_to_num(det);     }     else deaths[id] = 0     return 1; } public record_frags(id,mode){     new authid[32], vaultstring[256]     get_user_authid(id,authid,31)     format(vaultstring,255,"CRIM=%s=status",authid);     new stat[256]     num_to_str(warnstatus[id],stat,255)     set_cvaultdata(vaultstring,stat,"crim_vault.ini",1)     if(mode == 1){         if(cvaultdata_exists(vaultstring,"crim_vault.ini",1)) {             format(vaultstring,255,"CRIM=%s=kills",authid); // get money             new kil[256];             num_to_str(kills[id],kil,255)             set_cvaultdata(vaultstring,kil,"crim_vault.ini",1);         }     }     if(mode == 0){         if(cvaultdata_exists(vaultstring,"crim_vault.ini",1)) {             format(vaultstring,255,"CRIM=%s=deaths",authid); // get money             new kil[256];             num_to_str(deaths[id],kil,255)             set_cvaultdata(vaultstring,kil,"crim_vault.ini",1);         }     }       return 1; } public blank(id){     set_user_hitzones(id, 0, 0) } public unblank(id){     set_user_hitzones(id, 0, 255) }             // returns 1 if "key" was found in "file", 0 otherwise public get_cvaultdata(const key[], data[], len, const file[],prune) {    if(!file_exists(file)) { // no file          write_file(file,"//CustomVault by Avalanche + Mel - leave this line intact",-1);          return 0;        }        // invalid parameters        if(strlen(key) == 0 || strlen(file) == 0 || len <= 1) return 0; // return failure        new line, text[256], txtlen;        // go through file        while(read_file(file,line,text,255,txtlen)) {          line = read_file(file,line,text,255,txtlen); // get data          new currkey[128], currdata[128]; // title, data          strtok(text,currkey,127,currdata,127,' ',1); // split into parts           if(prune){          new currtime[128]          strtok(currdata,currdata,127,currtime,127,' ',1); // split into parts          new storedtime = str_to_num(currtime)          new systime = get_systime ()          if((systime - storedtime) < prunetime) remove_cvaultdata(key,file,1);       }          if(equal(key,currkey)) { // if we found a match               format(data,len,"%s",currdata);          if(prune) set_cvaultdata(key,data,file,1);               return 1; // return success          }        }        return 0; // return failure } // returns 1 if "key" was found and changed in "file", 0 otherwise public set_cvaultdata(const key[], const data[], const file[],prune) {    if(!file_exists(file)) { // no file          write_file(file,"//CustomVault by Avalanche + Mel - leave this line intact",-1);          return 0;        }        // invalid parameters        if(strlen(key) == 0 || strlen(data) == 0 || strlen(file) == 0) return 0; // return failure        new string[256], theline, result; // our vault format    if(prune){       new systime = get_systime ()           format(string,255,"%s   %s   %i",key,data,systime); // format it!       result = cvaultdata_exists(key,file,1);    }else{       format(string,255,"%s   %s",key,data); // format it!           result = cvaultdata_exists(key,file,0);    }        if(!result) { // no result           theline = -1; // set to last line by default          new line, text[256], txtlen;          // go through file          while((line=read_file(file,line,text,255,txtlen)) != 0) if(equal(text,"")) theline = line - 1;        }else theline = result; // override that line        if(write_file(file,string,theline)) return 1; // return success              return 0; // return failure by default } // returns 1 if "key" was found in and removed from "file", otherwise 0 public remove_cvaultdata(const key[], const file[],prune) {        if(!file_exists(file)) { // no file          write_file(file,"//CustomVault by Avalanche + Mel - leave this line intact",-1);          return 0;        }        // invalid parameters        if(strlen(key) == 0 || strlen(file) == 0) return 0;        new line, text[256], txtlen;        // go through file        while((line=read_file(file,line,text,255,txtlen)) != 0) {          new currkey[128], currdata[128];// title, data          strtok(text,currkey,127,currdata,127,' ',1); // split into parts       if(prune){          new currtime[128]             strtok(currdata,currdata,127,currtime,127,' ',1); // split into parts          new storedtime = str_to_num(currtime)          new systime = get_systime ()          if((systime - storedtime) < prunetime) remove_cvaultdata(key,file,1);       }          if(equal(currkey,key)) if(write_file(file,"",line-1)) return 1;        }     return 0; // return failure } // returns line if "key" was found in if found in "file", otherwise 0 public cvaultdata_exists(const key[], const file[],prune) {    if(!file_exists(file)) { // no file          write_file(file,"//CustomVault by Avalanche + Mel - leave this line intact",-1);          return 0;        }        // invalid parameters        if(strlen(key) == 0 || strlen(file) == 0) return 0; // return failure        new line, text[256], txtlen;        // go through file        while((line=read_file(file,line,text,255,txtlen)) != 0) {          new title[128], data[128]; // title, data          strtok(text,title,127,data,127,' ',1); // split into parts       if(prune){          new currtime[128]             strtok(data,data,127,currtime,127,' ',1); // split into parts          new storedtime = str_to_num(currtime)          new systime = get_systime ()          if((systime - storedtime) < prunetime) remove_cvaultdata(key,file,1);       }          if(equal(key,title)) return (line - 1)        }     return 0; // return failure } public consult_admin(id,player,num){     new menu[1024], name[32]     get_user_name(player,name,31)     storedid[id] = player     format(menu,sizeof(menu),"AA: Consulting on: %s^n Potential punishment: %s^n Status number: %i^n Warnings: %i)",name,punishments[num],warnstatus[player],warnings[player])         add(menu, sizeof(menu), "^n1. Ban Perm.")     add(menu, sizeof(menu), "^n2. Ban")         add(menu, sizeof(menu), "^n3. Kick")         add(menu, sizeof(menu), "^n4. Blank")         add(menu, sizeof(menu), "^n5. Slay")         add(menu, sizeof(menu), "^n6. Slap")     add(menu, sizeof(menu), "^n7. Warn")         add(menu, sizeof(menu), "^n^n0. Leave Alone for now")         new keys = (1<<0|1<<1|1<<2|1<<3|1<<4|1<<5|1<<6|1<<7|1<<8|1<<9)     show_menu(id,keys,menu)     return PLUGIN_HANDLED; } public consult_key(id,key) {     new player = storedid[id]     new userid2 = get_user_userid(player)     switch(key) {     case 0: server_cmd("banid 0 #%d kick;writeid",userid2)     case 1: server_cmd("banid 10 #%d kick;writeid",userid2)     case 2: server_cmd("kick #%d",userid2)     case 4: user_kill(player)     case 5: user_slap(player,60)     case 6: client_print(player,print_chat,"No DM'ing. Stop killing. You have been warned.")     }     return PLUGIN_HANDLED } public check_admins(){     new potadmin[2];     for(new i=0;i<get_maxplayers();i++){         new menuid, menukeys         new see = get_user_menu(i,menuid,menukeys);         if(see == 0){             if(!(get_user_flags(i)&ADMIN_USER)){                 if(get_user_flags(i)&ADMIN_RCON) return i;                 if(get_user_flags(i)&ADMIN_BAN) return i;                 if(get_user_flags(i)&ADMIN_KICK) return i;                             if(potadmin[1] < 5) if(get_user_flags(i)&ADMIN_VOTE) potadmin[0] = i, potadmin[1] = 5                 if(potadmin[1] < 4) if(get_user_flags(i)&ADMIN_SLAY) potadmin[0] = i, potadmin[1] = 4                 if(potadmin[1] < 3) if(get_user_flags(i)&ADMIN_PASSWORD) potadmin[0] = i, potadmin[1] = 3                 if(potadmin[1] < 2) if(get_user_flags(i)&ADMIN_CFG) potadmin[0] = i, potadmin[1] = 2                 if(potadmin[1] < 1) if(get_user_flags(i)&ADMIN_MENU) potadmin[0] = i, potadmin[1] = 1             }         }     }       if(potadmin[0]) return potadmin[0]     return 0 }
viagra is offline
 



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 10:01.


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