←  Problemy z pluginami

AMXX.pl: Support AMX Mod X i SourceMod

»

Problem z pluginem (pomocy)

Zablokowany

  • +
  • -
lukasion - zdjęcie lukasion 16.08.2010

Tak jak w temacie, a mianowicie mam problem ze zrobieniem pewnego pluginu. Niby wszystko gra, ale chciałbym prosić Was, kieruje to do Tych co znają się na programowaniu pawn. Tak więc zrobiłem komendę na Deathruna, że podczas spawnu w nowej rundzie jest pytanie dot. "Jaką rundę teraz gramy?" i na pytanie mogą odpowiedzieć wszyscy (CT i TT), a ja chciałbym aby tylko TT mogł wybrać czy Free czy Deathrun, tak więc proszę kogoś, aby podał zrobiony już kod, lub .sma, bądz .amxx jak kto woli. Kod zamieszczam niżej. Za pomoc oczywiście karma ;).


/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <amxmisc>
#include <hamsandwich>

#define PLUGIN "DeathRun Roundtype"
#define VERSION "1.0"
#define AUTHOR "Sn!ff3r"

new what[3]
new weapons[][] = {
    "weaponbox",
    "armoury_entity",
    "weapon_shield"
}

new HamHook:weaponstouch[sizeof weapons]
new HamHook:use

public plugin_init() 
{
    register_plugin(PLUGIN, VERSION, AUTHOR)
    
    register_event("HLTV", "new_round", "a", "1=0", "2=0")    
    
    for(new i = 0; i < sizeof weapons; i++) {
        weaponstouch[i] = RegisterHam(Ham_Touch, weapons[i], "ham_block")
    }
    use = RegisterHam(Ham_Use, "func_button", "ham_block")
}

public new_round() 
{    
    static menu
    menu = menu_create("\w Jaka gramy runde?", "menu_handler")
    menu_additem(menu, "\wDeathRun", "1", 0)
    menu_additem(menu, "\wFree", "2", 0)
    menu_addblank(menu, 0)
    menu_setprop(menu, MPROP_EXIT, MEXIT_ALL)
    
    static players[32], num
    get_players(players, num, "ch")
    for(new i = 0; i < num; i++) {
        menu_display(players[i], menu, 0)
    }    
    set_task(get_cvar_float("mp_freezetime") - 1.0, "menu_end")
    
    for(new i = 0; i < sizeof weapons; i++) {
        DisableHamForward(weaponstouch[i])
    }
    DisableHamForward(use)
    
    what[1] = what[2] = 0    
}

public menu_handler(id, menu, item)
{
    if(item == MENU_EXIT) {
        menu_cancel(id)
        return PLUGIN_HANDLED
    }    
    static data[6], access, callback, name[33], key
    menu_item_getinfo(menu, item, access, data, 5, _, _, callback)        
    
    key = str_to_num(data)
    ++what[key]
    
    get_user_name(id, name, 32)
    client_print(0, print_chat, "[DeathRun] %s wybral %s", name, (key == 1) ? "DeathRun" : "Free")
    
    menu_cancel(id)
    return PLUGIN_HANDLED
}

public menu_end()
{    
    if(what[2] > what[1]) {        
        for(new i = 0; i < sizeof weapons; i++) {
            EnableHamForward(weaponstouch[i])
        }
        EnableHamForward(use)        
    }    
    client_print(0, print_chat, "[DeathRun] Gramy runde %s - przygotujcie sie!", (what[1] >= what[2]) ? "DeathRun" : "Free")
        
    static players[32], num
    get_players(players, num, "ch")
    for(new i = 0; i < num; i++) {
        menu_cancel(players[i])
    }
}  

public ham_block() return HAM_SUPERCEDE
Odpowiedz

hardbot - zdjęcie hardbot 16.08.2010

Spoiler
Odpowiedz

  • +
  • -
lukasion - zdjęcie lukasion 17.08.2010

Wielkie dzięki, o to mi chodziło. Leci plus :)
Odpowiedz
Zablokowany