←  Pytania

AMXX.pl: Support AMX Mod X i SourceMod

»

[COD] Apteczki, Miny, Dynamity, Rakiety

Locked

  • +
  • -
TypeR's Photo TypeR 07.09.2010

Witam.

Czy jest możliwość przepisania 1 klasie np. Min i rakiet? Bo na razie wygląda to tak że te przedmioty są na klawiszu E. Przepisać przedmiot w .sma umiem ale chodzi mi o to abym mógł mieć to i to. Nagrodzę +

EDIT: Wie ktoś co należy dopisać danej klasie aby blokowało jej dawanie na początku rundy USP w CT i Glocka w TT?

EDIT2: Jeszcze jedna rzecz mi się przypomniala :D, Wie ktoś gdzie dokładnie zmienić w apteczce abym mógł użyć pare razy jej a nie 1? Chodzi mi o Item który się dropi i jak zrobić aby przy przepisaniu dostawałem apteczkę (drop) a nie tą od medyka co na ziemi się kładzie
Edited by TypeR, 07.09.2010 19:12.
Quote

Starozytny's Photo Starozytny 07.09.2010

Rakiety:
ilosc_rakiet_gracza[id] = X;

Miny:
ilosc_min_gracza[id] = X;

Dynamity:
ilosc_dynamitow_gracza[id] = X;

Apteczki:
ilosc_apteczek_gracza[id] = X;


tam gdzie "x" wpisujesz liczbe ;]
Quote

hardbot's Photo hardbot 07.09.2010

Chodzi ci o taką apteczkę żeby ją ktoś podniósł i w trakcie tego znikła i dała danemu playerowi ileś +HP

Co do min i rakiet chcesz te dwie moce na oddzielny klawisz np: E i R coś takiego?

co do blokowania USP i GLOCKA to
znajdź to i usuń
		switch(get_user_team(id))
{
case 1: give_item(id, "weapon_glock18");
case 2: give_item(id, "weapon_usp");
}

jeśli to nie podziała wgraj ten plugin R3Xa

Attached Files


Edited by hardbot, 07.09.2010 19:50.
Quote

  • +
  • -
TypeR's Photo TypeR 07.09.2010

Więc tak:
z rakietami chodzi mi to co powiedział hardbot nie to co Starożytny, chce mieć na 2 klawiszach, bo ilość potrafię przepisać.
APTECZKI
Chodzi mi o przepisanie apteczek ale takich jak się dostaje po zabiciu czyli na klawisz E, nie takie jak ma medyk. Normalnie jest tylko 1 a chciałbym więcej

Co do Glocka i USP przetestuje

Lecą plusiki dla was za pomoc.

EDIT: Niestety nie działa to z Glockiem u USP, chyba przetestuje to od R3X'a

EDIT2: Plugin R3X'a blokuje tylko w TT? Edit: Ok poradziłem sobie

A jest możliwość aby blokować te pistolety w danej klasie a nie wszystkim?
Edited by TypeR, 07.09.2010 20:30.
Quote

hardbot's Photo hardbot 07.09.2010

:D pewnie chodzi ci o Klasę Ninje zgadłem (^^)
jasne że się da :P (mam taką nadzieję)

Tam gdzie piszę Jakaś_Klasa to sobie wpisz ją i przetestuj :P

Spoiler
Quote

  • +
  • -
camilost's Photo camilost 08.09.2010

Możesz zmienić klawisz na którym używa się skilla (IN_RELOAD) (IN_USE), albo zrobić tak że jeśli ma miny nie można użyć rakiet, jeśli już użyjesz wszystkie miny, wtedy możesz użyć rakiet.
np.
W StworzRakiete(id)
if(ilosc_min_gracza[id] > 0) return;
lub W np. PostawMine(id)
if(ilosc_rakiet_gracza[id] > 0) return;

Edited by camilost, 08.09.2010 11:20.
Quote

hardbot's Photo hardbot 08.09.2010

chyba chłopie

if(get_user_button(id) == IN_USE) ilosc_min_gracza[id] = 1;
if(get_user_button(id) == IN_RELOAD) ilosc_rakiet_gracza[id] = 1;
Quote

  • +
  • -
TypeR's Photo TypeR 08.09.2010

To z minami itp testuje.

Tylko mam problem z tym pluginem od hardbota, nie chce go skompilować, wyskakuje coś z "klasa_gracza" jak byś mógł to możesz skompilować tak jak jest, na klase Szturmowiec. "+" dla was

EDIT: A da się przepisać na klawisz który np. nie ma funkcji bo tutaj widze IN_USE czyli E i IN_RELOAD czyli R

EDIT2: Niestety nie działa z tym IN_, w ogóle nie ma reakcji.
Edited by TypeR, 08.09.2010 13:18.
Quote

hardbot's Photo hardbot 08.09.2010

:) tylko ja ci coś źle to podałem bo przez te guziki xD dostaniesz po jednej minie i rakiecie :o

to dodaj jak napiszę

new button; na samą górę kodu tzn. Zmienna
potem

 	button = get_user_button(id);
if(button != IN_USE)
StworzApteczke(id);
if(button != IN_RELOAD)
StworzRakiete(id);


do danej klasy i testuj :P
Quote

  • +
  • -
TypeR's Photo TypeR 08.09.2010

Czekaj bo jakoś nie rozumiem. Mam mój kod czyli:

case Szturmowiec:
		{
			give_item(id, "weapon_sg552");
			give_item(id, "weapon_p90");
			give_item(id, "weapon_flashbang");
			give_item(id, "weapon_hegrenade");
			give_item(id, "weapon_smokegrenade");
			set_user_rendering(id, kRenderFxGlowShell, 0, 0, 0, kRenderTransColor, 70);
			ZmienUbranie(id, 0);
			ilosc_rakiet_gracza[id] = 5; 
		}

Podałeś mi:

button = get_user_button(id);
        if(button != IN_USE)
                StworzApteczke(id);
        if(button != IN_RELOAD)
                StworzRakiete(id);

To co ty mi podałeś mam dokleić do mojej klasy?
Quote

hardbot's Photo hardbot 08.09.2010

case Szturmowiec:
{
give_item(id, "weapon_sg552");
give_item(id, "weapon_p90");
give_item(id, "weapon_flashbang");
give_item(id, "weapon_hegrenade");
give_item(id, "weapon_smokegrenade");
set_user_rendering(id, kRenderFxGlowShell, 0, 0, 0, kRenderTransColor, 70);
ZmienUbranie(id, 0);
ilosc_rakiet_gracza[id] = 5;

button = get_user_button(id);
if(button != IN_USE)
StworzApteczke(id);
if(button != IN_RELOAD)
StworzRakiete(id);
}
Quote

  • +
  • -
TypeR's Photo TypeR 08.09.2010

Za nic nie mogę skompilować tego skryptu ;/, Tak samo z tym skryptem na blokowanie broni danej klasie co mi podasełałeś. Załączam .sma

Attached Files

Quote

hardbot's Photo hardbot 08.09.2010

przecież pisałem ci żebyś dał zmienną xD łap

Attached Files

Quote

  • +
  • -
TypeR's Photo TypeR 08.09.2010

Zrobiłem tak jak napisałeś, tzn dodałem i pisze mi np. "masz jeszcze 2 apteczki, rakiety działają ale apteczki ani na E ani na R ;/

EDIT: Zapomniałem dopisać
ilosc_apteczek_gracza[id] = 2;
Ale itemki dalej mam na tym samym klawiszu ;/ Apteczka i Rakieta włączają mi się jak nacisne E w tym samym czasie

EDIT2: Pokombinowałem jeszcze z zmianą na miny ale i tak nie działa, chyba nie da się mieć Min i Rakiet w tym samym momencie ;/. To jeszcze te blokowanie broni. Nie idzie skompilować skryptu ;/
Edited by TypeR, 09.09.2010 14:31.
Quote

  • +
  • -
camilost's Photo camilost 09.09.2010

chyba chłopie

if(get_user_button(id) == IN_USE) ilosc_min_gracza[id] = 1;
if(get_user_button(id) == IN_RELOAD) ilosc_rakiet_gracza[id] = 1;


Chyba nie, sam nie wiesz co piszesz i się rzucasz. ; ] Ja mu napisałem rozwiązanie... Masz rakiety i miny możesz zrobić tak że najpierw wystrzeli rakiety, później jak 0 rakiet: podkłada miny.

W public EmitSound(id, iChannel, szSound[], Float:fVol, Float:fAttn, iFlags, iPitch ) , jest UżyciePrzedmiotu (Emit dźwięku klawisza USE ;])

public UzyjPrzedmiotu(id)

I tam masz np.
if(ilosc_apteczek_gracza[id]>0)
		StworzApteczke(id);
Zamieniasz na
if(ilosc_apteczek_gracza[id] > 0 && ilosc_min_gracza[id] == 0 && itd...)
		StworzApteczke(id);

Wtedy jeśli masz miny nie podłożysz apteczkę tylko pierw minę. Musisz to zrobić logicznie i wogóle. swoich upodobań.
@WAŻNE: Jeśli dasz apteczki > 0 a min == 0. To w sprawdzeniu PostawMine(id), również musisz sprawdzić ile ma apteczek.

PS. Hardbot przejrzyj całe .sma a nie nowe zbędne rozwiązania mu podajesz.
Edited by camilost, 09.09.2010 14:51.
Quote

  • +
  • -
TypeR's Photo TypeR 09.09.2010

ok, przetestuje rozwiązanie Camilost'a

Hardbot podał mi blokowanie broni:

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

#define PLUGIN "BlockWeapon"
#define VERSION "1.0"
#define AUTHOR "R3X"

new bool:gbTouched[33]

public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)

RegisterHam(Ham_Touch, "weapon_usp", "fwTouch")
RegisterHam(Ham_Touch, "weapon_glock18", "fwTouch")
RegisterHam(Ham_Spawn, "player", "fwSpawn")
}
public fwTouch(ent, id)
{
if(!is_user_alive(id))
{
return HAM_IGNORED;
}
if(klasa_gracza[id] == Jakas_Klasa)
{
new szClass[32];
pev(ent, pev_classname, szClass, 31);

new iTeam;

if(szClass[7] == 'g')
{
iTeam = 1;
}
else
{
iTeam = 2;
}
if(_:cs_get_user_team(id) == iTeam && !gbTouched[id])
{
gbTouched[id] = true;
engfunc(EngFunc_RemoveEntity, ent);
return HAM_SUPERCEDE;
}
}
return HAM_IGNORED;
}
public fwSpawn(id)
{
if(klasa_gracza[id] == Jakas_Klasa) gbTouched[id] = false;
}


Zmodyfikowany na blokowanie broni danej klasie jest, problem tkwi w tym że nie mogę tego skompilować.

Wytłumaczy ktoś czemu nie działa (może jakiś błąd widzi) albo skompiluje na klasę szturmowiec?
Quote

  • +
  • -
CSVision's Photo CSVision 09.09.2010

masz tutaj co do broni

jesli nie chcesz aby klasa powiedzmy ninja dostawala glocka,usp zalezy gdzie jest zrob tak
case klasa:
{
strip_user_weapons(id); to jest odpowiedzialne za zablokowanie broni ze spawna
give_item(id, "weapon_knife");
give_item(id, "weapon_tmp");
}
taki malutki przyklad
Quote

  • +
  • -
TypeR's Photo TypeR 09.09.2010

Mam

		{
give_item(id, "weapon_sg552");
give_item(id, "weapon_p90");
give_item(id, "weapon_flashbang");
give_item(id, "weapon_hegrenade");
give_item(id, "weapon_smokegrenade");
set_user_rendering(id, kRenderFxGlowShell, 0, 0, 0, kRenderTransColor, 70);
ZmienUbranie(id, 0);
ilosc_rakiet_gracza[id] = 5;
}


i dodaje

strip_user_weapons(id);


czyli wygląda to tak

		{
strip_user_weapons(id, "weapon_usp");
give_item(id, "weapon_sg552");
give_item(id, "weapon_p90");
give_item(id, "weapon_flashbang");
give_item(id, "weapon_hegrenade");
give_item(id, "weapon_smokegrenade");
set_user_rendering(id, kRenderFxGlowShell, 0, 0, 0, kRenderTransColor, 70);
ZmienUbranie(id, 0);
ilosc_rakiet_gracza[id] = 5;
}


Jeżeli chce zablokować USP. i znów nie kompiluje ;/. pisze coś o button. Przepraszam was ale nie rozumiem tego z dodawaniem "button" czy jakoś tak
Quote

  • +
  • -
camilost's Photo camilost 09.09.2010

strip_user_weapons(id) //bez żadnych dodatków (wyrzuca wszystkie bronie).
give_item(id, "weapon_knife")
give_item(id, "weapon_deagle") // pod strip_user_weapons

CTRL+F i usuń to co Ci hardbot podawał. --,-
Edited by camilost, 09.09.2010 15:23.
Quote

hardbot's Photo hardbot 09.09.2010

no to tak dodaj to do COD MODa bo oddzielny plugini nie bedzie sobie tak działał :D


#include <amxmodx>
#include <fakemeta>
#include <cstrike>
#include <hamsandwich> /// jeśli nie ma w COD MOD jakiegoś wymaganego Includa to go skopiuj ( ale bodajże jest :) )
#include <fun>

#define PLUGIN "BlockWeapon"
#define VERSION "1.0"
#define AUTHOR "R3X"
//tą zmienną daj nad plugin_init
new bool:gbTouched[33]

public plugin_init()
{

register_plugin(PLUGIN, VERSION, AUTHOR)
//to co jest po niżej czyli te 3 ham dodaj to plugin_init w CODMOD
RegisterHam(Ham_Touch, "weapon_usp", "fwTouch")
RegisterHam(Ham_Touch, "weapon_glock18", "fwTouch")
RegisterHam(Ham_Spawn, "player", "fwSpawn")
}
// to po niżej byle gdzie daj na sam dół najlepiej
public fwTouch(ent, id)
{
if(!is_user_alive(id))
{
return HAM_IGNORED;
}
if(klasa_gracza[id] == Jakas_Klasa)
{
new szClass[32];
pev(ent, pev_classname, szClass, 31);

new iTeam;

if(szClass[7] == 'g')
{
iTeam = 1;
}
else
{
iTeam = 2;
}
if(_:cs_get_user_team(id) == iTeam && !gbTouched[id])
{
gbTouched[id] = true;
engfunc(EngFunc_RemoveEntity, ent);
return HAM_SUPERCEDE;
}
}
return HAM_IGNORED;
}
public fwSpawn(id)
{
if(klasa_gracza[id] == Jakas_Klasa) gbTouched[id] = false;
}
Quote
Locked