Skocz do zawartości

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

ka.linux - zdjęcie

ka.linux

Rejestracja: 23.06.2011
Aktualnie: Nieaktywny
Poza forum Ostatnio: 13.03.2016 22:10
-----

#719023 Menu blokowanie/odblokowywanie opcji

Napisane przez ka.linux w 25.01.2016 17:49

new tytul[25];
    format(tytul, 24, "Sklep by \rKmf!p^nHajsik: %i", cs_get_user_money(id));  // Tutaj masz wpisac, ale zrobie to za ciebie
    new menu = menu_create(tytul, "Sklep_Menu");

  • +
  • -
  • 1


#693714 Menu broni po xxxx XP

Napisane przez ka.linux w 21.03.2015 16:08

Dodajesz np tak (w evencie odrodzenia gracza)

if(exp_gracza[id]<5) // exp_gracza czyli zamiast tego dodajesz zmienna z GunXPMod, a 5 to liczba ile exp'a musi mieć
{
MenuBroni(id) // podajesz public z menu tych broni
}

cała filozofia; ]

 

a jeśli masz

 

// Wyższy level to automatycznie nowa broń : 1 = Tak, 0 = Nie, bronie samemu wybieramy w menu.

gxm_level_style "0"
 
to zmień mapę, sprawdź pliki .cfg czy nie ma tego cvaru na 1.
 
Najlepiej wejdz na serwer wpisz amx_cvar gxm_level_styl 0
i czekaj do nastepnej rundy, sprawdz czy dziala jeśli nie to potrzeba poprawki.

  • +
  • -
  • 1


#693713 [ROZWIĄZANE] Problem z komplikacją silnika Cod Mod

Napisane przez ka.linux w 21.03.2015 16:04

QTM_CodMod.sma(977) : warning 204: symbol is assigned a value that is never used: "fProcent"   -- fProcent nigdzie nie został użyty
QTM_CodMod.sma(979) : error 017: undefined symbol "target" -- tutaj id bo to wiadomości u gracza
QTM_CodMod.sma(987) : warning 204: symbol is assigned a value that is never used: "fProcent" -- to co wyżej
 
 
poprawny kod:
 
public PokazInformacje(id)
{
    id -= ZADANIE_POKAZ_INFORMACJE;
        
    if(!is_user_connected(id))
{
    remove_task(id+ZADANIE_POKAZ_INFORMACJE);
    return PLUGIN_CONTINUE;
}
    
    if(!is_user_alive(id))
{
    new target = pev(id, pev_iuser2);
    
    if(!target)
        return PLUGIN_CONTINUE;
            
    new ileMa = doswiadczenie_gracza[target],ilePotrzeba = PobierzDoswiadczeniePoziomu(poziom_gracza[target]),ilePotrzebaBylo = poziom_gracza[target]-1 >= 0 ? PobierzDoswiadczeniePoziomu(poziom_gracza[target]-1) : 0;
    new Float:fProcent = 0.0;
    fProcent = (float((ileMa - ilePotrzebaBylo)) / float((ilePotrzeba - ilePotrzebaBylo))) * 100.0;
             
    set_hudmessage(255, 255, 255, 0.6, -1.0, 0, 0.0, 0.3, 0.0, 0.0, 2);
    ShowSyncHudMsg(id, SyncHudObj, "[Forum] :MultiVice.pl^nKlasa : %s^nDoswiadczenie : %0.1f%%^nPoziom : %i | 201^nPerk : %s", nazwy_klas[klasa_gracza[target]], fProcent, poziom_gracza[target], nazwy_perkow[perk_gracza[target]]);
    return PLUGIN_CONTINUE;
}
    
    new ileMa = doswiadczenie_gracza[id],ilePotrzeba = PobierzDoswiadczeniePoziomu(poziom_gracza[id]),ilePotrzebaBylo = poziom_gracza[id]-1 >= 0 ? PobierzDoswiadczeniePoziomu(poziom_gracza[id]-1) : 0
    new Float:fProcent = 0.0;
    fProcent = (float((ileMa - ilePotrzebaBylo)) / float((ilePotrzeba - ilePotrzebaBylo))) * 100.0;
    
    set_hudmessage(0, 255, 0, 0.02, 0.23, 0, 0.0, 0.3, 0.0, 0.0);
    ShowSyncHudMsg(id, SyncHudObj, "[Forum] :MultiVice.pl^n[Klasa : %s]^n[Doswiadczenie :  %0.1f%%]^n[Poziom : %i | 201]^n[Perk : %s]", nazwy_klas[klasa_gracza[id]], fProcent, poziom_gracza[id], nazwy_perkow[perk_gracza[id]]);
    
    return PLUGIN_CONTINUE;
}

  • +
  • -
  • 1


#693198 [ROZWIĄZANE] Poszukuje FREELVL

Napisane przez ka.linux w 17.03.2015 14:52

Proszę gracz może tylko raz użyć i tylko na jednej klasie.

 

#include <amxmodx>
#include <codmod>
#include <hamsandwich>
#include <nvault>

#pragma semicolon 1

#define MAX 32

new name[ MAX + 1 ][ MAX ],
plik_vault,
vaultkey[ 64 ],
vaultdata[ 256 ];

new bool:wziol_exp[ MAX + 1 ];

public plugin_init( ) {
    register_plugin( "Darmowy EXP", "1.0", "ka.linux" );
    plik_vault = nvault_open( "maexp" );
    register_clcmd("say /free","DajEXP");
}

public plugin_end( ) nvault_close( plik_vault );

public client_putinserver( id ) {
    wziol_exp[ id ] = false;
    name[ id ] = "";
    
    if( is_user_connected( id ) ){
        get_user_name( id , name[ id ], 31 );
        wczytaj_exp( id );
    }
}
public DajEXP(id)
{
    if(!is_user_alive(id))
        return PLUGIN_CONTINUE;
    
    if(!wziol_exp[ id ])
    {
        cod_set_user_xp(id, cod_get_user_xp(id)+1000);
        client_print(id,3,"Dostales 1000 XP!");
        wziol_exp[ id ] = true;
    }
    else
        client_print(id,3,"Wykorzystales darmowy EXP lub juz go nie potrzebujesz");
    
    return PLUGIN_CONTINUE;
}
public client_disconnect( id ) {
    zapisz_exp( id );
    
    wziol_exp[ id ] = false;
    name[ id ] = "";
}


public wczytaj_exp( id ) {
    format( vaultkey, sizeof vaultkey - 1, "%s-m-", name[ id ] );
    format( vaultdata, sizeof vaultdata - 1,"%d",wziol_exp[ id ] );
    nvault_get( plik_vault, vaultkey, vaultdata, sizeof vaultdata - 1 );
    
    new wartosc[ 6 ];
    parse( vaultdata,wartosc, 5 );
    
    if( str_to_num( wartosc ) )
        wziol_exp[ id ] = true;
}  

public zapisz_exp( id ){
    if( wziol_exp[ id ] ){    
        format( vaultkey, sizeof vaultkey - 1, "%s-m-", name[ id ] ) ;
        format( vaultdata, sizeof vaultdata - 1, "1" );
        nvault_set( plik_vault, vaultkey, vaultdata );
    }
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1045\\ f0\\ fs16 \n\\ par }
*/
 

  • +
  • -
  • 1


#647483 Najwięcej fragów w pluginie rangi

Napisane przez ka.linux w 04.07.2014 11:18

Nie testowałem, ale sprawdź nie obiecuję że będzie działać :)

#include <amxmodx>
#include <amxmisc>
#include <csx>

#define PLUGIN "Rangi"
#define VERSION "1.0"
#define AUTHOR "R3X"

// User stats parms id
#define STATS_KILLS             0
#define STATS_DEATHS            1
#define STATS_HS                2
#define STATS_TKS               3
#define STATS_SHOTS             4
#define STATS_HITS              5
#define STATS_DAMAGE            6

//Max count of levels
#define LEVELS 20
//Max len of ClassName
#define CLASS_LEN 25
#define MAX_NAME_LENGTH         31
#define MAX_BUFFER_LENGTH       2047

#define TASK_SHOWCLASS 2222

//Buffers
new t_sName[MAX_NAME_LENGTH + 1]                    = ""
new g_sBuffer[MAX_BUFFER_LENGTH + 1]                = ""

new giXP[LEVELS+1];
new gszClass[LEVELS+1][CLASS_LEN];
new giPointer=1;

new gcvarMaxName;
new gcvarType, gcvarTop, gcvarList;

new gmsgSayText;
new statsm;

public plugin_init() {
    register_plugin(PLUGIN, VERSION, AUTHOR);
    register_dictionary("statsx.txt");
    
    register_clcmd("say /top10", "cmdTop10", 0, "- wyswietla range i statystyki");
    register_clcmd("say /rank", "cmdRank", 0, "- wyswietla range i statystyki");
    register_clcmd("say /rangi", "cmdHelp", 0, "- wyswietla liste rang");
    
    register_clcmd("say_team /top10", "cmdTop10", 0, "- wyswietla range i statystyki");
    register_clcmd("say_team /rank", "cmdRank", 0, "- wyswietla range i statystyki");
    register_clcmd("say_team /rangi", "cmdHelp", 0, "- wyswietla liste rang");
    
    gcvarMaxName =     register_cvar("rangi_maxname", "Reszta jest milczeniem");
    gcvarType =     register_cvar("rangi_hud","0");
    gcvarTop =     register_cvar("rangi_top10","1");
    gcvarList =     register_cvar("rangi_list","1");
    
    gmsgSayText =     get_user_msgid("SayText");
    set_task(2.0, "najlepszy");
}
//CONFIG
public plugin_cfg(){
    new szFile[128];
    get_configsdir(szFile, 127);
    add(szFile, 127, "/rangi.ini");
    if(!file_exists(szFile))
        return set_fail_state("Nie znalaziono pliku ranga.ini w folderze configs/");
    new szLine[96], iLen=0, szClass[CLASS_LEN], szXP[16];
    
    for(new i=0;read_file(szFile, i, szLine, 95, iLen);i++,szClass[0]=szXP[0]='^0'){
        if( giPointer > LEVELS) break;
        
        if(iLen==0) continue;
        trim(szLine);
        if(szLine[0]=='^0' || szLine[0]==';') continue;
        
        parse(szLine, szClass, CLASS_LEN-1, szXP, 15);
        if(szClass[0] && szXP[0]){
            giXP[giPointer]=str_to_num(szXP);
            copy(gszClass[giPointer], CLASS_LEN-1, szClass)
            giPointer++;
        }
    }
    return PLUGIN_CONTINUE;
}

//COMMANDS
public cmdTop10(id){
    if(get_pcvar_num(gcvarTop) <= 0){
        print_colored(id, "* ^x04Top10^x01 jest wylaczone");
        return PLUGIN_HANDLED;
    }
    format_top10(g_sBuffer)
    show_motd(id, g_sBuffer, "Top 10")
    return PLUGIN_CONTINUE;
}
public cmdRank(id)
{   
    static stats[8], body[8], rankpos, rankmax;
    get_user_stats(id, stats, body);
   
    rankpos = get_user_stats(id, stats, body);
    rankmax = get_statsnum();
   
    print_colored(id, "* Twoja ranga to^x04 %s^x01, zajmujesz^x03 %d^x01 pozycje z^x03 %d", get_rankname(stats[0]), rankpos, rankmax);
    print_colored(id, "* Posiadasz^x03 %d^x01 zabojstw,^x03 %d^x01 smierci oraz^x03 %d^x01 headshot'ow, zadajac^x03 %d^x01 obrazen.", stats[STATS_KILLS ], stats[STATS_DEATHS], stats[STATS_HS], stats[STATS_DAMAGE]);
   
    return PLUGIN_HANDLED;
}
public cmdHelp(id){
    if(get_pcvar_num(gcvarList) <= 0){
        print_colored(id, "* ^x04Lista rang^x01 jest niedostepna");
        return PLUGIN_HANDLED;
    }
    static sBuffer[MAX_BUFFER_LENGTH+1];
    new iLen;
    iLen = formatex(sBuffer, MAX_BUFFER_LENGTH, "<body bgcolor=#000000><font color=#FFB000><pre>")
    iLen += formatex(sBuffer[iLen], MAX_BUFFER_LENGTH - iLen, "#id  Nazwa  Prog^n");
    if(giPointer > 1)
        iLen += formatex(sBuffer[iLen], MAX_BUFFER_LENGTH - iLen, "%02d %-22.22s < %d^n", 1, gszClass[1], giXP[1]);
    for(new i=2;i<giPointer;i++){
        iLen += format(sBuffer[iLen], MAX_BUFFER_LENGTH - iLen, "%02d %-22.22s %d-%d^n", i, gszClass[i], giXP[i-1]+1,giXP[i]);
    }
    new szMaxName[CLASS_LEN];
    get_pcvar_string(gcvarMaxName, szMaxName, CLASS_LEN-1);
    iLen += format(sBuffer[iLen], MAX_BUFFER_LENGTH - iLen, "* %s > %d", szMaxName, giXP[giPointer-1]);
    show_motd(id, sBuffer, "Rangi");
    return PLUGIN_HANDLED;
}

//FORWARDS
public client_connect(id)
{
    if(is_user_bot(id) || get_pcvar_num(gcvarType)==0)
        return;
   
    set_task(1.0,"taskDisplayRank",TASK_SHOWCLASS+id,_,_,"b");
}

public client_disconnect(id)
    if(task_exists(TASK_SHOWCLASS+id))
        remove_task(TASK_SHOWCLASS+id)
   
//TASKS
public taskDisplayRank(id){
    id-=TASK_SHOWCLASS;
    static stats[8], body[8];
    get_user_stats(id, stats, body);
    
    set_hudmessage(255, 255, 255, 0.15, 0.55);
    show_hudmessage(id, "Ranga: %s^nZabojstw: %d",get_rankname(stats[STATS_KILLS ]), stats[STATS_KILLS ]);
}

//CLASS
get_lvl_by_exp(iXP){
    new i;
    for(i=1;i<=giPointer;i++){
        if(giXP[i]>=iXP)
        break;
    }
    if(i > giPointer)
        return -1;
    return i;
}
get_rankname(frags){
     static szClass[CLASS_LEN];
     new iLvl=get_lvl_by_exp(frags);
     if(iLvl>=0)
         copy(szClass,CLASS_LEN-1, gszClass[iLvl]);
     else
        get_pcvar_string(gcvarMaxName, szClass, CLASS_LEN-1);
     return szClass;
}

//RANK
// Stats formulas
Float:effec(izStats[8])
{
    if (!izStats[STATS_KILLS])
        return (0.0)
    
    return (100.0 * float(izStats[STATS_KILLS]) / float(izStats[STATS_KILLS] + izStats[STATS_DEATHS]))
}

Float:accuracy(izStats[8])
{
    if (!izStats[STATS_SHOTS])
        return (0.0)
    
    return (100.0 * float(izStats[STATS_HITS]) / float(izStats[STATS_SHOTS]))
}

// Get and format top 10
format_top10(sBuffer[MAX_BUFFER_LENGTH + 1])
{
    new iMax = get_statsnum()
    new izStats[8], izBody[8]
    new iLen = 0

    if (iMax > 10)
        iMax = 10;

    new lKills[16], lDeaths[16], lHits[16], lShots[16], lEff[16], lAcc[16]
    
    format(lKills, 15, "%L", LANG_SERVER, "KILLS")
    format(lDeaths, 15, "%L", LANG_SERVER, "DEATHS")
    format(lHits, 15, "%L", LANG_SERVER, "HITS")
    format(lShots, 15, "%L", LANG_SERVER, "SHOTS")
    format(lEff, 15, "%L", LANG_SERVER, "EFF")
    format(lAcc, 15, "%L", LANG_SERVER, "ACC")
    
    ucfirst(lEff)
    ucfirst(lAcc)

    iLen = format(sBuffer, MAX_BUFFER_LENGTH, "<body bgcolor=#000000><font color=#FFB000><pre>")
    iLen += format(sBuffer[iLen], MAX_BUFFER_LENGTH - iLen, "%2s %-22.22s %6s %6s %6s %6s %4s %4s %4s^n", "#", "Nick", "Level", lKills, lDeaths, lHits, lShots, "HS", lEff, lAcc)
    
    for (new i = 0; i < iMax && MAX_BUFFER_LENGTH - iLen > 0; i++)
    {
        get_stats(i, izStats, izBody, t_sName, MAX_NAME_LENGTH)
        replace_all(t_sName, MAX_NAME_LENGTH, "<", "[")
        replace_all(t_sName, MAX_NAME_LENGTH, ">", "]")
        iLen += format(sBuffer[iLen], MAX_BUFFER_LENGTH - iLen, "%2d %-22.22s %-22.22s %6d %6d %6d %6d %4d %3.0f%% %3.0f%%^n", i + 1, t_sName,get_rankname(izStats[STATS_KILLS]), izStats[STATS_KILLS],
                        izStats[STATS_DEATHS], izStats[STATS_HITS], izStats[STATS_SHOTS], izStats[STATS_HS], effec(izStats), accuracy(izStats))
    }
}
//STOCKS
stock print_colored(id, const text[], any:...)
{
    static szMessage[192];
    szMessage[0]='^x01';
    vformat(szMessage[1], 190, text, 3);
 
    if(id==0)
    {
        new plist[32], playernum;
        get_players(plist, playernum);
        for(new i = 0; i < playernum; i++)
        {
            id = plist[i];
            message_begin(MSG_ONE, gmsgSayText, {0,0,0}, id);
            write_byte(id);
            write_string(szMessage);
            message_end();
        }
    }
    else
    {
        message_begin(MSG_ONE, gmsgSayText, {0,0,0}, id);
        write_byte(id);
        write_string(szMessage);
        message_end();
    }
}
public najlepszy()
{
    new Stats[8], Body [8], Name[31];
    get_stats(statsm, Stats, Body, Name, 31);
    statsm++;
    
    print_colored(0, "* [Twoja-Siec] Najwiecej fragow %d posiada %s z ranga %s", Stats[0], Name, get_rankname(Stats[0]));

    return PLUGIN_CONTINUE
}
 

  • +
  • -
  • 1


#647351 Procentowy stan życia

Napisane przez ka.linux w 03.07.2014 18:41

Dodaj if'a by sprawdzało czy gracz ma klase, jeśli nie ma klasy to usuń końcówkę

maksymalne_zdrowie_gracza
i po sprawie :)
  • +
  • -
  • 2


#647348 Errory Silnika (blad zapisu kodu ColorChatu)

Napisane przez ka.linux w 03.07.2014 18:35

Wejdz w plik QTM_CodMod.sma (np. notatnik), kliknij ctrl+f i wpisz ZADANIE_POKAZ_REKLAME, usun wszystkie linie tego wpisu oraz usuń cały public PokazReklame(id) lub () nie pamiętam, będziesz miał czysto w logach a reklama jest zbędna po wejściu na serwer moim zdaniem.


  • +
  • -
  • 1


#647343 Procentowy stan życia

Napisane przez ka.linux w 03.07.2014 18:19

Trzymaj poprawne :)

show_hudmessage(id, "[Zycie : %i | %i%%]", hp, floatround(get_user_health(id)/maksymalne_zdrowie_gracza[id]*100))
 

 


  • +
  • -
  • 1


#561693 prosba o napisanie pluginu na zmiane modeli graczy

Napisane przez ka.linux w 07.08.2013 21:14

Niecałe 2 minuty *.*, nie wiem czy będzie 100 % działać, ale raczej tak ;)

Pamiętaj żeby zmienić nazwe na swoją (modelu)

 

Trzymaj:

 

 
/* Plugin generated by AMXX-Studio */

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

#define PLUGIN "Modele Graczy"
#define VERSION "1.0"
#define AUTHOR "sn00py"


public plugin_init() {
    register_plugin(PLUGIN, VERSION, AUTHOR)
    RegisterHam(Ham_Spawn, "player", "runda", 1);
}
public runda(id){
    if(is_user_connected(id))
{
    if(cs_get_user_team(id) == CS_TEAM_CT){
    cs_set_user_model(id, "graczbb")    // Nazwa modelu CT
}
}
}
public plugin_precache(){
    precache_model("models/player/graczbb/graczbb.mdl")    // Folder i nazwa modelu CT
}

  • +
  • -
  • 1


#561008 Error w kompilatorze co robię źle?

Napisane przez ka.linux w 05.08.2013 09:51

Chaotycznie napisane...

Używaj [.code] [./code]  bez kropek.

 

pod:

new const wytrzymalosc = 20;

Brakuje:

new bool:ma_klase[33];

Usuń

if(weapon == CSW_AK47 &amp;amp;amp;&amp;amp;amp; damage &amp;amp;gt; 20.0 &amp;amp;amp;&amp;amp;amp; random_num(1,12) == 1)
cod_inflict_damage(idattacker, this, float(get_user_health(this))-damage+1.0, 0.0, idinflictor, damagebits);

Pod:

RegisterHam(Ham_TakeDamage, "player", "TakeDamage");
}

public cod_class_enabled(id)
{
        ma_klase[id] = true;
}    
public cod_class_disabled(id)
{
    ma_klase[id] = false;
}
public TakeDamage(this, idinflictor, idattacker, Float:damage, damagebits)
{
    if(!is_user_connected(idattacker))
        return HAM_IGNORED;
    
    if(!ma_klase[idattacker])
        return HAM_IGNORED;
        
    if(get_user_weapon(idattacker) == CSW_AK47 && !random(12) && damagebits & DMG_BULLET)
        cod_inflict_damage(idattacker, this, float(get_user_health(this))-damage+1.0, 0.0, idinflictor, damagebits);
                
        return HAM_IGNORED;
}

 

 


  • +
  • -
  • 1


#560894 [ROZWIĄZANE] Który to jest plik ??

Napisane przez ka.linux w 04.08.2013 18:59

Masz ustawione na PoziomGracza/201 ...

Skompiluj swoje .sma i wgraj .amxx na serwer i zmień mapę, ja tu nic nie muszę robić.


  • +
  • -
  • 1


#560879 [ROZWIĄZANE] Który to jest plik ??

Napisane przez ka.linux w 04.08.2013 18:31

Jak masz przerobionego cod'a to ja nie wnikam, więc podrzucasz .sma i ci zrobię, bo widzę że inaczej do siebie nie dojdziemy.

Ale podczas wyszukiwania ważne jest żeby nie było spacji na początku,końcu itd, tekst ma się zgadzać z wyszukiwaniem !


  • +
  • -
  • 1


#560852 [ROZWIĄZANE] Który to jest plik ??

Napisane przez ka.linux w 04.08.2013 17:09

Scorpion, potrafisz czytać ?

Kolega chcę:

Witam.. Nie mogę znaleźć pliku w którym jest Max lvl kolo poziomu,perku itp..

Co do tematu, odpal swój silnik i

Znajdz:

public PokazInformacje(id)

Zamień:

Poziom : %i

Na:

Poziom : %i/TwojMaksLevel

 

Mniej roboty niż z cvarem :)

 


  • +
  • -
  • 1


#560169 [ROZWIĄZANE] Jak zrobić taką informacje po wpisaniu /klasa

Napisane przez ka.linux w 01.08.2013 09:39

Nie ma to jak ss'y z mojego COD'a ; /

Znajdź:

public WybierzKlase(id)

Przed:

menu_setprop(menu, MPROP_EXITNAME, "Wyjdz");

Dodaj:

menu_addtext(menu, "Twoj wlasny tekst", 0);

Możesz używać w tekście \r itd

\r - czerwony

\d -szary

\y - zolty

\w - bialy

 

 


  • +
  • -
  • 1


#560163 [ROZWIĄZANE] silnik cod errory (CurWeapon)

Napisane przez ka.linux w 01.08.2013 09:28

Dodaj:

#include <engine>

Zamień cały public i stock:

public CurWeapon(id)
stock ham_strip_weapon_short(id)

Na:

public CurWeapon(id)
{
    if(!is_user_connected(id))
        return;
    
    new team = get_user_team(id);
    
    if(team > 2)
        return;
    
    new bron = read_data(2);
    
    new bronie = (bronie_klasy[klasa_gracza[id]] | bonusowe_bronie_gracza[id] | bronie_druzyny[team] | bronie_dozwolone);
    
    if(!(1<<bron & bronie))
    {
        new param[2];
        param[0] = id;
        param[1] = bron;
        set_task(0.1, "Strip", _, param, 2);
    }
    
    if(cs_get_user_shield(id) && !gracz_ma_tarcze[id])
        engclient_cmd(id, "drop", "weapon_shield");    
    
    UstawSzybkosc(id);
}
public Strip(param[2])
{
    if(is_user_alive(param[0]) && ( 1 <= param[1] <= 30) )
    {
        get_weaponname(param[1], weaponname, 21);
        ham_strip_weapon(param[0], weaponname);
    }
}
 

Jeśli edytowałeś, masz zedytowanego:

stock ham_strip_weapon(id, weapon[])

To zamień całego na:

stock ham_strip_weapon(id, weapon[])
{
    if(!equal(weapon, "weapon_", 7) ) return 0
    new wId = get_weaponid(weapon)
    if(!wId) return 0
    new wEnt
    while( (wEnt = engfunc(EngFunc_FindEntityByString,wEnt,"classname", weapon) ) && pev(wEnt, pev_owner) != id) {}
    if(!wEnt) return 0
    
    if(get_user_weapon(id) == wId) ExecuteHamB(Ham_Weapon_RetireWeapon, wEnt)
    
    if(!ExecuteHamB(Ham_RemovePlayerItem, id, wEnt)) return 0
    ExecuteHamB(Ham_Item_Kill ,wEnt)
    
    set_pev(id, pev_weapons, pev(id, pev_weapons) & ~(1<<wId) )
    return 1
}

 

Done ; 3

 

 


  • +
  • -
  • 1