Witam,
Mam plugin, w którym po wpisaniu /modele można wybrać jeden z 4 modeli. Chciałbym aby na wstępie na serwer gracz miał wylosowany jeden z tych modeli bez wpisywania /modele. Jak mógłbym to zestawić razem?
#include <amxmodx>
#include <cstrike>
#pragma semicolon 1
#define MENUITEM_DISABLED   (1<<26)
new g_Model[33];
new g_ModelFiles[][][] = {
    {"saperterro", "ctsplinter"},
    {"oranget", "camoct"},
    {"phoenixt", "urbanos"},
    {"viptt", "snowct"}
};
new g_ModelNames[][] = {
    "Model 1",
    "Model 2",
    "Model 3",
    "Model 4"
};
#if ( sizeof g_ModelNames != sizeof g_ModelFiles )
    #error You have to format the g_ModelFiles to the same size as g_ModelNames
#endif
public plugin_init() {
    register_plugin("Modele VIP", "1.0", "Gasior");
    
    register_event("ResetHUD", "resetModel", "b");
    register_clcmd("say /modele", "modelevip");
    
    return PLUGIN_CONTINUE;
}
public plugin_precache() {
    new tempfile[128];
    
    for ( new i = 0 ; i < sizeof g_ModelFiles ; i++ ) {
        for ( new j = 0 ; j < 2 ; j++ ) {
            formatex(tempfile, 127, "models/player/%s/%s.mdl", g_ModelFiles[i][j], g_ModelFiles[i][j]);
            precache_model(tempfile);
        }
    }
}
public client_connect(id) {
    g_Model[id] = 0;
}
public modelevip(id) {
    if ( ! ( get_user_flags(id) & ADMIN_LEVEL_H ) )
        return;
    
    new menu = menu_create( "\yWybierz swoj VIP Model:", "menu_handler" );
    
    new i;
    for ( i = 0 ; i < sizeof g_ModelFiles ; i++ ) {
        new menuitem[64];
        formatex(menuitem, charsmax(menuitem), "\%c%s", g_Model[id] - 1 == i ? 'd' : 'w', g_ModelNames[i]);
        menu_additem(menu, menuitem,_, g_Model[id] - 1 == i ? MENUITEM_DISABLED : 0);
    }
    
    menu_addblank(menu, 0);
    menu_additem(menu, "Domyslny Model");
    menu_addblank(menu, 0);
    menu_addtext(menu, "Dziekujemy za bycie VIPem na FFA ProjektSpark.pl", 0);
    
    menu_display(id, menu);
}
public menu_handler(id, menu, item) {
    if ( item == MENU_EXIT ) {
        menu_destroy(menu);
        return PLUGIN_HANDLED;
    }
    if ( item == sizeof g_ModelFiles )
        g_Model[id] = 0;
    else
        g_Model[id] = item + 1;
    
    resetModel(id);
    
    return PLUGIN_CONTINUE;
}
public resetModel(id) {
    if ( ! is_user_connected(id) )
        return;
    
    new userTeam2, CsTeams:userTeam = cs_get_user_team(id);
    
    switch ( userTeam ) {
        case CS_TEAM_T: userTeam2 = 1;
        case CS_TEAM_CT: userTeam2 = 2;
    }
    
    if ( g_Model[id] && userTeam2 )
        cs_set_user_model(id, g_ModelFiles[g_Model[id] - 1][userTeam2 - 1]);
    else
        cs_reset_user_model(id);
    return;
}
					
					

 Forum
 
Forum
 Użytkownicy
 
Użytkownicy
 Kalendarz
 
Kalendarz
 Dodatki SourceMod
 
Dodatki SourceMod



 
	 
					









