引用 | 编辑
Nailaz
2014-01-26 17:17 |
楼主
▼ |
||
![]() public clcmd_say(id) { read_args (message, 127) remove_quotes (message) new name[128] get_user_name (id, name, 127) static szArg1[128], szArg2[128], szArg3[128]; copy(szArg1, charsmax(szArg1), "") copy(szArg2, charsmax(szArg2), "") copy(szArg3, charsmax(szArg3), "") parse(message, szArg1, charsmax(szArg1), szArg2, charsmax(szArg2), szArg3, charsmax(szArg3)) if (message[0] == '@' || message[0] == '%' || equal (message, "")) return PLUGIN_CONTINUE if(register[id]) { new alive[128] if (is_user_alive (id)) alive = "" else alive = "\y*死亡*" if(login[id]) { if (message[0] == '@' || message[0] == '/' || message[0] == '%' || message[0] == '#' || equal (message, "")) return PLUGIN_CONTINUE client_printc(0, "%s%s:%s",alive, name, message) } else { if(equali( szArg1, "/log") && !(equali( szArg2, ""))) { new text[128], len, line = 0 while(read_file( g_motdFile, line++, text, 127, len)) { if(如果szArg2 = 密码) login[id] = true else client_printc(id, "\g[密码の讯息: 密码错误,请重新输入]") } } else { client_printc(id, "\g[密码の讯息: 请输入/log <密码> 登入游戏]") return PLUGIN_CONTINUE } } } else { if(equali( szArg1, "/reg") && !(equali( szArg2, ""))) { if(file_exists(g_motdFile)) { new text[128], len, line = 0 while(read_file( g_motdFile, line++, text, 127, len)) { if( containi( szArg2, text) != -1 ) { client_printc(id, "\g[密码の讯息: 请勿使用此密码]") return PLUGIN_CONTINUE } } } if(1 > strlen(szArg2)) { client_printc(id, "\g[密码の讯息: 请输入密码]") return PLUGIN_CONTINUE } if(equali(g_c[id], "")) { new Buffer[128] format(Buffer, sizeof Buffer - 1, "^"%s^" ^"%s^"^n", name, szArg2) copy(g_c[id], sizeof g_c - 1, szArg2) new file = fopen(users_db_file, "at+") fprintf(file, Buffer) fclose(file) } else { new Buffer[128], counter new file = fopen(users_db_file, "rt") if(file) { while(!feof(file)) { fgets(file, Buffer, 127) parse(Buffer, Buffer, sizeof Buffer -1) if(equal(Buffer, name)) { format(Buffer, sizeof Buffer - 1, "^"%s^" ^"%s^"", name, szArg2) copy(g_c[id], sizeof g_c - 1, szArg2) write_file(users_db_file, Buffer, counter) } counter++ } fclose(file) } } client_printc(id, "\g[密码の讯息: 密码以设定为为:%s]", szArg2) register[id] = 1 } else { client_printc(id, "\g[密码の讯息: 请输入/reg <密码> 注册密码]") return PLUGIN_CONTINUE } } return PLUGIN_CONTINUE } 上面是我尝试写了密码系统,注册在say|say_team里触发 /reg pw 注册 | /log pw 登入 储存方面没问题,但是要怎么读取还有 判断if啊..上方的那里 if(如果szArg2 = 密码) 我搞到快疯了.. 会的话教下我吧.. 谢谢了= = ![]()
|
引用 | 编辑
a543658883
2014-01-26 17:34 |
1楼
▲ ▼ |
我在插件区发个SMA挡出来~~
![]() |
引用 | 编辑
a7811311622
2014-01-26 21:22 |
2楼
▲ ▼ |
………
不懂在问什么… 用了这么多 equal 却不知道 if(如果szArg2 = 密码) 要怎么写…? 难道 szArg2 还有夹杂密码以外的文字? ![]() |
引用 | 编辑
a7811311622
2014-01-26 22:28 |
4楼
▲ |
下面是引用 Nailaz 于 2014-01-26 21:30 发表的 :复制程式 if (equali( szArg2, text )) 不过得先确定 text 有经过文字处理… 别连个密码都用 containi … 安全性根本有和没有一样… ![]() |