/* * THX to ShOrTy making the auto update function :D (he modified DarkSnows tutorialhttp://forums.alliedmods.net/showthread.php?t=41913) all credits for that go to him! * All credits for the /wr function go to dajrokan! i was to lazy to code it my #include #define SCRIPT_NAME "/demos.txt" #define REMOTE_HOST "xtreme-jumps.eu" //port d.80 #define LOCAL_FILE "demos.txt" //saved to /configs/ new g_sckweb //socket "id" new timeout new dir[128] new bool:write_now new bool:file_open new file_handler new wr[256] new SVC_SAYTEXT public plugin_init() { register_plugin("WR_demos.txt_autoupdate", "2.0" ,"SchlumPF*") set_task(5.0,"connect_web") register_clcmd("say /wr","show_wr") register_clcmd("say /worldrecord","show_wr") get_localinfo( "amxx_datadir", dir, 127 ) format(dir,127,"%s/%s",dir,LOCAL_FILE) SVC_SAYTEXT = get_user_msgid( "SayText" ) } public connect_web() { new error = 0 new constring[512] g_sckweb = socket_open(REMOTE_HOST, 80, SOCKET_TCP, error) if (g_sckweb > 0) { format(constring,511,"GET %s HTTP/1.1^nHost: %s^n^n",SCRIPT_NAME,REMOTE_HOST) write_web(constring) read_web() } else { switch (error) { case 1: { server_print("Error creating socket"); } case 2: { server_print("Error resolving remote hostname"); } case 3: { server_print("Error connecting socket"); } } } return PLUGIN_CONTINUE } public read_web() { new buf[512] if (socket_change(g_sckweb, 100)) { timeout=0 socket_recv(g_sckweb, buf, 511) if (!write_now) { //search first data to cut header infos new search = strfind(buf,"Xtreme-Jumps.eu",0,0) if(search != -1) { copy(buf,511,buf[search]) write_now=true } } if(write_now) { if(!file_open) { file_handler=fopen(dir,"w+") file_open=true } if(file_open) fputs(file_handler,buf) } } else { timeout++ } if (timeout >= 5) disconnect_web() else set_task(0.1, "read_web") return PLUGIN_CONTINUE } public write_web(text[512]) { socket_send(g_sckweb, text, 511) } public disconnect_web() { if(!write_now) { log_amx("Error getting HTTP data") } if (file_open) fclose(file_handler) socket_close(g_sckweb) get_wr() return PLUGIN_HANDLED } public get_wr() { if (file_exists(dir) == 1) { new line, stxtsize new data[64] new cMap[32] get_mapname(cMap, 31) new MapName[32], jumper[32], t[16], tnum = 0, len, pMap[32], ext[16] while ((line = read_file(dir,line,data,63,stxtsize)) != 0) { parse(data, MapName, 31, t, 15, jumper, 31) if (containi(MapName, "[") != -1) { replace(MapName, 31, "[", " ") replace(MapName, 31, "]", " ") parse(MapName, pMap, 31, ext, 15) MapName = pMap } else ext= "" if (equal(MapName, cMap)) { if (!tnum) { tnum = str_to_num(t) //len = format(wr, 255, "World Record:^n Map: %s^n Author: %s (%d:%02d) %s", cMap, jumper, tnum/60, tnum%60, ext) len = format(wr, 255, "^x03^t^tThe world record for ^x04%s ^x03is ^x04%d:%02d^x03 by: ^x04%s^x03 %s", cMap, tnum/60, tnum%60, jumper, ext) } else { tnum = str_to_num(t) //len += format(wr[len], 255-len, "^n %s (%d:%02d) %s", jumper, tnum/60, tnum%60, ext) len += format(wr[len], 255-len, "^x03%s (%d:%02d) %s", jumper, tnum/60, tnum%60, ext) } } } if (!tnum) format(wr, 255, "World Record:^n Map: %s^n Author: N/A", cMap) } else wr = "Failed to load database!" return PLUGIN_CONTINUE } public show_wr(id) { message_begin( MSG_ALL, SVC_SAYTEXT, _, id) write_byte( id ) write_string( wr ) message_end() return PLUGIN_CONTINUE }