String išskirstymas

Šiame forume rašomi vartotojų klausimai/problemos su kuriomis jie susidūrė kuriant pluginus.
Post Reply
addinol
Jau po truputį tampa savu
Posts: 144
Joined: 2010 Sep 05 15:20
Skype: kasparas94

String išskirstymas

Post by addinol »

Taigi norėčiau sulaukti pagalbos, nes pats nesugebu tai padaryti, kaip padaryti šią say komandą su reason, priežastimi.

Dabar turiu:

!kick nick
pvz: !kick addinol
norėčiau
!kick nick reason
pvz: !kick addinol eik kad nematyciau


Kodas:

Code: Select all

/* Plugin generated by AMXX-Studio */ #include <amxmodx>#include <colorchat> #define PLUGIN "Plugin name"#define VERSION "1.0"#define AUTHOR "ADDiNOL"  public plugin_init() {    register_plugin(PLUGIN, VERSION, AUTHOR)        register_clcmd("say ", "hook_say")} public hook_say(id){    new arg[64];    read_args(arg, charsmax(arg));    remove_quotes(arg);        new cmd[10], rest[54];    parse(arg, cmd, charsmax(cmd), rest, charsmax(rest));    if(get_user_flags(id) & ADMIN_BAN)    {        if(equali(cmd, "!kick") || equali(cmd, "!k"))        {                new player = cmd_target(id, rest, CMDTARGET_OBEY_IMMUNITY);                        new name[35];            get_user_name(player, name, charsmax(name));                        if(player)            {                client_cmd(player, "disconnect;echo ^"kicked^"")            }            else            {                client_print(id, print_chat, "[ INFO ] Player ^"%s^" not found", name)            }            return PLUGIN_HANDLED_MAIN;        }    }    return PLUGIN_CONTINUE;}  
Vienas žmogus pasiųlė naudoti

Code: Select all

strbreak(szArg, szCmd, charsmax(szCmd), szArg, charsmax(szArg))strbreak(szArg, szTarget, charsmax(szTarget), szReason, charsmax(szReason)) 
bet irgi nežinau kaip jį čia dabar naudoti tą strbreak.

User avatar
hleV
AMX Mod X ekspertai
Posts: 875
Joined: 2011 Apr 02 11:23
Skype: hlev.lt
Location: Šiauliai

Re: String išskirstymas

Post by hleV »

Taip gal.

Code: Select all

public hook_say(id){     new text[190];    read_args(text, sizeof text - 1);    remove_quotes(text);     if (text[0] != '!')        return PLUGIN_HANDLED;     new cmd[6], name[32], reason[128];    parse(text[1], cmd, sizeof cmd - 1, name, sizeof name - 1, reason, sizeof reason - 1);     if (equali(cmd, "k") || equali(cmd, "kick") && get_user_flags(id) & ADMIN_KICK)        server_cmd("amx_kick ^"%s^" ^"%s^"", name, reason);    else        return PLUGIN_CONTINUE;     return PLUGIN_HANDLED;}
Last edited by hleV on 2011 May 10 15:41, edited 1 time in total.
Image ← RIP best userbar
DISKUSIJA: KIETAS PLUGIN'O UŽSAKOVAS
Privačios pagalbos neteikiu!

addinol
Jau po truputį tampa savu
Posts: 144
Joined: 2010 Sep 05 15:20
Skype: kasparas94

Re: String išskirstymas

Post by addinol »

o tikslei pamiršau vapše apie parse :D nu dėkui, dabar jau susigaudysiu :)

EDIT: PS. Vietoj PLUGIN_HANDLED; naudok PLUGIN_CONTINUE; juk čia hook eventas :) jei returninsi su handled neparodys message.

-- 2011 Geg 10 17:15 --

dar viena bėda, jog parse paskutinį stringą noriu jog gautų visą iki žinutės pabaigos,
nes pas mane tarkim !kick zaidejas uz cheatinima ir kodinima

ir parodo jam reason tik žodį 'uz', aišku jei dėčiau kabutes veiktų, bet būna kai pamiršta, tai ar įmanoma be kabučių ką nors padaryti ?

Post Reply

Who is online

Users browsing this forum: No registered users and 4 guests