Page 1 of 2

/heal pagalba.

Posted: 2013 Aug 31 09:37
by Saito
Sveiki,
Sugalvojau kaip ir naujove VIP žaidėjams (tokio plugin serveriuose nemačiau), bet pačiam patirties trūksta (žalias esu xD). Tai vat, norėčiau, kad jeigu žaidėjas turi bit teises jam būtų galima panaudoti viena kartą žemėlapyje /heal komandą (žemėlapis 30 min.). Komanda turėtu atstatyti jo visus HP (130). Gal galėtu kas nors padėti su tokiu darbeliu? :)

Re: /heal pagalba.

Posted: 2013 Aug 31 10:44
by GhostMan
jei reconnect'ų nedarys - gydys vieną kartą per žemėlapį.

Code: Select all

#include <amxmodx>#include <fun> #define PLUGIN "Heal VIP"#define VERSION "1.0"#define AUTHOR "Balsuokit uz Dalia Grybauskaite" #define FLAGS_VIP ADMIN_LEVEL_H new bool:g_heal[33] public plugin_init(){    register_plugin(PLUGIN, VERSION, AUTHOR)        register_clcmd("say /heal", "vip_heal")} public vip_heal(id){    if(!g_heal[id])    {        if(get_user_flags(id) & FLAGS_VIP)        {            if(is_user_alive(id))            {                set_user_health(id, 130)                g_heal[id] = true            }            else            {                client_print(id, print_chat, "[VIP] Turi buti gyvas, jei nori naudoti /HEAL komanda")            }        }        else        {            client_print(id, print_chat, "[VIP] /HEAL komanda tik VIP zaidejam")        }    }    else    {        client_print(id, print_chat, "[VIP] /HEAL komanda jau naudojai.")    }} public client_putinserver(id){    if(get_user_flags(id) & FLAGS_VIP)    {        g_heal[id] = false    }} 

Re: /heal pagalba.

Posted: 2013 Aug 31 12:03
by aaarnas

Code: Select all

new Trie:has_connected public plugin_init() {    has_connected = TrieCreate()} new ip[30]get_user_ip(id, ip, charsmax(ip), 1)TrieSetCell(has_connected, ip, 1) if (TrieKeyExists(has_connected, ip)) {    // Jau buvo prisijungęs šiame map'e kažkada.}

Re: /heal pagalba.

Posted: 2013 Aug 31 12:22
by GhostMan
Prie to TrieKeyExists rodo 2nd arg mismatch. Kas blogai?

Code: Select all

#include <amxmodx>#include <fun> #define PLUGIN "Heal VIP"#define VERSION "1.1"#define AUTHOR "Balsuokit uz Dalia Grybauskaite" #define FLAGS_VIP ADMIN_LEVEL_H new bool:g_heal[33]new Trie:has_connected public plugin_init(){    register_plugin(PLUGIN, VERSION, AUTHOR)        register_clcmd("say /heal", "vip_heal")        has_connected = TrieCreate()} public vip_heal(id){    if(get_user_flags(id) & FLAGS_VIP)    {        if(!g_heal[id])        {            if(is_user_alive(id))            {                set_user_health(id, 130)                g_heal[id] = true            }            else            {                client_print(id, print_chat, "[VIP] Turi buti gyvas, jei nori naudoti /HEAL komanda.")            }        }        else        {            client_print(id, print_chat, "[VIP] Siame zemelapyje /HEAL komanda jau naudojai.")        }    }    else    {        client_print(id, print_chat, "[VIP] /HEAL komanda tik VIP zaidejams.")    }} public client_putinserver(id){    if(get_user_flags(id) & FLAGS_VIP)    {        if(TrieKeyExists(has_connected, id))        {            g_heal[id] = true        }        else        {            new ip[30]            get_user_ip(id, ip, charsmax(ip), 1)            TrieSetCell(has_connected, ip, 1)                        g_heal[id] = false        }    }}

Re: /heal pagalba.

Posted: 2013 Aug 31 12:50
by aaarnas
Ten string ip turi būti, o ne žaidėjo id.

Re: /heal pagalba.

Posted: 2013 Aug 31 13:39
by GhostMan
Kreivos akys mano :pagalys: Iš celltrie.inc pirmą kartą kažką imu, tai nesusigaudžiau kas ten turi būt 2nd arg. :xixi:

Code: Select all

#include <amxmodx>#include <fun> #define PLUGIN "Heal VIP"#define VERSION "99.99"#define AUTHOR "Balsuokit uz Dalia Grybauskaite" #define FLAGS_VIP ADMIN_LEVEL_H new bool:g_heal[33], ip[30]new Trie:has_connected public plugin_init(){    register_plugin(PLUGIN, VERSION, AUTHOR)        register_clcmd("say /heal", "vip_heal")        has_connected = TrieCreate()} public vip_heal(id){    if(get_user_flags(id) & FLAGS_VIP)    {        if(!g_heal[id])        {            if(is_user_alive(id))            {                set_user_health(id, 130)                                get_user_ip(id, ip, charsmax(ip), 1)                TrieSetCell(has_connected, ip, 1)                                g_heal[id] = true            }            else            {                client_print(id, print_chat, "[VIP] Turi buti gyvas, jei nori naudoti /HEAL komanda.")            }        }        else        {            client_print(id, print_chat, "[VIP] Siame zemelapyje /HEAL komanda jau naudojai.")        }    }    else    {        client_print(id, print_chat, "[VIP] /HEAL komanda tik VIP zaidejams.")    }} public client_putinserver(id){    if(get_user_flags(id) & FLAGS_VIP)    {        get_user_ip(id, ip, charsmax(ip), 1)                if(TrieKeyExists(has_connected, ip))        {            g_heal[id] = true        }        else        {            g_heal[id] = false        }    }}

Re: /heal pagalba.

Posted: 2013 Aug 31 14:01
by InvIs
Neturėtų būti gerai. Tu ant prisijungimo tikrini, ar jis buvo prisijungęs ir jeigu ne, tai padarai, jog buvo. O jei žaidėjas atsijungs ir nebus panaudojęs heal? TrieSetCell reikia naudoti ant /heal panaudojimo.

Re: /heal pagalba.

Posted: 2013 Aug 31 14:21
by GhostMan

Re: /heal pagalba.

Posted: 2013 Aug 31 14:23
by InvIs
Taip

Re: /heal pagalba.

Posted: 2013 Sep 02 14:01
by Saito
Jeigu neklystu uždėjai ant H flag

Code: Select all

#define FLAGS_VIP ADMIN_LEVEL_H
Taip?