Chcialbym sie spytac jak moge wywolac funkcje po szybkim kliknieciu klawisza? Czyli np ktos kliknie szybko 2x "W" to funkcja sie wywola a jak pusci klawisz to przestanie byc uzyta.
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.
|
[ROZWIĄZANE] wywolanie funkcji po szybkim kliknieciu 2x klawisza
#2
Napisano 10.11.2013 16:21
Piszę pluginy pod: AMX MOD X oraz SOURCE MOD!
Na zlecenie i bez zlecenia zresztą też!
#4
Napisano 10.11.2013 17:05
Kick All (administracja) - Wyrzuca graczy nakładając hasło na serwer.
Zlecenie Zabójstwa (4FUN) - Przyjmij zlecenie, wykonaj je, zdobądź punkty, a następnie wydaj je na dodatki, które pozwolą ci skuteczniej i szybciej wykonywać zlecenia.
#6
Napisano 10.11.2013 19:16
Kick All (administracja) - Wyrzuca graczy nakładając hasło na serwer.
Zlecenie Zabójstwa (4FUN) - Przyjmij zlecenie, wykonaj je, zdobądź punkty, a następnie wydaj je na dodatki, które pozwolą ci skuteczniej i szybciej wykonywać zlecenia.
#8
Napisano 10.11.2013 21:29
Przejrzalem nieco kod i jakby ktos chcial to zamieszczam gotowy kod jak tu uzycie funkcji mniej wiecej powinno wygladac (usunalem to co zbedne wystarczy wklepac swoj kod)
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <fakemeta>
#include <hamsandwich>
#define PLUGIN "Sprint"
#define VERSION "1.0"
#define AUTHOR "DarkGL"
#define MAX 32
enum sprintState
{
SPRINT_OFF ,
SPRINT_FIRST_FORWARD ,
SPRINT_NOT_FORWARD ,
SPRINT_ON
}
new sprintState: ePlayerState[MAX+1];
new Float: fTimePlayer[MAX+1];
new pCvarTimeDelay = 0
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
pCvarTimeDelay = register_cvar("sprintMinecraft_delay" , "0.5");
register_forward(FM_PlayerPreThink, "fwPreThink");
}
public client_connect(id)
{
cleanInformation(id);
}
public client_disconnect(id)
{
cleanInformation(id);
}
cleanInformation(id)
{
fTimePlayer[id] = 0.0;
ePlayerState[id] = SPRINT_OFF;
}
bool: checkTime(id)
{
return(get_gametime() - fTimePlayer[id] <= get_pcvar_float(pCvarTimeDelay));
}
public startMove(id)
{
ePlayerState[id] = SPRINT_ON;
fTimePlayer[id] = 0.0;
// dalszy kod wlaczonej funkcji
}
public stopMove(id)
{
ePlayerState[id] = SPRINT_OFF;
fTimePlayer[id] = 0.0;
// dalszy kod wylaczonej funkcji
}
public fwPreThink(id)
{
if(!is_user_alive(id))
{
return PLUGIN_CONTINUE;
}
new iButton = pev(id , pev_button);
new iOldButton = pev(id , pev_oldbuttons);
switch(ePlayerState[id])
{
case SPRINT_ON:
{
if(!(iButton & IN_FORWARD))
{
stopMove(id)
}
}
case SPRINT_OFF:
{
if(iButton & IN_FORWARD && !(iOldButton & IN_FORWARD))
{
fTimePlayer[id] = get_gametime();
ePlayerState[id] = SPRINT_FIRST_FORWARD;
}
}
case SPRINT_FIRST_FORWARD:
{
if(!checkTime(id))
{
cleanInformation(id);
return PLUGIN_CONTINUE;
}
if(!(iButton & IN_FORWARD))
{
ePlayerState[id] = SPRINT_NOT_FORWARD;
}
}
case SPRINT_NOT_FORWARD:
{
if(!checkTime(id))
{
cleanInformation(id);
return PLUGIN_CONTINUE;
}
if(iButton & IN_FORWARD)
{
startMove(id);
}
}
}
return PLUGIN_CONTINUE;
}
// mozna zamknac, pomoc udzielona ![]()
Użytkownik window edytował ten post 10.11.2013 21:42
#9
Napisano 10.11.2013 22:59
Ten temat został zamknięty przez moderatora.
Powód: Pomoc udzielona
Jeśli się z tym nie zgadzasz,
raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.Z pozdrowieniami,
Zespół AMXX.PL
Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo
Użytkownicy przeglądający ten temat: 0
0 użytkowników, 0 gości, 0 anonimowych


Dodatki SourceMod



Temat jest zamknięty










