←  Pytania

AMXX.pl: Support AMX Mod X i SourceMod

»

Jak usunąć "piłkę" z mapy bez jej...

Zablokowany

  • +
  • -
Julia - zdjęcie Julia 04.08.2011

Dołączona grafika

Chodzi właściwie o takiego "kloca", który da się popchać, ale do piłki mu daleko. Jak się go pozbyć? Można napisać jakiś plugin usuwający tego typu obiekty?
Odpowiedz

  • +
  • -
Ortega - zdjęcie Ortega 04.08.2011

Kiedyś robiłem:
#include < amxmodx >
#include < engine >
#include < fakemeta >

new const szClass[ ] = "KLASA_BYTU";
new const szMap[ ] = "NAZWA_MAPY";

new bool:Cmap;

public plugin_init( ) {
register_logevent( "RoundStart", 2, "1=Round_Start" );

static szMapName[ 32 ];
get_mapname( szMapName, charsmax( szMapName ) );
if( equali( szMapName, szMap ) )
Cmap = true;
}

public RoundStart( ) {
if( !Cmap )
return;

static ent;
ent = -1;
while( ( ent = find_ent_by_class( ent, szClass ) ) !=0 ) {
engfunc( EngFunc_RemoveEntity, ent );
}
}

Użyj BSPViewer, żeby zdekompilować mapę, otwórz w hammer editor, zobacz jaką klasę ma byt i wpisz/ albo target bytu. Przy target zmień funkcję na find_ent_by_target.
Zamiast dekompilacji możesz użyć m_eel.
Odpowiedz

  • +
  • -
DarkGL - zdjęcie DarkGL 04.08.2011

ortega jeśli jest to byt wbudowany w mapę to wystarczy usunąć go tylko przy starcie mapy / jego spawnie :)
m_eel
m_eel - Engine entity lab - AMXX.pl: Support AMX Mod X
Odpowiedz

  • +
  • -
Julia - zdjęcie Julia 04.08.2011

Ogarnęłam już. :D
A czy można ustawić, że byt jest zamieniany na wybrany model?
Jeżeli nie, to czy można by jeszcze edytować plugin, że będzie ładowało np. remove.cfg (czy w/e) gdzie wpiszę nazwy map, z których chcę to usunąć.
Użytkownik Julia edytował ten post 04.08.2011 16:49
Odpowiedz

  • +
  • -
R3X - zdjęcie R3X 05.08.2011

W amxmodx/configs/remove.cfg wpisz nazwy map, każda w osobnej linii

#include < amxmodx >
#include < amxmisc >
#include < engine >

new const szClass[ ] = "KLASA_BYTU";

new bool:Cmap;

public plugin_init( ) {
	register_logevent( "RoundStart", 2, "1=Round_Start" );
	
	static szMapName[ 32 ];
	get_mapname( szMapName, charsmax( szMapName ) );
	
	static szFile[ 96 ];	
	get_configsdir(szFile, 95);
	add(szFile, 95, "/remove.cfg");
	
	new fp = fopen(szFile, "rt");
	if(!fp)
		return;
	while(!feof(fp)){
		fgets(fp, szFile, 31);
		trim(szFile);
		
		if(szFile[0] == ';') continue;
		
		if(equal(szFile, szMapName)){
			Cmap = true;
			break;
		}
	}
	fclose(fp);
	
}

public RoundStart( ) {
	if( !Cmap )
		return;
	
	remove_entity_name(szClass);
}

Nie wiem tylko czy takie usuwanie po klasie nie usunie za dużo rzeczy. Z jakiej mapy jest ten screen?

Bezpośrednio podmieniać model można tylko jeśli na mapie to też jest model, np. bronie leżące na ziemi albo jakieś kwiatki czy drzewa. Zawsze można usunąć oryginał i w to miejsce dołożyć nowy element o wybranym modelu i wyjdzie na to samo :)
Odpowiedz

  • +
  • -
Julia - zdjęcie Julia 05.08.2011

Hmm, OK, screen bodajże z mapy bb_projetocs, taka pierwsza przykładowa, gdzie pamiętałam, że jest ten klocek.
Że położyć można to wiem, ale automatyczna podmiana byłaby znacznie szybsza. :D
Odpowiedz
Zablokowany