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
 

Zdjęcie

Spec Switch - ograniczenie czasowe


Najlepsza odpowiedź Filip1512, 28.12.2013 19:28

+ Za chęci, ale zrobiłem literówkę w tasku po prostu, a jeżeli runda będzie trwała poniżej 20sekund to tego taska warto usunąć xD

Dzięki.

Przejdź do postu


  • Zamknięty Temat jest zamknięty
2 odpowiedzi w tym temacie

#1 Filip1512

    Wszechmogący

  • Power User

Reputacja: 137
Zaawansowany

  • Postów:641
  • Steam:steam
  • Imię:Filip
  • Lokalizacja:Poland
Offline

Napisano 28.12.2013 19:05

Cześć,

chciałem przerobić spec switcha, żeby można było wpisać /back tylko w czasie 20 sekund od początku rundy, a po 20 sekundach ma być zablokowane.

Próbowałem to przerobić, ale coś słabo mi to wyszło, bo nie zauważyłem jakiejkolwiek różnicy w działaniu pluginu :P
Poniżej kod przerobiony przeze mnie.

/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <fun>

#define PLUGIN "Spec Switch"
#define VERSION "0.1.3"
#define AUTHOR "many"

new CsTeams:zTeam[33]
new zDeath[33]
new bool:type_spec[33] = false
new g_cvar
new bool: joinAccess;

public plugin_init(){
    register_plugin(PLUGIN, VERSION, AUTHOR)
    /* Cvar */
    g_cvar    = register_cvar("amx_specmode",    "0")     // 0 - enable use to all, 1 - enable use only ADMINs
    /* Client Commands */
    register_clcmd("say /spec",         "cmdSpec", ADMIN_ALL, "- go to spectator")
    register_clcmd("say_team /spec",     "cmdSpec", ADMIN_ALL, "- go to spectator")
    register_clcmd("say /back",         "cmdBack", ADMIN_ALL, "- go back to your team")
    register_clcmd("say_team /back",     "cmdBack", ADMIN_ALL, "- go back to your team")
    
    register_event("HLTV", "Nowa_Runda", "a", "1=0", "2=0")
    register_logevent("Koniec_Rundy", 2, "1=Round_End")
}

public Nowa_Runda(){
    joinAccess = true;
    set_task(20.0, "cJoinAcces", 888)
}

public cJoinAccess(){
    joinAccess = false;
}

public Koniec_Rundy(){
    remove_task(888)
}

public cmdSpec(id)
{
    if(!get_pcvar_num(g_cvar)) Spec(id)
    else if( get_pcvar_num(g_cvar) && (get_user_flags(id) & ADMIN_KICK)) Spec(id)
    else if( get_pcvar_num(g_cvar) && !(get_user_flags(id) & ADMIN_KICK)) PrintUserNotAdmin(id)
    
    return PLUGIN_HANDLED;
}

public cmdBack(id){
    if(joinAccess){
        if (type_spec[id] && cs_get_user_team(id) == CS_TEAM_SPECTATOR && zTeam[id] != CS_TEAM_SPECTATOR ) Back(id)
        else if( get_pcvar_num(g_cvar) && !(get_user_flags(id) & ADMIN_KICK) ) PrintUserNotAdmin(id)
    
        return PLUGIN_HANDLED;
    }
    client_print(id, print_chat, "Mozesz wrocic do gry tylko przez pierwsze 20 sekund od poczatku rundy!")
    return PLUGIN_HANDLED;
}

public Spec(id)
{
    zDeath[id] = cs_get_user_deaths(id)
    if (cs_get_user_team(id) == CS_TEAM_SPECTATOR)
    return
    else{
        type_spec[id] = true
        zTeam[id] = cs_get_user_team(id)
        cs_set_user_team(id, CS_TEAM_SPECTATOR)
        user_silentkill(id)
        client_print(id,print_chat,"Type /back to return from Spectator")
    }
    return
}

public Back(id)
{
    cs_set_user_team(id, zTeam[id])
    cs_set_user_deaths(id, zDeath[id])
    set_task(0.5,"FirstRespawn",id)
    set_task(0.8,"SecondRespawn",id)
}

public FirstRespawn(id)
{
    cs_user_spawn(id)
}

public SecondRespawn(id)
{
    cs_user_spawn(id)
    if (cs_get_user_team(id) == CS_TEAM_T){
        give_item(id,"weapon_knife")
        give_item(id,"weapon_deagle")
    }
    if (cs_get_user_team(id) == CS_TEAM_CT){
        give_item(id,"weapon_knife")
        give_item(id,"weapon_deagle")
    }
}

PrintUserNotAdmin(id)
{
    client_print(id,print_chat,"Only Admins can use /spec, /back command")
}

public PrintRule(id)
{
    if ( is_user_connected(id) && !is_user_bot(id) && !is_user_hltv(id) ){
        client_print(id,print_chat,"Type /spec if you want to go Spectator")
        client_print(id,print_chat,"Type /back to return from Spectator")
    }
}

public client_putinserver(id)
{
    if(!get_pcvar_num(g_cvar)) Rule(id)
    else if( get_pcvar_num(g_cvar) && (get_user_flags(id) & ADMIN_KICK)) Rule(id)
}

public client_disconnect(id) type_spec[id] = false
public client_connect(id) type_spec[id] = false
public Rule(id) set_task(20.0, "PrintRule", id)

/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ ansicpg1252\\ deff0{\\ fonttbl{\\ f0\\ fnil\\ fcharset0 Tahoma;}}\n{\\ colortbl ;\\ red0\\ green0\\ blue0;}\n\\ viewkind4\\ uc1\\ pard\\ cf1\\ lang1033\\ b\\ f0\\ fs16 \n\\ par }
*/

//edit

Boże, teraz dopiero zauważyłem literówkę w tasku xD


  • +
  • -
  • 0
Filip / `NN
Wymuszanie rate'ów co spawna - update v2.1!

#2 0-0-0

    ● 600 punktów ostrzeżeń

  • Power User

Reputacja: 222
Profesjonalista

  • Postów:599
  • Imię:___
  • Lokalizacja:___
Offline

Napisano 28.12.2013 19:16

Sprawdź:

/* Plugin generated by AMXX-Studio */
 
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <fun>
 
#define PLUGIN "Spec Switch"
#define VERSION "0.1.3"
#define AUTHOR "many"
 
new CsTeams:zTeam[33]
new zDeath[33]
new bool:type_spec[33] = false
new g_cvar
new joinAccess;
 
public plugin_init(){
    register_plugin(PLUGIN, VERSION, AUTHOR)
    /* Cvar */
    g_cvar    = register_cvar("amx_specmode",    "0")     // 0 - enable use to all, 1 - enable use only ADMINs
    /* Client Commands */
    register_clcmd("say /spec",         "cmdSpec", ADMIN_ALL, "- go to spectator")
    register_clcmd("say_team /spec",     "cmdSpec", ADMIN_ALL, "- go to spectator")
    register_clcmd("say /back",         "cmdBack", ADMIN_ALL, "- go back to your team")
    register_clcmd("say_team /back",     "cmdBack", ADMIN_ALL, "- go back to your team")
    
    register_event("HLTV", "Nowa_Runda", "a", "1=0", "2=0")
}
 
public Nowa_Runda(){
    joinAccess = 0;
    set_task(20.0, "cJoinAccess")
}
 
public cJoinAccess(){
    joinAccess = 1;
}
 
 
public cmdSpec(id)
{
    if(!get_pcvar_num(g_cvar)) Spec(id)
    else if( get_pcvar_num(g_cvar) && (get_user_flags(id) & ADMIN_KICK)) Spec(id)
    else if( get_pcvar_num(g_cvar) && !(get_user_flags(id) & ADMIN_KICK)) PrintUserNotAdmin(id)
    
    return PLUGIN_HANDLED;
}
 
public cmdBack(id){
    if(joinAccess == 0){
        if (type_spec[id] && cs_get_user_team(id) == CS_TEAM_SPECTATOR && zTeam[id] != CS_TEAM_SPECTATOR ) Back(id)
        else if( get_pcvar_num(g_cvar) && !(get_user_flags(id) & ADMIN_KICK) ) PrintUserNotAdmin(id)
    
        return PLUGIN_HANDLED;
    }
    client_print(id, print_chat, "Mozesz wrocic do gry tylko przez pierwsze 20 sekund od poczatku rundy!")
    return PLUGIN_HANDLED;
}
 
public Spec(id)
{
    zDeath[id] = cs_get_user_deaths(id)
    if (cs_get_user_team(id) == CS_TEAM_SPECTATOR)
    return
    else{
        type_spec[id] = true
        zTeam[id] = cs_get_user_team(id)
        cs_set_user_team(id, CS_TEAM_SPECTATOR)
        user_silentkill(id)
        client_print(id,print_chat,"Type /back to return from Spectator")
    }
    return
}
 
public Back(id)
{
    cs_set_user_team(id, zTeam[id])
    cs_set_user_deaths(id, zDeath[id])
    set_task(0.5,"FirstRespawn",id)
    set_task(0.8,"SecondRespawn",id)
}
 
public FirstRespawn(id)
{
    cs_user_spawn(id)
}
 
public SecondRespawn(id)
{
    cs_user_spawn(id)
    if (cs_get_user_team(id) == CS_TEAM_T){
        give_item(id,"weapon_knife")
        give_item(id,"weapon_deagle")
    }
    if (cs_get_user_team(id) == CS_TEAM_CT){
        give_item(id,"weapon_knife")
        give_item(id,"weapon_deagle")
    }
}
 
PrintUserNotAdmin(id)
{
    client_print(id,print_chat,"Only Admins can use /spec, /back command")
}
 
public PrintRule(id)
{
    if ( is_user_connected(id) && !is_user_bot(id) && !is_user_hltv(id) ){
        client_print(id,print_chat,"Type /spec if you want to go Spectator")
        client_print(id,print_chat,"Type /back to return from Spectator")
    }
}
 
public client_putinserver(id)
{
    if(!get_pcvar_num(g_cvar)) Rule(id)
    else if( get_pcvar_num(g_cvar) && (get_user_flags(id) & ADMIN_KICK)) Rule(id)
}
 
public client_disconnect(id) type_spec[id] = false
public client_connect(id) type_spec[id] = false
public Rule(id) set_task(20.0, "PrintRule", id)

  • +
  • -
  • 1
b_350_20_692108_381007_FFFFFF_000000.png - CS:GO [4FUN][Ruletka]
b_350_20_692108_381007_FFFFFF_000000.png - CS:GO [DM]
b_350_20_692108_381007_FFFFFF_000000.png - CS:GO [FFA]
b_350_20_692108_381007_FFFFFF_000000.png - CS:GO [Only Dust2]
b_350_20_692108_381007_FFFFFF_000000.png - CS:GO [Call of Duty]

#3 Filip1512

    Wszechmogący

  • Autor tematu
  • Power User

Reputacja: 137
Zaawansowany

  • Postów:641
  • Steam:steam
  • Imię:Filip
  • Lokalizacja:Poland
Offline

Napisano 28.12.2013 19:28   Najlepsza odpowiedź

+ Za chęci, ale zrobiłem literówkę w tasku po prostu, a jeżeli runda będzie trwała poniżej 20sekund to tego taska warto usunąć xD

Dzięki.


  • +
  • -
  • 0
Filip / `NN
Wymuszanie rate'ów co spawna - update v2.1!




Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych