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

Problem z func_wall


  • Nie możesz napisać tematu
  • Zaloguj się, aby dodać odpowiedź
Brak odpowiedzi do tego tematu

#1 NwNwH

    Nowy

  • Użytkownik

Reputacja: 0
Nowy

  • Postów:9
Offline

Napisano 10.02.2024 20:05

Dobry wieczór, mam problem z warunkiem if(equal(szClassEnt_2, "func_wall")), gdy daje blok w bariere to nic się nie dzieje, natomiast granat normalnie działa jak rzucam w bariere to odrzuca i printuje wiadomość.

Fragment pluginu pochodzi z pluginu na bariery z paczki BaseBuilder Turbo(najnowsza wersja na github)
Amxx - 1.9.0.5271, wszystkie moduły odblokowane

public fwd_touch(toucher, touched){
	
	
	if( !pev_valid(toucher) || !pev_valid(touched) || touched == 0 || toucher == 0 )
		return PLUGIN_CONTINUE
	new szClassEnt_1[33], szClassEnt_2[33]
	pev(toucher, pev_classname, szClassEnt_1, sizeof(szClassEnt_1) )
	pev(touched, pev_classname, szClassEnt_2, sizeof(szClassEnt_2) )
	
	
	if( entity_get_int(toucher, EV_INT_solid) != SOLID_TRIGGER ) 
		return PLUGIN_CONTINUE
	
	if( equal(szClassEnt_1, "blockBarrier") ){
			
		if( equal(szClassEnt_2, "grenade") ){
                        ColorChat(0, GREEN, "proszę nie rzucac granatem na spawna");
			if( pev(touched, pev_iuser1) == 0){
				new Float:fVelocity[3]
				pev(touched, pev_velocity, fVelocity)
				fVelocity[0] *= -1;
				fVelocity[1] *= -1;
				fVelocity[2] *= -1;
				set_pev(touched, pev_velocity, fVelocity)
				set_pev(touched, pev_iuser1, 1)
				
			}
		}
		if(equal(szClassEnt_2, "player")){
			if( get_user_team(touched) == 1 && is_user_alive(touched)){
				if( task_exists(touched+TASK_GOD) ){
					remove_task(touched+TASK_GOD)
				}
				set_task(0.1, "offBarrierGod", touched+TASK_GOD)
				userIsInBarrier[touched]=true
			}
		}
		if(equal(szClassEnt_2, "func_wall")){
			ColorChat(0, GREEN, "proszę nie blokowac spawnu");
		}
	}
		
	if( !equal(szClassEnt_1, "blockBarrier") && !equal(szClassEnt_1, "func_wall"))
		return PLUGIN_CONTINUE
	
		
	if( !equal(szClassEnt_2, "func_wall")  ){		
		return PLUGIN_CONTINUE
	}

	if( equal(szClassEnt_2, "func_wall" ) && equal(szClassEnt_1, "func_wall") && getLock(toucher) != 2)
		return PLUGIN_CONTINUE
	
	
	if( getOwner(touched) != 0 ){ // -- TO NIE DZIAŁA XD --

                ColorChat(0, GREEN, "przeszlo przez warunek ownera");
		if(  getMover(touched)  ){ //0
                        ColorChat(0, GREEN, "przeszlo przez warunek movera");
			new Float:fOrigin[3]
			entity_get_vector(touched, EV_VEC_vuser4, fOrigin)
			if( fOrigin[0] != 0.0 || fOrigin[1] != 0.0 || fOrigin[2] != 0.0 ){
				ColorChat(getLastMover(touched), GREEN, "---^x01 Klocek cofniety!^x04 |^x01 Nie wsadzaj klocka w bariere!^x04 ---")
				entity_set_origin(touched, fOrigin)
			}else{
				//bb_set_claimed(getOwner(touched), bb_get_claimed(getOwner(touched))-1)
				
				if( getLock(touched) == 3 ){
					new szClass[10], szTarget[7];
					entity_get_string(touched, EV_SZ_classname, szClass, 9);
					entity_get_string(touched, EV_SZ_targetname, szTarget, 6);
						
						
					if( !equal(szClass, "func_wall")) 
						return PLUGIN_CONTINUE
					if( equal(szTarget, "ignore") )
						return PLUGIN_CONTINUE
					if( equal(szTarget, "barrier") )
						return PLUGIN_CONTINUE					
					if( equal(szClass, "blockBarrier") )
						return PLUGIN_CONTINUE
					
					remove_entity(touched)
				}else{
					set_pev(touched, pev_iuser1, 0) 
					entity_set_origin(touched, Float:{0.0,0.0,0.0});
				}
			}
			
		}else{			
			set_pev(touched,pev_rendermode,kRenderTransColor)
			set_pev(touched,pev_rendercolor, Float:{255.0,0.0,0.0} )
			set_pev(touched,pev_renderamt, 255.0 )
			set_task(0.1, "checkRemove", touched)
		}
	}
	return PLUGIN_CONTINUE
} 

  • +
  • -
  • 0




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

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