←  Problemy z pluginami

AMXX.pl: Support AMX Mod X i SourceMod

»

Problem z własnym pluginem - bronierespawn...

Marcinox - zdjęcie Marcinox 21.12.2013

Witam.

 

Mam problem z własnym pluginem "bronierespawn.sma" (plik w załączniku)

 

Problem jest tej linijce:

if (cs_get_user_team(id) == CS_TEAM_CT,CS_TEAM_T)

Plugin ma za zadanie dawać graczowi możliwość wyboru broni na początku rundy. Kompilator podpowiada mi że w tej linijce jest błąd. Prosiłbym także o zedytowanie tego pliku tak, aby była jeszcze możliwość "zapamiętaj wybór i nie pokazuj więcej".

 

Dziękuję :)

 

 

Załączone pliki

Odpowiedz

vaulT - zdjęcie vaulT 21.12.2013

To jest wszystko zle napisane..

Napisz normalnie co chcesz.. jakie bronie dla jakiego teamu maja byc ?

Odpowiedz

  • +
  • -
k4x4z5 - zdjęcie k4x4z5 21.12.2013

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

public plugin_init() RegisterHam(Ham_Spawn, "player", "runda", 1);

public runda(id) set_task(0.1, "menu", id)

public menu(id)
{
	if(is_user_connected(id) || is_user_alive(id))
	{
		new menu = menu_create("\yBron podstawowa","wybor_menu")
		
		menu_additem(menu,"\wAK74","1",0)
		menu_additem(menu,"\wM4A1","2",0)
		menu_additem(menu,"\wTMP","3",0)
		menu_additem(menu,"\wMAC10","4",0)
		menu_additem(menu,"\wXM1014","5",0)
		menu_additem(menu,"\wSG552","6",0)
		menu_additem(menu,"\wAWP","7",0)
		
		menu_setprop(menu,MPROP_EXIT,MEXIT_ALL)
		menu_setprop(menu,MPROP_EXITNAME,"\wWyjscie");
		menu_display(id,menu,0)
		
	}
	return 1;
}

public czysc(id){
	strip_user_weapons(id) 
	give_item(id, "weapon_knife")
}

public wybor_menu(id,menu,item)
{
	czysc(id)
	
	switch(item)
	{
		case 0:
		{
			
			give_item(id, "weapon_ak47")
			cs_set_user_bpammo(id, CSW_AK47, 90)
			give_item(id, "item_kevlar")
			
			menupizdolce(id)
		}
		case 1:
		{
			give_item(id, "weapon_m4a1")
			cs_set_user_bpammo(id, CSW_M4A1, 90)
			give_item(id, "item_kevlar")
			
			menupizdolce(id)
		}
		case 2: 
		{
			give_item(id, "weapon_tmp")
			cs_set_user_bpammo(id, CSW_TMP, 120)
			give_item(id, "item_kevlar")
			
			menupizdolce(id)
		}
		case 3:
		{
			give_item(id, "weapon_mac10")
			cs_set_user_bpammo(id, CSW_MAC10, 100)
			give_item(id, "item_kevlar")
			
			menupizdolce(id)
		}
		case 4: 
		{
			give_item(id, "weapon_xm1014")
			cs_set_user_bpammo(id, CSW_XM1014, 32)
			give_item(id, "item_kevlar")
			
			menupizdolce(id)
		}
		case 5: 
		{
			give_item(id, "weapon_sg552")
			cs_set_user_bpammo(id, CSW_SG552, 90)
			give_item(id, "item_kevlar")
			
			menupizdolce(id)
		}
		case 6: 
		{
			give_item(id, "weapon_awp")
			cs_set_user_bpammo(id, CSW_AWP, 90)
			give_item(id, "item_kevlar")
			
			menupizdolce(id)
		}
	}
	
	menu_destroy(menu);
	
	return 1
}  

public menupizdolce(id)
{
	if(is_user_connected(id) || is_user_alive(id))
	{
		new menu = menu_create("\yPistolety", "wybor_menupizdolce")
		
		menu_additem(menu,"\wGLOCK18","1",0)
		menu_additem(menu,"\wUSP","2",0)
		menu_additem(menu,"\wP228","3",0)
		menu_additem(menu,"\wDUAL ELITES","4",0)
		menu_additem(menu,"\wFIVE SEVEN","5",0)
		menu_additem(menu,"\wDEAGLE","6",0)
		menu_setprop(menu,MPROP_EXIT,MEXIT_ALL)
		menu_setprop(menu,MPROP_EXITNAME,"\yWyjscie");
		
		menu_display(id,menu,0)
	}
	return 1
}

public wybor_menupizdolce(id, menu, item)
{
	switch(item)
	{
		case 0: 
		{
			give_item(id, "weapon_glock18")	
			cs_set_user_bpammo(id, CSW_GLOCK18, 120) 
		}
		case 1: 
		{
			give_item(id, "weapon_usp")
			cs_set_user_bpammo(id, CSW_USP, 100) 
		}
		case 2: 
		{
			give_item(id, "weapon_p228")	
			cs_set_user_bpammo(id, CSW_P228, 52) 
		}
		case 3: 
		{
			give_item(id, "weapon_elite")	
			cs_set_user_bpammo(id, CSW_ELITE, 120) 
		}
		case 4: 
		{
			give_item(id, "weapon_fiveseven")
			cs_set_user_bpammo(id, CSW_FIVESEVEN, 120) 
		}
		case 5: 
		{
			give_item(id, "weapon_deagle")	
			cs_set_user_bpammo(id, CSW_DEAGLE, 35) 
		}
	}
	menu_destroy(menu);
	
	return 1
}

Sprawdzales czy gracz jest z CT,TT. Zapewne menu ma byc dla tt i ct dlatego usunalem warunek teamu i dodalem czy gracz zyje i jest polaczony.

Odpowiedz

Marcinox - zdjęcie Marcinox 21.12.2013

Bronie mają być dla każdego teamu. Mogą być wszystkie bronie.

 

Sprawdzę ten plugin k4x4z5

 

EDIT// Plugin działa, ale chciałbym jeszcze możliwość zapisu.

 

Byłby ktoś tak miły ? :D


Użytkownik Marcinox edytował ten post 21.12.2013 14:26
Odpowiedz

vaulT - zdjęcie vaulT 21.12.2013

A czy to  nie zabierze takze paki ??

public czysc(id){
	strip_user_weapons(id) 
	give_item(id, "weapon_knife")
}

Lepiej zrobic tak :

#include <amxmodx>
#include <fun>
#include <hamsandwich>
#include <cstrike>
#include <StripWeapons>

public plugin_init() RegisterHam(Ham_Spawn, "player", "runda", 1);

public runda(id) set_task(0.1, "menu", id)

public menu(id)
{
	if(is_user_connected(id) || is_user_alive(id))
	{
		new menu = menu_create("\yBron podstawowa","wybor_menu")
		
		menu_additem(menu,"\wAK74","1",0)
		menu_additem(menu,"\wM4A1","2",0)
		menu_additem(menu,"\wTMP","3",0)
		menu_additem(menu,"\wMAC10","4",0)
		menu_additem(menu,"\wXM1014","5",0)
		menu_additem(menu,"\wSG552","6",0)
		menu_additem(menu,"\wAWP","7",0)
		
		menu_setprop(menu,MPROP_EXIT,MEXIT_ALL)
		menu_setprop(menu,MPROP_EXITNAME,"\wWyjscie");
		menu_display(id,menu,0)
		
	}
	return 1;
}

public czysc(id){
	StripWeapons(id, Primary);
	StripWeapons(id, Secondary);
}

public wybor_menu(id,menu,item)
{
	czysc(id)
	
	switch(item)
	{
		case 0:
		{
			
			give_item(id, "weapon_ak47")
			cs_set_user_bpammo(id, CSW_AK47, 90)
			give_item(id, "item_kevlar")
			
			menupizdolce(id)
		}
		case 1:
		{
			give_item(id, "weapon_m4a1")
			cs_set_user_bpammo(id, CSW_M4A1, 90)
			give_item(id, "item_kevlar")
			
			menupizdolce(id)
		}
		case 2: 
		{
			give_item(id, "weapon_tmp")
			cs_set_user_bpammo(id, CSW_TMP, 120)
			give_item(id, "item_kevlar")
			
			menupizdolce(id)
		}
		case 3:
		{
			give_item(id, "weapon_mac10")
			cs_set_user_bpammo(id, CSW_MAC10, 100)
			give_item(id, "item_kevlar")
			
			menupizdolce(id)
		}
		case 4: 
		{
			give_item(id, "weapon_xm1014")
			cs_set_user_bpammo(id, CSW_XM1014, 32)
			give_item(id, "item_kevlar")
			
			menupizdolce(id)
		}
		case 5: 
		{
			give_item(id, "weapon_sg552")
			cs_set_user_bpammo(id, CSW_SG552, 90)
			give_item(id, "item_kevlar")
			
			menupizdolce(id)
		}
		case 6: 
		{
			give_item(id, "weapon_awp")
			cs_set_user_bpammo(id, CSW_AWP, 90)
			give_item(id, "item_kevlar")
			
			menupizdolce(id)
		}
	}
	
	menu_destroy(menu);
	
	return 1
}  

public menupizdolce(id)
{
	if(is_user_connected(id) || is_user_alive(id))
	{
		new menu = menu_create("\yPistolety", "wybor_menupizdolce")
		
		menu_additem(menu,"\wGLOCK18","1",0)
		menu_additem(menu,"\wUSP","2",0)
		menu_additem(menu,"\wP228","3",0)
		menu_additem(menu,"\wDUAL ELITES","4",0)
		menu_additem(menu,"\wFIVE SEVEN","5",0)
		menu_additem(menu,"\wDEAGLE","6",0)
		menu_setprop(menu,MPROP_EXIT,MEXIT_ALL)
		menu_setprop(menu,MPROP_EXITNAME,"\yWyjscie");
		
		menu_display(id,menu,0)
	}
	return 1
}

public wybor_menupizdolce(id, menu, item)
{
	switch(item)
	{
		case 0: 
		{
			give_item(id, "weapon_glock18")	
			cs_set_user_bpammo(id, CSW_GLOCK18, 120) 
		}
		case 1: 
		{
			give_item(id, "weapon_usp")
			cs_set_user_bpammo(id, CSW_USP, 100) 
		}
		case 2: 
		{
			give_item(id, "weapon_p228")	
			cs_set_user_bpammo(id, CSW_P228, 52) 
		}
		case 3: 
		{
			give_item(id, "weapon_elite")	
			cs_set_user_bpammo(id, CSW_ELITE, 120) 
		}
		case 4: 
		{
			give_item(id, "weapon_fiveseven")
			cs_set_user_bpammo(id, CSW_FIVESEVEN, 120) 
		}
		case 5: 
		{
			give_item(id, "weapon_deagle")	
			cs_set_user_bpammo(id, CSW_DEAGLE, 35) 
		}
	}
	menu_destroy(menu);
	
	return 1
}

Biblioteke masz tutaj :

 

http://amxx.pl/dokum...84/StripWeapons

Odpowiedz

Marcinox - zdjęcie Marcinox 21.12.2013

Dzięki za pomoc VaulT. Zaraz skompiluje, lecz bardzo mi potrzebny zapis broni. Mój serwer używa "respawnu" i jest męczące ciągłe wybieranie.

Odpowiedz

vaulT - zdjęcie vaulT 21.12.2013

Hmm zapis ? Czyli ostatni zestaw broni ?? Jak na DM ?

Odpowiedz

Marcinox - zdjęcie Marcinox 21.12.2013

Hmm zapis ? Czyli ostatni zestaw broni ?? Jak na DM ?

Tak ! Dokładnie.

Odpowiedz

vaulT - zdjęcie vaulT 21.12.2013

Spoiler

 

Jezeli bedziesz chcial dodac wiecej broni to musisz takze je dodac w moich tablicach z broni i z ammo po kolei tak jak ty masz w swoich publicach.

Ogolnie to caly ten kod mozna by sprowadzic do tablic ale jak tak juz masz to ok :)

Odpowiedz

Marcinox - zdjęcie Marcinox 21.12.2013

Dzięki za odpowiedź :D

 

Plugin działa, lecz nie zapisuje broni. Po każdej śmierci trzeba wybierać od nowa.. Mógłbyś to naprawić ? :D  Z góry dzięki. Karma leci

Odpowiedz

vaulT - zdjęcie vaulT 21.12.2013

Zapisuje bo sprawdzalem.. przy kazdym Spawnie wyskakuje menu z wyborem nowej broni albo ostatni zestaw

Odpowiedz

Marcinox - zdjęcie Marcinox 21.12.2013

Zapisuje bo sprawdzalem.. przy kazdym Spawnie wyskakuje menu z wyborem nowej broni albo ostatni zestaw

Właśnie chodzi o menu:

1. Wybierz broń

2. Wybierz ostatnie i nie pokazuj więcej

 

^D^ Chodzi o to aby nie wyskakiwało to okno w przyszłości :D

Odpowiedz

vaulT - zdjęcie vaulT 21.12.2013

Hmm w ogóle ma nie pokazywac ? To jak gracz wybierze bron to juz mu sie nie pokaze te menu i nie bedzie mogl zmienic swojej broni

Odpowiedz

Marcinox - zdjęcie Marcinox 21.12.2013

Hmm w ogóle ma nie pokazywac ? To jak gracz wybierze bron to juz mu sie nie pokaze te menu i nie bedzie mogl zmienic swojej broni

Właśnie o to chodzi :)

Odpowiedz

vaulT - zdjęcie vaulT 21.12.2013

Troche tego nie ogarniam ;]

Wybieram bron na poczatku , nastepnej rundzie pokazuje mi sie menu zeby wybrac nowa bron albo ta sama.. wybieram ta sama i menu juz pozniej sie nie pojawia ??

A jak zmieniam caly czas bronie (w opcji 1) to menu sie caly czas pokazuje czy po prostu tylko raz te menu jest do wybrania broni ??

Odpowiedz

Marcinox - zdjęcie Marcinox 21.12.2013

Troche tego nie ogarniam ;]

Wybieram bron na poczatku , nastepnej rundzie pokazuje mi sie menu zeby wybrac nowa bron albo ta sama.. wybieram ta sama i menu juz pozniej sie nie pojawia ??

A jak zmieniam caly czas bronie (w opcji 1) to menu sie caly czas pokazuje czy po prostu tylko raz te menu jest do wybrania broni ??

mi się pojawia :D trochę to skomplikowane

Odpowiedz

vaulT - zdjęcie vaulT 21.12.2013

No troche to komplikujesz :D bo wiem jak to dziala.. mam z 2 opcjami.. w 1 wybieram sobie bron a w drugiej dostaje bron z poprzedniej rundy.. wiec jezeli chcesz aby menu sie nie pojawialo to nie bd to mialo sensu to zapamietywanie ;P bo zapamieta raz a pozniej nie bd mial wyboru broni...tazke przemysl jeszcze raz co chcesz uzyskac i napisz to zrozumiale zebym wiedzial o co chodzi :)

Odpowiedz

Marcinox - zdjęcie Marcinox 21.12.2013

No troche to komplikujesz :D bo wiem jak to dziala.. mam z 2 opcjami.. w 1 wybieram sobie bron a w drugiej dostaje bron z poprzedniej rundy.. wiec jezeli chcesz aby menu sie nie pojawialo to nie bd to mialo sensu to zapamietywanie ;P bo zapamieta raz a pozniej nie bd mial wyboru broni...tazke przemysl jeszcze raz co chcesz uzyskac i napisz to zrozumiale zebym wiedzial o co chodzi :)

Rozumiem o czym mówisz. Lecz ja stworzyłem serwer BF2 MOD + respawn. Gracze "respią" się po 3 sekundach, i mają otrzymywać broń. Myślę że sprawa się komplikuje gdy otrzymują bronie za odznaki, i to zapewne ich wina. Jeśli powiesz mi że tak się nie da to zrozumiem.

 

Dzięki za pomoc, tylko powiedz mi czy zrobienie czegoś takiego jest możliwe. Pozdrawiam

Odpowiedz

vaulT - zdjęcie vaulT 21.12.2013

Byc moze i da sie to zrobic.

Pobrac nazwe broni czy dopisac do niej jakas zmienna a w thinku postawic warunek ze jezeli bron ktora trzymam w reku to nie jest ta pobrana z poczatku rundy to ja wyrzuca.Tylko gracz nie bd mogl uzywac innych broni tylko ta co wybierze.

Odpowiedz

Marcinox - zdjęcie Marcinox 21.12.2013

Byc moze i da sie to zrobic.

Pobrac nazwe broni czy dopisac do niej jakas zmienna a w thinku postawic warunek ze jezeli bron ktora trzymam w reku to nie jest ta pobrana z poczatku rundy to ja wyrzuca.Tylko gracz nie bd mogl uzywac innych broni tylko ta co wybierze.

Ładnie to brzmi. Mógłbym tak napisać plugin, lecz zajęło by mi to trochę czasu. Jak będziesz miał chwilkę to prosiłbym cię o zrobienie tego. (oczywiście jeśli to nie problem) :D

Odpowiedz