←  Problemy

AMXX.pl: Support AMX Mod X i SourceMod

»

Uzywanie czegos co 2 sekundy, ale blokuje...

  • +
  • -
MalySzkrab3k's Photo MalySzkrab3k 09.12.2012

Witam, przeobilem troche plugi na adminhook, a mianowicie dopisalem kod ktory blokuje linke na 2 sekundy. Wyszlo mi to dziwnie poniewaz zamiast blokowac dla Tej osoby co uzyla to blokuje dla kazdego. Moglby mi ktos podpowiedziec co zrobilem zle?

Spoiler
Quote

  • +
  • -
K!113r's Photo K!113r 09.12.2012

Chyba trochę źle blokujesz, ja bym blokował i uruchamiał taska na odblokowanie bo rzucie "linki"

Co do blokady wszystkim... zmień mozepuscic na mozebuscic[33] (a potem w funkcji mozepuscic[id]).
Musi to być tablica, gdyż każdy gracz ma wartość dla siebie czy ma zablokowane czy nie, jeżeli była jedna taka komórka przechowująca wartość czy można czy nie (a graczy może być aż 32) to jak chciałeś każdemu z osobna zapamiętać?
Quote

  • +
  • -
MalySzkrab3k's Photo MalySzkrab3k 09.12.2012

A gdzie powinienem zmieniuc zeby bylo po żucie linki ? Doisac zamiast do Hook_on to do Hook_off?

Ok, zmienilem kod skomilowalem i wgralem, teraz ciagle od jak probuje to uzyc piusze "Mozesz uzyc o uplywnie 2 sekund", jak to naprawic ?

Spoiler
Quote

  • +
  • -
K!113r's Photo K!113r 09.12.2012

Taska na odblokowanie wywołuj po rzucie "linki"
Quote

  • +
  • -
MalySzkrab3k's Photo MalySzkrab3k 09.12.2012

No jest przeciez

   if (!gIsHooked[id] && is_user_alive(id))
   {
		new cmd[32]
		read_argv(0,cmd,31)
		if(equal(cmd,"+rope")) RopeAttach(id,0)
		if(equal(cmd,"+hook")) RopeAttach(id,1)
		set_task(0.1,"NowaRunda")
   }

Edited by MalySzkrab3k, 09.12.2012 19:20.
Quote

  • +
  • -
K!113r's Photo K!113r 09.12.2012

Twoja funkcja NowaRunda to event nowej rundy, który nie posiada parametru id, bo jest to zdarzenie globalne, a nie dotyczące poszczególnego gracza. (i id w takim wypadku powinno być równe 0)
Dodatkowo wywołujesz ją w tasku, czyli parametr "id" tej funkcji przybierze numer indeksu tego wywołanego taska, jeżeli id będzie większe niż 32 to może wystąpić crash/sypanie w logach. (przekroczenie elementów Twojej tablicy)
Quote

  • +
  • -
MalySzkrab3k's Photo MalySzkrab3k 09.12.2012

Przerobilem na cos takiego
ale dalej nie moge jej uzywac ...
Spoiler

Kawon (10.12.2012 13:39):
Kod w postach (np. źródło pluginu) umieszczaj w odpowiednich tagach (code/php/spoiler itp), a powyżej 200 linijek tylko w załączniku lub na wklejce.
Quote

  • +
  • -
GwynBleidD's Photo GwynBleidD 10.12.2012

Zmień
set_task(0.1,"blokuj") 

na
set_task(0.1,"blokuj",id) 


Tak samo przy set_task odblokuj
Quote