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

Knife_mod z kosami dla vip


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

#1 RiderS

    Profesjonalista

  • Użytkownik

Reputacja: 32
Życzliwy

  • Postów:156
Offline

Napisano 23.02.2017 15:24

Cześć.
Mam problem.
 
Próbuje przerobić plugin KNIFE MOD, tak aby np. kosa z gravitka i regeneracją HP, były na flage ADMIN_LEVEL_H "t".

Mógłby ktoś napisać jaki warunek mam dać i gdzie go dać.

Warunek jaki ja dodaje :

	if(!is_user_connected(id) || !(get_user_flags(id) & read_flags("t")))
	return PLUGIN_HANDLED;

Nie wiem czy dobry :P

Gdy daje ten warunek tutaj : 

public display_knife(id) {
	if(!is_user_connected(id) || !(get_user_flags(id) & read_flags("b")))
	return PLUGIN_HANDLED;

	new menuBody[512]
	add(menuBody, 511, "\rKnife Mod\w^n^n")
	add(menuBody, 511, "1. Machete \y(More Damage/Low Speed)\w^n")
	add(menuBody, 511, "2. Bak Knife \y(No Footsteps)\w^n")
	add(menuBody, 511, "3. Pocket Knife \y(High Speed)\w^n")
	add(menuBody, 511, "4. Butcher Knife \y(Low Gravity)\w^n")
	add(menuBody, 511, "5. Default Knife \y(Health Regeneration)\w^n^n")
	add(menuBody, 511, "0. Exit^n")
	
	new keys = ( 1<<0 | 1<<1 | 1<<2 | 1<<3 | 1<<4 | 1<<9 )
	show_menu(id, keys, menuBody, -1, "Knife Mod")
	
	return PLUGIN_CONTINUE;
}

To plugin mi działa 


Użytkownik RiderS edytował ten post 23.02.2017 15:25

  • +
  • -
  • 0

#2 RiderS

    Profesjonalista

  • Autor tematu
  • Użytkownik

Reputacja: 32
Życzliwy

  • Postów:156
Offline

Napisano 02.03.2017 11:51

@ref xD


  • +
  • -
  • 0

#3 _McHappy

    Wszechwiedzący

  • Support Team

Reputacja: 243
Wszechwidzący

  • Postów:501
  • GG:
  • Imię:Radek
  • Lokalizacja:Tak
Offline

Napisano 05.03.2017 21:27

get_user_flags(id) & ADMIN_LEVEL_H

Rozpiska flag i ich powiązane makra dostępna m.in. w pliku configs/users.ini

Użytkownik _McHappy edytował ten post 05.03.2017 21:28

  • +
  • -
  • 1

#4 RiderS

    Profesjonalista

  • Autor tematu
  • Użytkownik

Reputacja: 32
Życzliwy

  • Postów:156
Offline

Napisano 05.03.2017 21:31

get_user_flags(id) & ADMIN_LEVEL_H

Rozpiska flag i ich powiązane makra dostępna m.in. w pliku configs/users.ini

Tak, tylko moje pytanie gdzie to dać?

Dać to tak, aby np. kosa z gravitka i regeneracją HP były dla VIP/flage ^^


  • +
  • -
  • 0

#5 _McHappy

    Wszechwiedzący

  • Support Team

Reputacja: 243
Wszechwidzący

  • Postów:501
  • GG:
  • Imię:Radek
  • Lokalizacja:Tak
Offline

Napisano 05.03.2017 21:41

Najoptymalniej jest zawrzeć ten warunek w uchwycie menu, pod 'case' pożądanej pozycji menu.
Podaj treść funkcji uchwytu menu.

Użytkownik _McHappy edytował ten post 05.03.2017 21:42

  • +
  • -
  • 1

#6 RiderS

    Profesjonalista

  • Autor tematu
  • Użytkownik

Reputacja: 32
Życzliwy

  • Postów:156
Offline

Napisano 05.03.2017 22:14

Warunek dodaje w miejscach

public display_knife(id) {
	new menuBody[512]
	add(menuBody, 511, "\rKnife Mod\w^n^n")
	add(menuBody, 511, "1. Machete \y(More Damage/Low Speed)\w^n")
	add(menuBody, 511, "2. Bak Knife \y(No Footsteps)\w^n")
	add(menuBody, 511, "3. Pocket Knife \y(High Speed)\w^n")
    	add(menuBody, 511, "4. Butcher Knife \y(Low Gravity)\w^n")
        if(!is_user_connected(id) || !(get_user_flags(id) & ADMIN_LEVEL_H))
        return PLUGIN_HANDLED;
	add(menuBody, 511, "5. Default Knife \y(Health Regeneration)\w^n^n")
	add(menuBody, 511, "0. Exit^n")
	
	new keys = ( 1<<0 | 1<<1 | 1<<2 | 1<<3 | 1<<4 | 1<<9 )
	show_menu(id, keys, menuBody, -1, "Knife Mod")
}

Wtedy po wpisaniu komendy /knife menu wyświetli się, jeśli gracz ma flagę

public knifemenu(id, key) {
	switch(key) 
	{
		case 0: SetKnife(id , 4)
                if(!is_user_connected(id) || !(get_user_flags(id) & ADMIN_LEVEL_H))
                return PLUGIN_HANDLED;
		case 1: SetKnife(id , 2)
		case 2: SetKnife(id , 3)
		case 3: SetKnife(id , 1)
		case 4: SetKnife(id , 0)
		default: return PLUGIN_HANDLED
	}
	SaveData(id)
	return PLUGIN_HANDLED
} 

Mam błędy podczas kompilacji, tutaj podaje błędy

//// knife_mod.sma
// C:\Documents and Settings\Witek\Pulpit\scripting WINDOWS\knife_mod.sma(79) :
error 002: only a single statement (or expression) can follow each "case"
// C:\Documents and Settings\Witek\Pulpit\scripting WINDOWS\knife_mod.sma(81) :
warning 225: unreachable code
// C:\Documents and Settings\Witek\Pulpit\scripting WINDOWS\knife_mod.sma(81) :
error 014: invalid statement; not in switch
// C:\Documents and Settings\Witek\Pulpit\scripting WINDOWS\knife_mod.sma(81) :
warning 215: expression has no effect
// C:\Documents and Settings\Witek\Pulpit\scripting WINDOWS\knife_mod.sma(81) :
error 001: expected token: ";", but found ":"
// C:\Documents and Settings\Witek\Pulpit\scripting WINDOWS\knife_mod.sma(81) :
error 029: invalid expression, assumed zero
// C:\Documents and Settings\Witek\Pulpit\scripting WINDOWS\knife_mod.sma(81) :
fatal error 107: too many error messages on one line
//

Gdy dam tu 

public SetKnife(id , Knife) {
	knife_model[id] = Knife
	
	new Clip, Ammo, Weapon = get_user_weapon(id, Clip, Ammo) 
	if ( Weapon != CSW_KNIFE )
		return PLUGIN_HANDLED
	
	new vModel[56],pModel[56]
	
	switch(Knife)
	{
		case 0: {
			format(vModel,55,"models/v_knife.mdl")
			format(pModel,55,"models/p_knife.mdl")
		}
		case 1: {
			format(vModel,55,"models/knife-mod/v_butcher.mdl")
			format(pModel,55,"models/knife-mod/p_butcher.mdl")
                	if(!is_user_connected(id) || !(get_user_flags(id) & ADMIN_LEVEL_H))
	                return PLUGIN_HANDLED;
		}
		case 2: {
			format(vModel,55,"models/knife-mod/v_bak.mdl")
			format(pModel,55,"models/knife-mod/p_bak.mdl")
		}
		case 3: {
			format(vModel,55,"models/knife-mod/v_pocket.mdl")
			format(pModel,55,"models/knife-mod/p_pocket.mdl")
		}
		case 4: {
			format(vModel,55,"models/knife-mod/v_machete.mdl")
			format(pModel,55,"models/knife-mod/p_machete.mdl")
		}
	} 
	
	entity_set_string(id, EV_SZ_viewmodel, vModel)
	entity_set_string(id, EV_SZ_weaponmodel, pModel)
	
	return PLUGIN_HANDLED;  
}

Gracz dostanie moc, a modelu nie :P 

Nwm może dasz radę to jakoś ogarnąć (bo mnie to przerasta  :wstyd:  ) i podesłać *sma, ewentualnie wycinek kodu w którym dasz warunek  :)


  • +
  • -
  • 0

#7 _McHappy

    Wszechwiedzący

  • Support Team

Reputacja: 243
Wszechwidzący

  • Postów:501
  • GG:
  • Imię:Radek
  • Lokalizacja:Tak
Offline

Napisano 05.03.2017 22:24

2. wrzucony kod:
Treść case'a zawierająca kilka linijek musi zostać objęta klamrami.

Wystarczy zawarcie warunku w 2. wrzuconym kodzie.

Użytkownik _McHappy edytował ten post 05.03.2017 22:25

  • +
  • -
  • 1

#8 RiderS

    Profesjonalista

  • Autor tematu
  • Użytkownik

Reputacja: 32
Życzliwy

  • Postów:156
Offline

Napisano 06.03.2017 12:50

Że tak? Bo ja już głupieje  :wstyd:

public knifemenu(id, key) {
	switch(key) 
	{ 
		{
                case 0: SetKnife(id , 4)
                if(!is_user_connected(id) || !(get_user_flags(id) & ADMIN_LEVEL_H))
                return PLUGIN_HANDLED;
        }
		case 1: SetKnife(id , 2)
		case 2: SetKnife(id , 3)
		case 3: SetKnife(id , 1)
		case 4: SetKnife(id , 0)
		default: return PLUGIN_HANDLED
	}
	SaveData(id)
	return PLUGIN_HANDLED
}

Może(pewno tak) w złym miejscu to daję :>


  • +
  • -
  • 0

#9 _McHappy

    Wszechwiedzący

  • Support Team

Reputacja: 243
Wszechwidzący

  • Postów:501
  • GG:
  • Imię:Radek
  • Lokalizacja:Tak
Offline

Napisano 06.03.2017 14:07

Treść case'a, nie sam case.

Case x:
{

}

Użytkownik _McHappy edytował ten post 06.03.2017 14:08

  • +
  • -
  • 1

#10 RiderS

    Profesjonalista

  • Autor tematu
  • Użytkownik

Reputacja: 32
Życzliwy

  • Postów:156
Offline

Napisano 06.03.2017 14:46

Treść case'a, nie sam case.

Case x:
{

}

public knifemenu(id, key) {
	switch(key) 
	{ 
                case 0: SetKnife(id , 4)
                {
                if(!is_user_connected(id) || !(get_user_flags(id) & ADMIN_LEVEL_H))
                return PLUGIN_HANDLED;
                }
		case 1: SetKnife(id , 2)
		case 2: SetKnife(id , 3)
		case 3: SetKnife(id , 1)
		case 4: SetKnife(id , 0)
		default: return PLUGIN_HANDLED
	}
	SaveData(id)
	return PLUGIN_HANDLED
}

Mam wysyp errorów  ;>

//// knife_mod.sma
// C:\Documents and Settings\Witek\Pulpit\scripting WINDOWS\knife_mod.sma(80) :
error 002: only a single statement (or expression) can follow each "case"
// C:\Documents and Settings\Witek\Pulpit\scripting WINDOWS\knife_mod.sma(83) :
warning 209: function "knifemenu" should return a value
// C:\Documents and Settings\Witek\Pulpit\scripting WINDOWS\knife_mod.sma(84) :
error 010: invalid function or declaration
// C:\Documents and Settings\Witek\Pulpit\scripting WINDOWS\knife_mod.sma(85) :
error 010: invalid function or declaration
// C:\Documents and Settings\Witek\Pulpit\scripting WINDOWS\knife_mod.sma(86) :
error 010: invalid function or declaration
// C:\Documents and Settings\Witek\Pulpit\scripting WINDOWS\knife_mod.sma(87) :
error 010: invalid function or declaration
// C:\Documents and Settings\Witek\Pulpit\scripting WINDOWS\knife_mod.sma(88) :
error 010: invalid function or declaration
// C:\Documents and Settings\Witek\Pulpit\scripting WINDOWS\knife_mod.sma(92) :
error 054: unmatched closing brace
// C:\Documents and Settings\Witek\Pulpit\scripting WINDOWS\knife_mod.sma(272) :
 error 021: symbol already defined: "SaveData"
// C:\Documents and Settings\Witek\Pulpit\scripting WINDOWS\knife_mod.sma(300) :
 warning 203: symbol is never used: "SaveData"

a gdy tak dam 

public knifemenu(id, key) {
	switch(key) 
	{ 
                
                case 0:{ SetKnife(id , 4)
                if(!is_user_connected(id) || !(get_user_flags(id) & ADMIN_LEVEL_H))
                return PLUGIN_HANDLED;
                }
		case 1: SetKnife(id , 2)
		case 2: SetKnife(id , 3)
		case 3: SetKnife(id , 1)
		case 4: SetKnife(id , 0)
		default: return PLUGIN_HANDLED
	}
	SaveData(id)
	return PLUGIN_HANDLED
} 

kompiluje się (tam wyskakuje warrning o tabulacji (chyba xD )), ale nie działa po mojej myśli


  • +
  • -
  • 0

#11 retsam.

    Początkujący

  • Użytkownik

Reputacja: 7
Nowy

  • Postów:18
Offline

Napisano 06.03.2017 15:23

case 0: {if(is_user_connected(id) && (get_user_flags(id) & ADMIN_LEVEL_H)){SetKnife(id, 4)}}
Proszę :)

Użytkownik retsam. edytował ten post 06.03.2017 15:24

  • +
  • -
  • 1

#12 RiderS

    Profesjonalista

  • Autor tematu
  • Użytkownik

Reputacja: 32
Życzliwy

  • Postów:156
Offline

Napisano 06.03.2017 15:48

case 0: {if(is_user_connected(id) && (get_user_flags(id) & ADMIN_LEVEL_H)){SetKnife(id, 4)}}
Proszę :)

 

//// knife_mod.sma
// C:\Documents and Settings\Witek\Pulpit\scripting WINDOWS\knife_mod.sma(79) :
error 001: expected token: ";", but found "}"
//
public knifemenu(id, key) {
	switch(key) 
	{ 
                
                case 0: {if(is_user_connected(id) && (get_user_flags(id) & ADMIN_LEVEL_H)){SetKnife(id, 4)}}
		case 1: SetKnife(id , 2)
		case 2: SetKnife(id , 3)
		case 3: SetKnife(id , 1)
		case 4: SetKnife(id , 0)
		default: return PLUGIN_HANDLED
	}
	SaveData(id)
	return PLUGIN_HANDLED
}  

^_-


  • +
  • -
  • 0

#13 _McHappy

    Wszechwiedzący

  • Support Team

Reputacja: 243
Wszechwidzący

  • Postów:501
  • GG:
  • Imię:Radek
  • Lokalizacja:Tak
Offline

Napisano 06.03.2017 16:50

Ten kod, który się kompiluje jest poprawny. Wyjaśnij może, czemu nie działa po Twojej myśli?
Oczywiście upewniając się, że zmieniłeś odpowiedni case (jest kilka, każdy odnosi się do innego typu noża)

Oraz funkcję SetKnife() należy umieścić po tym warunku, lecz nie w nim (uwzględnieniając te 2 negacje w if'ie)

Użytkownik _McHappy edytował ten post 06.03.2017 16:56

  • +
  • -
  • 1

#14 retsam.

    Początkujący

  • Użytkownik

Reputacja: 7
Nowy

  • Postów:18
Offline

Napisano 06.03.2017 16:52

case 0: {
if(is_user_connected(id) && (get_user_flags(id) & ADMIN_LEVEL_H)){
SetKnife(id, 4)
} 
} 

  • +
  • -
  • 1

#15 RiderS

    Profesjonalista

  • Autor tematu
  • Użytkownik

Reputacja: 32
Życzliwy

  • Postów:156
Offline

Napisano 06.03.2017 18:40

case 0: {
if(is_user_connected(id) && (get_user_flags(id) & ADMIN_LEVEL_H)){
SetKnife(id, 4)
} 
} 

dzięki  ;>

Happy wiem, że ciężko mi coś wytłumaczyć i dzięki że próbowałeś  :P

Można zrobić close  :lol:


  • +
  • -
  • 0




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

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