15.01.2010, 18:57
Code:
#include <a_samp> new alfabet[72][10]={ "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", ".", ",", "\\", "/", "?", "!", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", " ", "+", "=", "-" }; /* new encryption[72][10]={ "|44|", "|16|", "|33|", "|65|", "|22|", "|72|", "|75|", "|47|", "|25|", "|77|", "|45|", "|51|", "|11|", "|92|", "|73|", "|18|", "|39|", "|58|", "|88|", "|84|", "|36|", "|13|", "|31|", "|95|", "|98|", "|69|", "|42|", "|24|", "|27|", "|76|", "|55|", "|61|", "|21|", "|49|", "|99|", "|19|", "|81|", "|64|", "|57|", "|28|", "|00|", "|97|", "|53|", "|83|", "|96|", "|86|", "|89|", "|68|", "|56|", "|35|", "|23|", "|26|", "|29|", "|50|", "|20|", "|80|", "|01|", "|04|", "|07|", "|93|", "|41|", "|60|", "|54|", "|14|", "|46|", "|17|", "|78|", "|08|", "|10|", "|15|", "|37|", "|38|" }; */ new encryption[72][10]={ "44", "16", "33", "65", "22", "72", "75", "47", "25", "77", "45", "51", "11", "92", "73", "18", "39", "58", "88", "84", "36", "13", "31", "95", "98", "69", "42", "24", "27", "76", "55", "61", "21", "49", "99", "19", "81", "64", "57", "28", "00", "97", "53", "83", "96", "86", "89", "68", "56", "35", "23", "26", "29", "50", "20", "80", "01", "04", "07", "93", "41", "60", "54", "14", "46", "17", "78", "08", "10", "15", "37", "38" }; public OnFilterScriptInit(){ new mode, modestr[256], modestrx[256], sizea, sizeb, File:modef, strf[256], File:input, File:output, temp[256]; sizea = sizeof(alfabet); sizeb = sizeof(encryption); mode = 1; print(" "); print(" "); print(" "); if(!fexist("/C0DERZ/mode.cfg")){ print("scriptfiles/C0DERZ/mode.cfg has been created, Mode set to: 1"); print(" "); modef = fopen("/C0DERZ/mode.cfg",io_append); fwrite(modef,"1"); fclose(modef); } print("opening mode.cfg..."); modef = fopen("/C0DERZ/mode.cfg",io_read); print("...opened."); print(" "); print("reading mode.cfg..."); while(fread(modef,strf)){ format(modestrx,256,"%s",strf); mode = strval(modestrx); print("mode.cfg loaded"); } print("mode.cfg read, closing file"); fclose(modef); print("mode.cfg closed."); if(mode == 1){format(modestr,256,"MODE: ENCODE");} if(mode == 0){format(modestr,256,"MODE: DECODE");} print(" "); print("Checking size of Source Array and Encryption Array..."); if(sizea == sizeb){ print("Size of source....... OK"); print("Size of encryption... OK"); print(" "); print("Launching C0DERZ..."); print(modestr); print(" "); print("removing output.txt.."); fremove("/C0DERZ/output.txt"); print("... removed!"); print(" "); if(!fexist("/C0DERZ/source.txt")){ print("No 'source.txt' found! Terminating conversion process."); return 0; } print("Opening 'source.txt' ..."); input = fopen("/C0DERZ/source.txt",io_read); print("... opened."); print(" "); print("Creating and opening 'output.txt' ..."); output = fopen("/C0DERZ/output.txt",io_append); print("... done!"); print(" "); if(mode == 1){ print("ENCODING SOURCE to OUTPUT..."); while(fread(input,temp)){ fwrite(output,code(temp,1)); } print("...SOURCE ENCODED sucesfully!"); }else if(mode == 0){ print("DECODING SOURCE to OUTPUT..."); while(fread(input,temp)){ fwrite(output,code(temp,0)); } print("...SOURCE DECODED sucesfully!"); } print(" "); print("Closing files..."); fclose(input); fclose(output); print("...done"); print(" "); print("...CONVERSION DONE!"); print(" "); }else{ printf("ERROR: Sizes of arrays do not match! (source : %d, encryption: %d)",sizeof(alfabet),sizeof(encryption)); return 0; } return 1; } stock code(strx[],en=1) { new tmp[512]; set(tmp,strx); if(en){ //print("encoding..."); for(new i = 0;i < sizeof(alfabet);i++){ tmp=strreplace(alfabet[i],encryption[i],tmp); } }else if(!en){ //print("decoding..."); for(new i = 0;i < sizeof(alfabet);i++){ tmp=strreplace(encryption[i],alfabet[i],tmp); } } return tmp; } /* stock encode(strx[]) { new tmp[256]; set(tmp,strx); for(new i;i < sizeof(alfabet);i++){ tmp=strreplace(alfabet[i],encryption[i],tmp); } return tmp; } stock decode(strx[]) { new tmp[256]; set(tmp,strx); for(new i;i < sizeof(alfabet);i++){ tmp=strreplace(encryption[i],alfabet[i],tmp); } return tmp; } */ stock set(dest[],source[]) { new count = strlen(source); new i=0; for (i=0;i<count;i++) { dest[i]=source[i]; } dest[count]=0; } stock strreplace(trg[],newstr[],src[]) { new f=0; new s1[256]; new tmp[256]; format(s1,sizeof(s1),"%s",src); f = strfind(s1,trg); tmp[0]=0; while (f>=0) { strcat(tmp,ret_memcpy(s1, 0, f)); strcat(tmp,newstr); format(s1,sizeof(s1),"%s",ret_memcpy(s1, f+strlen(trg), strlen(s1)-f)); f = strfind(s1,trg); } strcat(tmp,s1); return tmp; } stock reverse_strreplace(trg[],newstr[],src[]) { new f=0; new s1[MAX_STRING55]; new tmp[MAX_STRING55]; format(s1,sizeof(s1),"%s",src); f = strfind(s1,newstr); tmp[0]=0; while (f>=0) { strcat(tmp,ret_memcpy(s1, 0, f)); strcat(tmp,trg); format(s1,sizeof(s1),"%s",ret_memcpy(s1, f+strlen(newstr), strlen(s1)-f)); f = strfind(s1,newstr); } strcat(tmp,s1); return tmp; } ret_memcpy(source[],index=0,numbytes) { new tmp[256]; new i=0; tmp[0]=0; if (index>=strlen(source)) return tmp; if (numbytes+index>=strlen(source)) numbytes=strlen(source)-index; if (numbytes<=0) return tmp; for (i=index;i<numbytes+index;i++) { tmp[i-index]=source[i]; if (source[i]==0) return tmp; } tmp[numbytes]=0; return tmp; }
it encodes the lowercase characters good and it goes wrong at the point when it has to encode uppercase characters and/or numbers it goes wrong.. at the using "|" and without the "|" .. anyone help?