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

Plugin wywala error jak go zoptymalizować


  • Nie możesz napisać tematu
  • Zaloguj się, aby dodać odpowiedź
5 odpowiedzi w tym temacie

#1 BaRaSC

    Początkujący

  • Użytkownik

Reputacja: 3
Nowy

  • Postów:16
  • Imię:Dominik
  • Lokalizacja:Gdańsk
Offline

Napisano 09.08.2016 04:34

Witam, napisałem plugin w którym raz na runde losuje jednego gracza z TT i daje mu łom , działa jednak wali errorami, jestem raczej słaby w pisaniu pluginów więc prosiłbym o wskazówki.

/* Plugin generated by AMXX-Studio */

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


#define PLUGIN "Losowanie lomu"
#define VERSION "1.0"
#define AUTHOR "BaRa"

#define DMG_BULLET (1<<1)

new g_MaxPlayers;
new bool:lom[33];

#pragma tabsize 0

public plugin_init(){
	register_plugin(PLUGIN, VERSION, AUTHOR);
	
		register_logevent("Poczatek_Rundy", 2, "1=Round_Start")  
		register_event("CurWeapon","Noz","be", "1=1")
		register_logevent("Koniec_Rundy", 2, "1=Round_End")
		RegisterHam(Ham_TakeDamage, "player", "TakeDamage");
}

public plugin_precache() { 
	precache_model("models/SC_jail/v_freelom.mdl") 
	precache_model("models/SC_jail/p_freelom.mdl") 
}

public plugin_cfg(){
	g_MaxPlayers = get_maxplayers();
}

public Koniec_Rundy(id)
{
	for(new i=1; i<=32; i++){
	lom[i] = false
         }
}

public Poczatek_Rundy(){
	new g_UserIndex = RandomPlayer(1);
	
		lom[g_UserIndex] = true
		
		if(get_user_weapon(g_UserIndex) == CSW_KNIFE){
		set_pev(g_UserIndex, pev_viewmodel2, "models/SC_jail/v_freelom.mdl")
		set_pev(g_UserIndex, pev_weaponmodel2, "models/SC_jail/p_freelom.mdl")
		}
		
		set_hudmessage(255, 255, 0, -1.0, 0.21, 0, 6.0, 5.0)
		show_hudmessage(g_UserIndex, "Brawo wylosowales lom i 1.5 razy wieksze obrazenia!")

}
public Noz(id) {
	
	new wpn = read_data(2)
	if(get_user_team(id) == 1 && lom[id] == true && wpn == CSW_KNIFE){
		set_pev(id, pev_viewmodel2, "models/SC_jail/v_freelom.mdl")
		set_pev(id, pev_weaponmodel2, "models/SC_jail/p_freelom.mdl")
	}
}

public TakeDamage(this, idinflictor, idattacker, Float:damage, damagebits)
{
                if(!is_user_connected(idattacker))
                                return HAM_IGNORED;
                
                if(get_user_team(this) != get_user_team(idattacker) && get_user_weapon(idattacker) == CSW_KNIFE)
		                        if(lom[idattacker] == true)
                                SetHamParamFloat(4, damage*1.5)

                return HAM_IGNORED;
}

stock RandomPlayer(g_Team){
	new g_PlayersIndex[33],
		g_Value;
	
	for(new i = 1; i <= g_MaxPlayers; i++){
		if(is_user_alive(i) && get_user_team(i) == g_Team){
			g_PlayersIndex[g_Value] = i;
			g_Value++;
		}
	}
	return g_PlayersIndex[random(g_Value)];
}

  • +
  • -
  • 0

#2 BaRaSC

    Początkujący

  • Autor tematu
  • Użytkownik

Reputacja: 3
Nowy

  • Postów:16
  • Imię:Dominik
  • Lokalizacja:Gdańsk
Offline

Napisano 09.08.2016 06:35

Nie mogę edytować 

 

LOGI

L 08/09/2016 - 07:00:02: [AMXX] Displaying debug trace (plugin "lom.amxx")
L 08/09/2016 - 07:00:02: [AMXX] Run time error 4: index out of bounds 
L 08/09/2016 - 07:00:02: [AMXX]    [0] lom.sma::RandomPlayer (line 92)
L 08/09/2016 - 07:00:02: [AMXX]    [1] lom.sma::Poczatek_Rundy (line 48)


  • +
  • -
  • 0

#3 l3szcz

    Just Leszcz :>

  • Użytkownik

Reputacja: 52
Pomocny

  • Postów:374
  • GG:
  • Imię:Tomek
  • Lokalizacja:Pomorze
Offline

Napisano 09.08.2016 10:31

 

    new g_UserIndex = RandomPlayer(1);

przekroczyła index.

Spróbuj użyć to bez parametru.


  • +
  • -
  • 0

@DarkGL - daj mi ciacho!  :crazy:


#4 BaRaSC

    Początkujący

  • Autor tematu
  • Użytkownik

Reputacja: 3
Nowy

  • Postów:16
  • Imię:Dominik
  • Lokalizacja:Gdańsk
Offline

Napisano 09.08.2016 11:49

Nie moge tego zrobic bo RandomPlayer(1); odpowiada za losowanie jednego gracza.
  • +
  • -
  • 0

#5 l3szcz

    Just Leszcz :>

  • Użytkownik

Reputacja: 52
Pomocny

  • Postów:374
  • GG:
  • Imię:Tomek
  • Lokalizacja:Pomorze
Offline

Napisano 09.08.2016 12:29

Już wiem.
 

new g_PlayersIndex[33],

określasz rozmiar tablicy a liczba z random znacznie ją przekracza.
https://amxx.pl/topi...aczy-do-drużyn/
sprawdź to.


  • +
  • -
  • 1

@DarkGL - daj mi ciacho!  :crazy:


#6 BaRaSC

    Początkujący

  • Autor tematu
  • Użytkownik

Reputacja: 3
Nowy

  • Postów:16
  • Imię:Dominik
  • Lokalizacja:Gdańsk
Offline

Napisano 09.08.2016 18:01

Dzięki, raczej wolałbym zostać przy tym ale przynajmniej wiem w czym jest problem i zaraz postaram go sobie rozwiązać.


  • +
  • -
  • 0




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

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