←  Pytania

AMXX.pl: Support AMX Mod X i SourceMod

»

Mini-pluginy dla poczatkującego.

Emulov. - zdjęcie Emulov. 03.09.2011

Zrobilem i wyszlo takie coś :

/* Plugin generated by AMXX-Studio */
 
#include <amxmodx>
#include <amxmisc>
#include <fun>
 
#define PLUGIN "New Plug-In"
#define VERSION "1.0"
#define AUTHOR "Administrator"
 
new killstrike[33];
 
public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR)
	
		register_event("DeathMsg", "hpzakilla", "a")
}
 
public hpzakilla()
{
	new zabojca = read_data(1);
	new ofiara = read_data(2);
	
	if(get_user_team(zabojca) !=  get_user_team(ofiara))
	{
		killstrike[zabojca]++
				client_print(zabojca, print_chat, "Twoj killstrike to %s", killstrike[zabojca]++);
 
		if(killstrike[zabojca] == 5);
		{
			set_user_health(zabojca, get_user_health + 50);
			client_print(zabojca, print_chat, "Za 5 zabic bez deada dostajesz +50hp")
		}
	}
	return PLUGIN_CONTINUE
}
Tyle ze sie nawet nie kompiluje ... :< Probowalem wszystkiego, moglby mi ktos powiedziec gdzie jest blad ?

Zmieniałem, usuwalem, dodawałem i nadal nic, nie kompiluje sie :S
Użytkownik Emulov. edytował ten post 03.09.2011 16:06
Odpowiedz

  • +
  • -
Waq - zdjęcie Waq 03.09.2011

nie patrzałem czy działa ale się skompilowało ^^

@edit
dodałeś średnik co oznacza koniec lini

if(killstrike[zabojca] == 5);



oraz ta linijka

set_user_health(zabojca, get_user_health + 50);

powinna wyglądać tak

set_user_health(zabojca, get_user_health(zabojca) + 50);

Załączone pliki

  • Załączony plik  cos.sma   994 bajtów   22 Ilość pobrań

Użytkownik Waq edytował ten post 03.09.2011 16:41
Odpowiedz

Emulov. - zdjęcie Emulov. 03.09.2011

Nie do konca chodzilo mi o poprawe, lecz o opisanie bledow co gdzie i jak lecz i tak lookne co mialem zle ;D

#edit

Aff, jaki banalny problem, bledem bylo nie dodanie (id) w moim przypadki (zabojca) do get_user_health :D

Ocen ktoś poprawione czy bedzie działać :

/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <amxmisc>
#include <fakemeta_util>
#include <fun>

#define PLUGIN "New Plug-In"
#define VERSION "1.0"
#define AUTHOR "Administrator"

new killstrike[33];

public plugin_init() {
    register_plugin(PLUGIN, VERSION, AUTHOR)
    
    register_event("DeathMsg", "hpzakilla", "a")
}

public hpzakilla()
{
    new zabojca = read_data(1);
    new ofiara = read_data(2);
    
    if(get_user_team(zabojca) !=  get_user_team(ofiara))
    {
        killstrike[zabojca]++
        client_print(zabojca, print_chat, "Twoj killstrike to %s", killstrike[zabojca]++);
        
        if(killstrike[zabojca] == 5)
        {
        set_user_health(zabojca, get_user_health(zabojca) + 50);
        client_print(zabojca, print_chat, "Za 5 zabic bez deada dostajesz +50hp")
        }
    }
    return PLUGIN_CONTINUE
}

Użytkownik Emulov. edytował ten post 03.09.2011 16:40
Odpowiedz

  • +
  • -
A może sma? - zdjęcie A może sma? 03.09.2011

Zapomniałeś o czymś :]
A co jeżeli umrę? Mój killstreak pomimo tego, że umarłem dalej będzie się wynosił tyle, ile wynosił.
Przydało by się jeszcze jego resetowanie podczas rozłącznia usera oraz po zdobyciu 5 killów :P
Odpowiedz

Emulov. - zdjęcie Emulov. 03.09.2011

Jakas podpowiedz ? Jak to zrobić ? :S Ma to być w ten samej funkcji (DeadMsg) czy jakas nowa ? :S
Odpowiedz

mierzwi - zdjęcie mierzwi 03.09.2011


/* Plugin generated by AMXX-Studio */



#include <amxmodx>

#include <amxmisc>

#include <fakemeta_util>

#include <fun>



#define PLUGIN "New Plug-In"

#define VERSION "1.0"

#define AUTHOR "Administrator"



new killstrike[33];



public plugin_init()

{

    register_plugin(PLUGIN, VERSION, AUTHOR)

    

    register_event("DeathMsg", "hpzakilla", "a")

}



public hpzakilla()

{

    new zabojca = read_data(1);

    new ofiara = read_data(2);

    

    if(get_user_team(zabojca) !=  get_user_team(ofiara))

    {

        killstrike[zabojca] ++;

        

        /* zerujemy dla ofiary */

        killstrike[ofiara] = 0;

        

        if(killstrike[zabojca] <= 5) /* mozna dac dla 5 i wiecej <img src='https://amxx.pl/public/style_emoticons/<#EMO_DIR#>/naughty.gif' class='bbc_emoticon' alt='^^' /> */

        {

            set_user_health(zabojca, get_user_health(zabojca) + 50);

            client_print(zabojca, print_chat, "Za %d zabic bez deada dostajesz +50hp.", killstrike[zabojca]) /* takie male info */

            

            return PLUGIN_CONTINUE;

        }

        

        //client_print(zabojca, print_chat, "Twoj killstrike to %s", killstrike[zabojca]++); zle

        /* jak raz dodales to po co 2 raz? bez ++, a liczby wyswietlamy za pomoca %i lub %d, %s to tekst) */

        client_print(zabojca, print_chat, "Twoj killstrike to %d fragow.", killstrike[zabojca]);

    }

    return PLUGIN_CONTINUE

}


Użytkownik LKZ (funfel) edytował ten post 03.09.2011 17:52
Odpowiedz

Emulov. - zdjęcie Emulov. 03.09.2011

/* Plugin generated by AMXX-Studio */
 
#include <amxmodx>
#include <amxmisc>
#include <fakemeta_util>
#include <fun>
 
#define PLUGIN "New Plug-In"
#define VERSION "1.0"
#define AUTHOR "Administrator"
 
new killstrike[33];
 
public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR)
	
	register_event("DeathMsg", "hpzakilla", "a")
 
}
 
public hpzakilla()
{
	new zabojca = read_data(1);
	new ofiara = read_data(2);
	
	if(get_user_team(zabojca) !=  get_user_team(ofiara))
	{
		killstrike[zabojca] ++;
	  
		killstrike[ofiara] = 0;
		
		if(killstrike[zabojca] == 3)
		{
			set_user_health(zabojca, get_user_health(zabojca) + 30);
			client_print(zabojca, print_chat, "Za 3 zabicia bez smierci dostajesz +30hp")
		}
		if(killstrike[zabojca] == 6)
		{
			set_user_health(zabojca, get_user_health(zabojca) + 50);
			client_print(zabojca, print_chat, "Za 6 zabic bez smierci dostajesz +50hp")
		}
		if(killstrike[zabojca] == 10)
		{
			set_user_health(zabojca, get_user_health(zabojca) + 50);
			fm_give_item(zabojca, "weapon_hegrenade")  
			client_print(zabojca, print_chat, "Za 10 zabic bez smierci dostajesz +70hp i HE Nade")
		}
	    client_print(zabojca, print_chat, "Twoj killstrike to %d", killstrike[zabojca]);
	}
	return PLUGIN_CONTINUE
}

Oka, czyli taki pelny kod :D

Teraz jakiś inny plugin :D
Użytkownik Emulov. edytował ten post 03.09.2011 18:06
Odpowiedz

  • +
  • -
A może sma? - zdjęcie A może sma? 03.09.2011

Tak.
Przed returnem wyzeruj ofierze killstreaka
Zrób funkcję public client_disconnect(id) i tam też wyzeruj killstreaka
Po dodaniu hp wyzeruj kil;streaka
Odpowiedz

Emulov. - zdjęcie Emulov. 03.09.2011

/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <amxmisc>
#include <fakemeta_util>
#include <fun>

#define PLUGIN "New Plug-In"
#define VERSION "1.0"
#define AUTHOR "Administrator"

new killstrike[33];

public plugin_init() {
    register_plugin(PLUGIN, VERSION, AUTHOR)
    
    register_event("DeathMsg", "hpzakilla", "a")

}

public hpzakilla()
{
    new zabojca = read_data(1);
    new ofiara = read_data(2);
    
    if(get_user_team(zabojca) !=  get_user_team(ofiara))
    {
        killstrike[zabojca] ++;
        
        killstrike[ofiara] = 0;

        if(killstrike[zabojca] == 3)
        {
            set_user_health(zabojca, get_user_health(zabojca) + 30);
            client_print(zabojca, print_chat, "Za 3 zabicia bez smierci dostajesz +30hp")
        }
        if(killstrike[zabojca] == 6)
        {
            set_user_health(zabojca, get_user_health(zabojca) + 50);
            client_print(zabojca, print_chat, "Za 6 zabic bez smierci dostajesz +50hp")
        }
        if(killstrike[zabojca] == 10)
        {
            set_user_health(zabojca, get_user_health(zabojca) + 50);
            fm_give_item(zabojca, "weapon_hegrenade")  
            client_print(zabojca, print_chat, "Za 10 zabic bez smierci dostajesz +70hp i HE Nade")
            client_print(zabojca, print_chat, "Gratulacje, osiagnales najwyzszy poziom killstrike, wbijaj od nowa.")
            killstrike[zabojca] = 0
        }
        client_print(zabojca, print_chat, "Twoj killstrike to %d", killstrike[zabojca]);
    }
    return PLUGIN_CONTINUE
}

public client_disconnect(id)
{
    new zabojca = read_data(1);
    new ofiara = read_data(2);
    
    killstrike[zabojca] = 0
    killstrike[ofiara] = 0
}

Teraz dobrze wszystko ? :S
Odpowiedz

  • +
  • -
speedkill - zdjęcie speedkill 03.09.2011

Tak , raczej tak :)
jeszcze jak dałeś
public client_disconnect(id)
to mogłeś dać public client_connect(id) i tam też dać na 0 killstrika
Odpowiedz

Emulov. - zdjęcie Emulov. 03.09.2011

Toć dałem .. :S

killstrike[zabojca] = 0
killstrike[ofiara] = 0
Odpowiedz

  • +
  • -
Waq - zdjęcie Waq 03.09.2011

speekill'owi chodzi o
client_connect(id) czyli gdy gracz połączy się z serwerem
tak samo jak
client_disconnect(id) czyli gdy gracz wyjdzie z serwera

czyli dodaj


public client_connect(id)
{
new zabojca = read_data(1);
new ofiara = read_data(2);

killstrike[zabojca] = 0
killstrike[ofiara] = 0
}

Użytkownik Waq edytował ten post 03.09.2011 18:25
Odpowiedz

  • +
  • -
A może sma? - zdjęcie A może sma? 03.09.2011

public client_connect(id)
{
new zabojca = read_data(1);
new ofiara = read_data(2);

killstrike[zabojca] = 0
killstrike[ofiara] = 0
}

na:
public client_connect(id)
{
killstreak[id] = 0
}

Użytkownik A może sma? edytował ten post 03.09.2011 18:45
Odpowiedz

Emulov. - zdjęcie Emulov. 03.09.2011

Wiem wiem, juz poprawione ladnie :D

Jakis inny plugin teraz moglibyscie zaproponowac :S
Odpowiedz

  • +
  • -
Fili:P - zdjęcie Fili:P 03.09.2011

Spróbuj speedhack-a, jest całkiem prosty i fajny ^^
Odpowiedz

Emulov. - zdjęcie Emulov. 03.09.2011

Na czym ma on niby polegac ? Ze gracze szybciej biegaja xD ?

Moze cos innego ? :S
Odpowiedz

grs4 - zdjęcie grs4 03.09.2011

Podpinam sie do teamtu tez jestem poczatkowy, i tez będę pisac Wyzwania
Odpowiedz

Emulov. - zdjęcie Emulov. 03.09.2011

Zaloz swoj temat, bo bedzie mi przeszkadzac jak ty bedziesz pisal ... :<
Odpowiedz

mierzwi - zdjęcie mierzwi 03.09.2011

no to piszcie speedhacka :D

do użycia : set_user_maxspeed i curweapon
Odpowiedz

Skull3D - zdjęcie Skull3D 03.09.2011

Ja ci powiem jak robię.

Może ci się to bardziej spodoba i więcej się nauczysz.

Ja wszystkie funkcje co do plugin_init biorę z innych pluginów albo dokumentacja. (nic nie umiem moze pare tam rzeczy z funkcjami rejestrujacymi) Ja się ucze tego co ma być w public a nie w plugin_init bo tego się można na końcu pouczyć a kod w funkcji jest najważniejszy.
Może ci to coś pomoże.
Odpowiedz