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

Funkcja czasowa


  • Zamknięty Temat jest zamknięty
11 odpowiedzi w tym temacie

#1 EufooZ

    Profesjonalista

  • Użytkownik

Reputacja: 25
Życzliwy

  • Postów:183
  • Lokalizacja:Łódź
Offline

Napisano 13.04.2011 12:32

Witam, czy taki zapis będzie działać ? Chciałbym aby po 3.5 sekundach nowej rundy wykonywał się dany kod w tym przypadku mam tak:

public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
//tutaj kody.......
set_task(3.5, "wywal", 0)
//tutaj kody.......
}

public wywal(id)
{
strip_user_weapons(id)
}


Oraz po 5 sekundzie nowej rundy wykonywał się ten kod:

public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
//tutaj kody.......
set_task(5.0, "menu_broni", 0)
//tutaj kody.......
}
public menu_broni(id)
{
menu = menu_create("Menu broni","menu_broni_wybierz")

menu_additem(menu,"Marker + HE")
menu_additem(menu,"Super Marker + HE (Tylko dla VIP)")
//tutaj kod leci dalej ....

  • +
  • -
  • 0

Cs-Move.xaa.pl - JailBreak - 178.19.106.146:27092

Cs-Move.xaa.pl - PaintBall - 178.19.106.150:27088

Forum - Cs-Move.xaa.pl


ZAPRASZAMY SERDECZNIE


#2 KariiO

    Super Hero

  • Power User

Reputacja: 396
Wszechpomocny

  • Postów:1 133
  • GG:
  • Imię:Korneliusz
  • Lokalizacja:Cieszyn
Offline

Napisano 13.04.2011 12:41

Tak będzie działać , wszystkim wyrzuci bron a następnie pokaże im menu.
  • +
  • -
  • 1

#3 EufooZ

    Profesjonalista

  • Autor tematu
  • Użytkownik

Reputacja: 25
Życzliwy

  • Postów:183
  • Lokalizacja:Łódź
Offline

Napisano 13.04.2011 12:56

To rozumiem, że co runde tak będzie robiło ?

Masz + :)
  • +
  • -
  • 0

Cs-Move.xaa.pl - JailBreak - 178.19.106.146:27092

Cs-Move.xaa.pl - PaintBall - 178.19.106.150:27088

Forum - Cs-Move.xaa.pl


ZAPRASZAMY SERDECZNIE


#4 speedkill

    Godlike

  • Przyjaciel

Reputacja: 1 592
Godlike

  • Postów:2 733
  • GG:
  • Steam:steam
  • Imię:Michał
  • Lokalizacja:Prudnik
Offline

Napisano 13.04.2011 13:05

A nie łatwiej kod tam gdzie menu
case 1
strip_user_weapons
give_item ...
  • +
  • -
  • 0

If you can dream it, you can do it.


#5 EufooZ

    Profesjonalista

  • Autor tematu
  • Użytkownik

Reputacja: 25
Życzliwy

  • Postów:183
  • Lokalizacja:Łódź
Offline

Napisano 13.04.2011 13:36

Też tak mam, lecz chodzi o to, że PB na początku rundy automatycznie daje bronie, dlatego chce je najpierw wywalić :P
  • +
  • -
  • 0

Cs-Move.xaa.pl - JailBreak - 178.19.106.146:27092

Cs-Move.xaa.pl - PaintBall - 178.19.106.150:27088

Forum - Cs-Move.xaa.pl


ZAPRASZAMY SERDECZNIE


#6 Leihto

    Wszechobecny

  • Użytkownik

Reputacja: 150
Profesjonalista

  • Postów:452
  • Lokalizacja:Rabka
Offline

Napisano 13.04.2011 15:24

public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
//tutaj kody.......
set_task(3.5, "wywal", 0)
//tutaj kody.......
}

To nie bedzie dzialac ;) Dlatego ze plugin_init jest przy zmianie mapy ;)

Zastosuj odpowiedniego eventa, lub wykonaj to gdy gracz sie spawnuje ;)

Czyli uzywajac hama tak:
RegisterHam(Ham_Spawn, "player", "funkcja", 1);


Pozdrawiam ;)

Użytkownik Blak Rajder edytował ten post 14.04.2011 15:00

  • +
  • -
  • 0
Portek: Za 20zł, to ja nawet notatnika nie otworze..

Nowe portfolio. Ciekawe artykuły, ciekawe przykłady: WojtusDEV.pl

#7 KariiO

    Super Hero

  • Power User

Reputacja: 396
Wszechpomocny

  • Postów:1 133
  • GG:
  • Imię:Korneliusz
  • Lokalizacja:Cieszyn
Offline

Napisano 13.04.2011 16:56

UP
Co Ty gadasz? Jaka zmiana mapy...
  • +
  • -
  • 0

#8 Knopers

    Nie patrz tak na mnie !

  • Przyjaciel

Reputacja: 588
Wszechwiedzący

  • Postów:2 013
  • GG:
  • Steam:steam
  • Imię:Mateusz
  • Lokalizacja:Cz-wa
Offline

Napisano 13.04.2011 17:18

Taka : plugin_init
  • +
  • -
  • 0

#9 Ortega

    mów mi Orti

  • Power User

Reputacja: 363
Wszechpomocny

  • Postów:640
  • GG:
  • Steam:steam
  • Imię:Marcin
  • Lokalizacja:Sosnowiec
Offline

Napisano 13.04.2011 17:19

@up
void C_ServerActivate_Post(edict_t *pEdictList, int edictCount, int clientMax)
{
	if (g_activated)
		RETURN_META(MRES_IGNORED);

	for (int i = 1; i <= gpGlobals->maxClients; ++i)
	{
		CPlayer	*pPlayer = GET_PLAYER_POINTER_I(i);
		pPlayer->Init(pEdictList + i, i);
	}

	executeForwards(FF_PluginInit);
	executeForwards(FF_PluginCfg);
Tak właśnie się zaczyna wykonywanie forwardu plugin_initialize.( amxmodx source 1.8.1 ) ServerActivate_Post wskazuje w sposób oczywisty, że po wykonaniu najważniejszych czynności ( precache ). Co de facto występuje po zmianie mapy albo przeładowaniu aplikacji.

Co do wątku można za pomocą rożnych eventów czy forwardów czy wirtualnych funkcji przechwycić to co chcesz ale najlepiej posłużyć się eventem nowej rundy bez zbędnych udziwnień. Oczywiście event ten nie posiada INDEKSU GRACZA ( bo niby skąd ), dlatego pobieranie 1 parametru jest bezsensowne.
  • +
  • -
  • 0

#10 EufooZ

    Profesjonalista

  • Autor tematu
  • Użytkownik

Reputacja: 25
Życzliwy

  • Postów:183
  • Lokalizacja:Łódź
Offline

Napisano 13.04.2011 18:02

Ale chyba i tak będzie działało... matko teraz to już kompletnie nic nie rozumiem..

Blak Rajder, nie pozdrawiaj bo walisz mi głupoty (nie co do set_task) jak byś poczytał ze zrozumieniem, to byś wiedział, że chcę wykonać to po danym czasie a nie od razu przy respie ......

Przecież jak się respi to wykonuje się czynność to tak samo jak co każdą runde co ileś czasu wykonuje się czynność ...

Dodano 13 kwiecień 2011 - 18:03:
Nie chce od nowej rundy bo to mnie zupełnie nie interesuje .

Dodano 13 kwiecień 2011 - 18:04:
Chcę aby co runde wykonywało daną czynność tak jak jest to w set_task po odstępie danego czasu tylko raz na runde od jej startu.
  • +
  • -
  • 0

Cs-Move.xaa.pl - JailBreak - 178.19.106.146:27092

Cs-Move.xaa.pl - PaintBall - 178.19.106.150:27088

Forum - Cs-Move.xaa.pl


ZAPRASZAMY SERDECZNIE


#11 Leihto

    Wszechobecny

  • Użytkownik

Reputacja: 150
Profesjonalista

  • Postów:452
  • Lokalizacja:Rabka
Offline

Napisano 14.04.2011 14:52

Blak Rajder, nie pozdrawiaj bo walisz mi głupoty (nie co do set_task) jak byś poczytał ze zrozumieniem, to byś wiedział, że chcę wykonać to po danym czasie a nie od razu przy respie ......


Widze ze myslenie zanika..

#include <amxmodx>
#include <hamsandwich>

public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
RegisterHam(Ham_Spawn, "player", "funkcja", 1)
}
public funkcja(id)
{
set_task(3.0, "wyrzuc")
}
public wyrzuc(id)
{
strip_user_weapons(id)
}


A dalej tak robisz..

#include <amxmodx>
#include <hamsandwich>

public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
RegisterHam(Ham_Spawn, "player", "funkcja", 1)
}
public funkcja(id)
{
set_task(3.0, "wyrzuc")
set_task(5.0, "menu_broni")
}
public wyrzuc(id)
{
strip_user_weapons(id)
}
public menu_broni(id)
{
menu = menu_create("Menu broni","menu_broni_wybierz")

menu_additem(menu,"Marker + HE")
menu_additem(menu,"Super Marker + HE (Tylko dla VIP)")
//tutaj kod leci dalej ....
}



@edit
Kody sa pisane w notatniku :<


@ i jeszcze jedno
Jak wykonasz eventa na poczatek rundy, to gdy osoba wejdzie chwile po poczatku to sie juz mu nie wykona akcja..

Użytkownik Blak Rajder edytował ten post 14.04.2011 14:59

  • +
  • -
  • 0
Portek: Za 20zł, to ja nawet notatnika nie otworze..

Nowe portfolio. Ciekawe artykuły, ciekawe przykłady: WojtusDEV.pl

#12 diablix

    emeryt

  • Przyjaciel

Reputacja: 507
Wszechwiedzący

  • Postów:663
  • GG:
  • Steam:steam
  • Imię:Daniel
  • Lokalizacja:Warszawa
Offline

Napisano 14.04.2011 16:21

Blak Rajder, nie pozdrawiaj bo walisz mi głupoty (nie co do set_task) jak byś poczytał ze zrozumieniem, to byś wiedział, że chcę wykonać to po danym czasie a nie od razu przy respie ......


Widze ze myslenie zanika..

#include <amxmodx>
#include <hamsandwich>

public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
RegisterHam(Ham_Spawn, "player", "funkcja", 1)
}
public funkcja(id)
{
set_task(3.0, "wyrzuc")
}
public wyrzuc(id)
{
strip_user_weapons(id)
}


A dalej tak robisz..

#include <amxmodx>
#include <hamsandwich>

public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
RegisterHam(Ham_Spawn, "player", "funkcja", 1)
}
public funkcja(id)
{
set_task(3.0, "wyrzuc")
set_task(5.0, "menu_broni")
}
public wyrzuc(id)
{
strip_user_weapons(id)
}
public menu_broni(id)
{
menu = menu_create("Menu broni","menu_broni_wybierz")

menu_additem(menu,"Marker + HE")
menu_additem(menu,"Super Marker + HE (Tylko dla VIP)")
//tutaj kod leci dalej ....
}



@edit
Kody sa pisane w notatniku :<


@ i jeszcze jedno
Jak wykonasz eventa na poczatek rundy, to gdy osoba wejdzie chwile po poczatku to sie juz mu nie wykona akcja..


Bzdury.. jak chcesz wykonać task skoro nie nadałeś indeksu?

#include <amxmodx>
#include <hamsandwich>

#define TASK_INFO 1337

static const VERSION[] = "0.1";

public plugin_init() {
register_plugin("Task po odrodzeniu", VERSION, "diablix");
RegisterHam(Ham_Spawn, "player", "eventPlayerSpawn", 1);
}

public eventPlayerSpawn(id){
if(task_exists(TASK_INFO + id)) remove_task(TASK_INFO + id);
set_task(3.0, "showMessage", TASK_INFO + id);
}

public showMessage(id){
id -= TASK_INFO;

client_print(id, 3, "Task zostak wykonany!");
}

  • +
  • -
  • 0




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

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