←  Problemy

AMXX.pl: Support AMX Mod X i SourceMod

»

[ROZWIĄZANE] Problem z tarczą

Zablokowany

  • +
  • -
Czaso Umilacz - zdjęcie Czaso Umilacz 02.12.2012

Witam,
mam problem z dawaniem tarczy, i podkreślam że nie używam COD MODa QTM peyota, poniżej daje kod funkcji i plugin_init, w razie co podam funkcję która będzie potrzeba :)

plugin_init:

register_plugin(PLUGIN, VERSION, AUTHOR);

zapis_osiogniec_gracza = nvault_open("MW3_PlayerAchievements");

sync_hud_1 = CreateHudSyncObj();
sync_hud_2 = CreateHudSyncObj();
sync_hud_3 = CreateHudSyncObj();

register_cvar("respawn_time", "3.0");

spawn_time = get_cvar_float("respawn_time");

RegisterHam(Ham_TakeDamage, "player", "TakeDamage");
RegisterHam(Ham_TakeDamage, "func_breakable", "TakeDamageEnt");
RegisterHam(Ham_Killed, "player", "Death");
RegisterHam(Ham_Player_PreThink, "player", "PlayerPreThink");
RegisterHam(Ham_Player_PostThink, "player", "PlayerPostThink");
RegisterHam(Ham_Spawn, "player", "Spawn", 1);
RegisterHam(Ham_TraceAttack, "player", "TraceAttack", 1)

for(new i = CSW_P228; i <= CSW_P90; i++){
if(NO_RELOAD & (1<<i))
continue;

new WeaponName[24];
get_weaponname(i, WeaponName, 23);

RegisterHam(Ham_Weapon_Reload, WeaponName, "ReloadPost", 1);
}

register_forward(FM_Touch, "EntityTouch");
register_forward(FM_Think, "EntityTchink");
register_forward(FM_GetGameDescription, "GameDescription");
register_forward(FM_SetModel, "WeaponDrop", 1);

unregister_forward(FM_Spawn, entity_spawn);

register_think(CLASNAME_CLAYMORE, "ClaymoreThink");
register_think(CLASNAME_SENTRYGUN ,"SentryThink");

register_event("CurWeapon","CurWeapon","be", "1=1");
register_event("HLTV", "NowaRunda", "a", "1=0", "2=0");
register_event("Damage", "Damage", "b", "2!=0");
register_event("TeamInfo","TeamAssign","a");

register_logevent("PoczatekRundy", 2, "1=Round_Start");

register_message(get_user_msgid("SayText"),"HandleSayText");
register_message(get_user_msgid("ScoreAttrib"), "MessageScoreAttrib");

register_clcmd("say /killstrike", "KillstrikeMenu");
register_clcmd("say /ks", "KillstrikeMenu");

register_clcmd("say /osiogniecia", "Osiogniecia");
register_clcmd("say /o", "Osiogniecia");
register_clcmd("say /wyzwania", "Osiogniecia");
register_clcmd("say /w", "Osiogniecia");
register_clcmd("say /zadania", "Osiogniecia");
register_clcmd("say /z", "Osiogniecia");
register_clcmd("say /misje", "Osiogniecia");
register_clcmd("say /m", "Osiogniecia");

register_clcmd("say /jg", "Jg");

register_clcmd("radio3", "UzyjWyposarzenie");


Funkcja od tarczy:

public Jg(id){
strip_user_weapons(id);
give_item(id, "weapon_usp");
give_item(id, "weapon_shield");

new weapons[32];
new weaponsnum;
get_user_weapons(id, weapons, weaponsnum);
for(new i=0; i<weaponsnum; i++)
if(is_user_alive(id))
if(max_ammo[weapons[i]] > 0)
cs_set_user_bpammo(id, weapons[i], max_ammo[weapons[i]]);
}

Użytkownik Czaso Umilacz edytował ten post 02.12.2012 06:41
Odpowiedz

  • +
  • -
speedkill - zdjęcie speedkill 02.12.2012

Masz jakieś error logi ? Dodatkowo w tej funkcji sprawdzaj czy gracz żyję ;)
Odpowiedz

  • +
  • -
Czaso Umilacz - zdjęcie Czaso Umilacz 02.12.2012

Sprawdzanie dodane, nie ma errorlogów, i dodam że funkcja ta nie jest wykonywana przy spawnie :)
Odpowiedz

  • +
  • -
K!113r - zdjęcie K!113r 02.12.2012

Z czego pamiętam, jak chciałem dodać komuś tarczę musiałem usunąć w którejś funkcji od dotyku kawałek kodu, który właśnie usuwał tarcze, lecz twój kod sma nie pokrywa się z moim, jakbyś zapodał całe sma byłoby łatwiej.
Odpowiedz

  • +
  • -
Czaso Umilacz - zdjęcie Czaso Umilacz 02.12.2012

To jest grubszy projekt, dlatego mogę podać tylko plugin_init na dotyk masz:

register_forward(FM_Touch, "EntityTouch");

Nie uwierzycie jak to rozwiązałem... Kod:

strip_user_weapons(id);
give_item(id, "weapon_usp");
give_item(id, "weapon_shield");

Zamieniłem na:


strip_user_weapons(id);
give_item(id, "weapon_shield");
give_item(id, "weapon_usp");

I dzioło 0.o. Nie wiem o co chodzi ale zadaję sobie pytanie: Dlaczego mój kod działa, tak jak wcześniej dlaczego mój kod nie działa... Może kolejność dawania tarczy ma jakiś wpływ, albo jakiś głupi przypadek.
Użytkownik Czaso Umilacz edytował ten post 02.12.2012 18:41
Odpowiedz

  • +
  • -
speedkill - zdjęcie speedkill 02.12.2012

Wiadomość wygenerowana automatycznie


Ten temat został zamknięty przez moderatora.

Powód: Pomoc udzielona

Jeśli się z tym nie zgadzasz, Dołączona grafika raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.


Z pozdrowieniami,
Zespół AMXX.PL
Odpowiedz
Zablokowany