Page 3 of 5

Re: Player Models

Posted: 2015 Dec 27 11:52
by Terror
turetu pagal ideja veikti bet pagal ideja tik STEAM viskas gerai o ant B flago ir zaidejams neuzdeda models

Code: Select all

#include <amxmodx>#include <hamsandwich>#include <cstrike>#include <pmodel> new const STEAM_T_Model[] = "arsteam_te"new const STEAM_CT_Model[] = "arsteam_ct"new const T_Model[] = "Jailbreakbg_t"new const CT_Model[] = "Jailbreakbg_ct"new const NEW_T_Model[] = "Jailbreakgolden_terror"new const NEW_CT_Model[] = "Jailbreakgolden_ct" public plugin_precache(){    PrecachePlayerModel(STEAM_T_Model)    PrecachePlayerModel(STEAM_CT_Model)    PrecachePlayerModel(T_Model)    PrecachePlayerModel(CT_Model)    PrecachePlayerModel(NEW_T_Model)    PrecachePlayerModel(NEW_CT_Model)} public plugin_init(){    register_plugin("Steam models", "1.0", "hleV")    RegisterHam(Ham_Spawn, "player", "Fwd_Spawn", 1)     UsePlayerModels()} public client_disconnect(id){    SetPlayerModel(id)} public Fwd_Spawn(id){    if( !is_user_steam(id))        return       if (!is_user_alive(id))        return     if (cs_get_user_team(id) == CS_TEAM_T)        SetPlayerModel(id, STEAM_T_Model)     if (cs_get_user_team(id) == CS_TEAM_CT)        SetPlayerModel(id, STEAM_CT_Model)        if (!(get_user_flags(id) & ADMIN_LEVEL_B))        return          if (!is_user_alive(id))        return           if (cs_get_user_team(id) == CS_TEAM_T)        SetPlayerModel(id, T_Model)     if (cs_get_user_team(id) == CS_TEAM_CT)        SetPlayerModel(id, CT_Model)            if (!(get_user_flags(id) & ADMIN_ALL))        return            if (!is_user_alive(id))        return              if (cs_get_user_team(id) == CS_TEAM_T)        SetPlayerModel(id, NEW_T_Model)     if (cs_get_user_team(id) == CS_TEAM_CT)        SetPlayerModel(id, NEW_CT_Model)} stock bool:is_user_steam(id){    // Author Sh0oter    static dp_pointer;    if(dp_pointer || (dp_pointer = get_cvar_pointer("dp_r_id_provider")))    {        server_cmd("dp_clientinfo %d", id);        server_exec();        return (get_pcvar_num(dp_pointer) == 2) ? true : false ;    }    return false;}

Re: Player Models

Posted: 2015 Dec 27 16:13
by hleV
Pasistenk suprast kaip Fwd_Spawn iš eilės vykdo pateiktas instrukcijas. Tuo labiau suprask, ką daro return. Tavo atveju reikia naudot if ir else sąlygas. Va pvz.:

Code: Select all

if (!is_user_alive(id))    return; // Negyvas, sustabdom funkcija if (is_user_steam(id)){    // Steam zaidejas. Tikrinam team ir nustatom Steam modelius}else{    // Non-Steam     if (get_user_flags(id) & ADMIN_LEVEL_B)    {        // Turi admin flag. Tikrinam team ir nustatom admin modelius    }    else    {        // Paprastas zaidejas. Tikrinam team ir nustatom modelius    }}
Kitas dalykas, čia susijęs su kodo optimizacija, tai neiššaukinėk tų pačių funkcijų daugiau kartų nei reikia. Išsaugok jų reikšmę į kintamąjį.

Code: Select all

// Blogaiif (cs_get_user_team(id) == CS_TEAM_T){ } if (cs_get_user_team(id) == CS_TEAM_CT){ }

Code: Select all

// Geriaunew CsTeams:team = cs_get_user_team(id); if (team == CS_TEAM_T){ }else if (team == CS_TEAM_CT){ }

Code: Select all

// Geriauswitch (cs_get_user_team(id)){    case CS_TEAM_T:    {     }    case CS_TEAM_CT:    {        }}

Re: Player Models

Posted: 2015 Dec 27 17:14
by Terror
viskas puikiai veikia,Ačiū labai

Re: Player Models

Posted: 2016 Jan 05 23:53
by laimiukas3
version
AMX Mod X 1.8.3-dev+4978

kas cia gali buti ne taip ?
su senesnem amxmod nebudavo pvz AMX Mod X 1.8.3-dev+4841

Code: Select all

L 01/05/2016 - 19:02:48: [CSTRIKE] Invalid player 11L 01/05/2016 - 19:02:48: [AMXX] Displaying debug trace (plugin "tesingas_modelio_keitimas.amxx", version "unknown")L 01/05/2016 - 19:02:48: [AMXX] Run time error 10: native error (native "cs_get_user_team")L 01/05/2016 - 19:02:48: [AMXX]    [0] pmodel.inc::__OnSetClientKeyValue (line 73) 

Code: Select all

public plugin_init(){    RegisterHam(Ham_Spawn, "player", "Fwd_Spawn", 1)     UsePlayerModels()} public client_disconnected(id){    SetPlayerModel(id)} public Fwd_Spawn(id){    if( !is_user_steam(id))        return       if (!is_user_alive(id))        return     if (cs_get_user_team(id) == CS_TEAM_T)        SetPlayerModel(id, T_Model)     if (cs_get_user_team(id) == CS_TEAM_CT)        SetPlayerModel(id, CT_Model)} stock bool:is_user_steam(id){    static dp_pointer;    if(dp_pointer || (dp_pointer = get_cvar_pointer("dp_r_id_provider")))    {        server_cmd("dp_clientinfo %d", id);        server_exec();        return (get_pcvar_num(dp_pointer) == 2) ? true : false ;    }    return false;}
turbut kazkas su pmodel inc nedraugauja su naujausio amxmod inc failais butu saunu kad hlev sutvarkytum :)

Re: Player Models

Posted: 2016 Jan 06 03:38
by hleV
Pridėjau is_user_connected() patikrinimą, bandyk iš naujo atsisiųst pmodel.inc. Taip pat paredagavau pirmą post'ą, kad naudotų [inline] BBkodą (kad kiečiau atrodytų).

Re: Player Models

Posted: 2016 Jan 06 12:03
by laimiukas3
klaidos nebemeto
bet ha dabar viena modeli priskiria vienoda abiems tm kas cj ne taip ? :)

Code: Select all

#include <amxmodx>#include <hamsandwich>#include <cstrike>#include <pmodel> new const T_Model[] = "arsteam_te"new const CT_Model[] = "arsteam_ct" public plugin_precache(){    PrecachePlayerModel(T_Model)    PrecachePlayerModel(CT_Model)} public plugin_init(){    RegisterHam(Ham_Spawn, "player", "Fwd_Spawn", 1)     UsePlayerModels()} public client_disconnected(id){    SetPlayerModel(id)} public Fwd_Spawn(id){    if( !is_user_steam(id))        return       if (!is_user_alive(id))        return     if (cs_get_user_team(id) == CS_TEAM_T)        SetPlayerModel(id, T_Model)     if (cs_get_user_team(id) == CS_TEAM_CT)        SetPlayerModel(id, CT_Model)} stock bool:is_user_steam(id){    // Author Sh0oter    static dp_pointer;    if(dp_pointer || (dp_pointer = get_cvar_pointer("dp_r_id_provider")))    {        server_cmd("dp_clientinfo %d", id);        server_exec();        return (get_pcvar_num(dp_pointer) == 2) ? true : false ;    }    return false;}

Re: Player Models

Posted: 2016 Jan 06 22:26
by hleV
Hm. Gali patikrint ar su mano pavyzdiniu kodu (pirmam post'e) irgi vienodus modelius nustato? Jei ne, tai gali naudot tą kodą kaip pagrindą, tau tereiktų pridėt is_user_steam() check'ą ir

Code: Select all

public client_disconnected(id){    SetPlayerModel(id)}
ir aišku pakeist modelių pavadinimus kode.

Re: Player Models

Posted: 2016 Jan 14 17:28
by laimiukas3
hleV wrote:Hm. Gali patikrint ar su mano pavyzdiniu kodu (pirmam post'e) irgi vienodus modelius nustato? Jei ne, tai gali naudot tą kodą kaip pagrindą, tau tereiktų pridėt is_user_steam() check'ą ir

Code: Select all

public client_disconnected(id){    SetPlayerModel(id)}
ir aišku pakeist modelių pavadinimus kode.
eh hleV nesigauna man niekas gal rades laisva minutele galetum numesti aiskiau kaip atrodyti turetu viskas :)

Re: Player Models

Posted: 2016 Jan 14 17:39
by hleV
Sukompiliuok mano kodą esantį pirmam post'e ir žiūrėk ar CT gauna T modelį ir atvirkščiai.

Re: Player Models

Posted: 2016 Jan 14 18:57
by laimiukas3
hleV wrote:Sukompiliuok mano kodą esantį pirmam post'e ir žiūrėk ar CT gauna T modelį ir atvirkščiai.
atrodo veikia