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

Nie ma błędów, a nie działa Oo


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

#1 Owner123

    Wszechpomocny

  • Użytkownik

Reputacja: 146
Zaawansowany

  • Postów:331
  • Lokalizacja:Barty ;]
Offline

Napisano 12.10.2009 20:20

Witam.
O tóż ostatnio zaczołem pisać pluginy w PAWN'ie i mam pewien problem.
Napisałem plugin, który po napisaniu /kameleon kupuje kamuflaż (zmienia model) i pobiera 16k $ od gracza.
Kameleon był dostępny tylko dla TT.
Na początku nie chciało pobierać kasy, a później sam niewiem od czego przy wpisaniu /kameleon wywala cs'a *~*
Dodatkowo chciałem aby po wejściu na serwer ustawiało dla gracza cl_minmodels na 0 i niewiem czy zrobić to na if'ie czy nie, więc tu prosiłbym o rade (choć i tak to też nie działa *~*).
O to zawartość pliku sma.:
/* Plugin generated by AMXX-Studio */

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

#define PLUGIN "Kameleon"
#define VERSION "0.1"
#define AUTHOR "Owner"
new kam_koszt = 16000
//new kam_admin



public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR)
	register_cvar("kam_koszt", "16000")
	//register_cvar("kam_admin", "0")
	register_clcmd("say /kameleon","BuyCham")
}
public BuyCham(id)
{
	if(!is_user_alive(id))
	{
		set_hudmessage(0, 255, 0, -1.0, -1.0)
		show_hudmessage(id, "Nie mozesz kupic kameleona, gdy jestes niezywy !")
		
		return PLUGIN_HANDLED
	}	
		
	/*if(kam_admin == 1)
	{
		set_hudmessage(0, 255, 0, -1.0, -1.0)
		show_hudmessage(id, "Tylko admini moga miec kameleona !")
		
		return PLUGIN_HANDLED
	}*/	
	
	if(cs_get_user_money(id) < 16000)
	{
		set_hudmessage(0, 255, 0, -1.0, -1.0)
		show_hudmessage(id, "Nie stac cie !")
		
		return PLUGIN_HANDLED
	}
	
	if(cs_get_user_team(id) == CS_TEAM_CT)
	{
		set_hudmessage(0, 255, 0, -1.0, -1.0)
		show_hudmessage(id, "Tylko TT moga kupic kameleona !")
		
		return PLUGIN_HANDLED
	}
	
	if(cs_get_user_team(id) == CS_TEAM_T)
	{
		cs_set_user_model(id, "gign") //ustawia kamuflaz
		cs_set_user_money(id, cs_get_user_money(id)-get_pcvar_num(kam_koszt)) 
		set_hudmessage(0, 255, 0, -1.0, -1.0)
		show_hudmessage(id, "Posiadasz kameleona ! Nie daj się zdemaskować !")
		
		return PLUGIN_HANDLED
	}
	return PLUGIN_HANDLED
}

public ustaw_modele(id)
{
        new models = 0;
        client_cmd(id, "cl_minmodels %d", models); 
}

public client_putinserver(id)
{
	ustaw_modele(id)
}

Proszę o pokazaniu gdzie zrobiłem błąd oraz wyjaśnieniu (w miare mozliwosci) na czym on polegał.
Pozdrawiam :]
  • +
  • -
  • 0

#2 Vertricus

    Godlike

  • Przyjaciel

Reputacja: 426
Wszechobecny

  • Postów:1 549
  • Lokalizacja:.
Offline

Napisano 12.10.2009 20:31

/* Plugin generated by AMXX-Studio */ 

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

#define PLUGIN "Kameleon" 
#define VERSION "0.1" 
#define AUTHOR "Owner" 
new kam_koszt 
//new kam_admin 



public plugin_init() { 
    register_plugin(PLUGIN, VERSION, AUTHOR) 
    kam_koszt = register_cvar("kam_koszt", "16000")
    //register_cvar("kam_admin", "0") 
    register_clcmd("say /kameleon","BuyCham") 
} 
public BuyCham(id) 
{ 
    if(!is_user_alive(id)) 
    { 
        set_hudmessage(0, 255, 0, -1.0, -1.0) 
        show_hudmessage(id, "Nie mozesz kupic kameleona, gdy jestes niezywy !") 
        
        return PLUGIN_HANDLED 
    }
    else
    {
        
    /*if(kam_admin == 1) 
    { 
        set_hudmessage(0, 255, 0, -1.0, -1.0) 
        show_hudmessage(id, "Tylko admini moga miec kameleona !") 
        
        return PLUGIN_HANDLED 
    }*/    
    
	if(cs_get_user_money(id) < get_pcvar_num(kam_koszt)) 
	{ 
		set_hudmessage(0, 255, 0, -1.0, -1.0) 
		show_hudmessage(id, "Nie stac cie !") 
        
		return PLUGIN_HANDLED 
	} 
	else
	{
		if(cs_get_user_team(id) == CS_TEAM_CT) 
		{ 
			set_hudmessage(0, 255, 0, -1.0, -1.0) 
			show_hudmessage(id, "Tylko TT moga kupic kameleona !") 
        
			return PLUGIN_HANDLED 
		}
		else if(cs_get_user_team(id) == CS_TEAM_T) 
		{ 
			cs_set_user_model(id, "gign") //ustawia kamuflaz 
			cs_set_user_money(id, cs_get_user_money(id)-get_pcvar_num(kam_koszt)) 
			set_hudmessage(0, 255, 0, -1.0, -1.0) 
			show_hudmessage(id, "Posiadasz kameleona ! Nie daj się zdemaskować !") 
        
			return PLUGIN_HANDLED 
		} 
	}
	}
    return PLUGIN_HANDLED 
} 

public ustaw_modele(id)
{
        client_cmd(id, "cl_minmodels 0"); 
} 

public client_putinserver(id) 
{ 
    ustaw_modele(id) 
}

spróbuj ;) nie sprawdzałem ale no zobacz :D
  • +
  • -
  • 0

#3 mgr inż. Pavulon

    C35H60Br2N2O4

  • Przyjaciel

Reputacja: 1 742
Godlike

  • Postów:6 881
  • Steam:steam
  • Imię:Konrad
  • Lokalizacja:Koniecpol
Offline

Napisano 12.10.2009 20:35

Tak na szybko to widać z pcvar'em pokombinowałeś.
Deklaruj zmienną globalną tak jak teraz(tylko bez wartości):
new kam_koszt
i przy rejestrowaniu cvar'a przekaż jej wartość:
kam_koszt = register_cvar("kam_koszt", "16000")

Poza tym dwukrotne pobieranie team'u (cs_get_user_team(id)) możesz zamienić na jednokrotne z zapisaniem do zmiennej.

A to:

new models = 0;
client_cmd(id, "cl_minmodels %d", models);

Zamień po prostu na:
client_cmd(id, "cl_minmodels 0")

  • +
  • -
  • 0

#4 Miczu

    Godlike

  • Przyjaciel

Reputacja: 657
Wszechmogący

  • Postów:2 862
Offline

Napisano 12.10.2009 21:18

Czy przypadkiem nie trzeba robic precache kazdego modelu co chemy uzywac, nawet jak jest to jakis domyslny?
  • +
  • -
  • 0

#5 mgr inż. Pavulon

    C35H60Br2N2O4

  • Przyjaciel

Reputacja: 1 742
Godlike

  • Postów:6 881
  • Steam:steam
  • Imię:Konrad
  • Lokalizacja:Koniecpol
Offline

Napisano 12.10.2009 21:28

Czy przypadkiem nie trzeba robic precache kazdego modelu co chemy uzywac, nawet jak jest to jakis domyslny?

zaszkodzić to na pewno nie zaszkodzi, a dla bezpieczeństwa nawet zalecane(jak nie wymagane?)
  • +
  • -
  • 0

#6 Owner123

    Wszechpomocny

  • Autor tematu
  • Użytkownik

Reputacja: 146
Zaawansowany

  • Postów:331
  • Lokalizacja:Barty ;]
Offline

Napisano 13.10.2009 14:39

Poza tym dwukrotne pobieranie team'u (cs_get_user_team(id)) możesz zamienić na jednokrotne z zapisaniem do zmiennej.


Czyli jak? Bo nie rozumiem ...

BTW> dzięki za pomoc juz wszystko smiga ;>
  • +
  • -
  • 0

#7 mgr inż. Pavulon

    C35H60Br2N2O4

  • Przyjaciel

Reputacja: 1 742
Godlike

  • Postów:6 881
  • Steam:steam
  • Imię:Konrad
  • Lokalizacja:Koniecpol
Offline

Napisano 13.10.2009 14:49

Czyli jak? Bo nie rozumiem ...


new CsTeams:team = cs_get_user_team(id)

if(team == CS_TEAM_CT)
{
    //jakis kod
}
else if(team == CS_TEAM_T)
{
    //jakis kod
}

  • +
  • -
  • 0

#8 Owner123

    Wszechpomocny

  • Autor tematu
  • Użytkownik

Reputacja: 146
Zaawansowany

  • Postów:331
  • Lokalizacja:Barty ;]
Offline

Napisano 13.10.2009 20:17

Już rozumiem, na początku zrobiłem to samo lecz ze złą zmienną.
Jeszcze raz dzięki za pomoc :D
  • +
  • -
  • 0




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

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