[0.3x] Kick() funkció javítása

Indította Live, 2013. február 26. - 17:49:39

Előző téma - Következő téma

Live

Üdv fórumozó(k)!
Gondoltam leírom ide, hogy kell megcsinálni a Kick funkciót, hogy mûködjön, ugyanis a 0.3x-ben a sima
 
SendClientMessage(playerid, -1, \"TESZT\"); 
Kick(playerid);

 
már nem mûködik....
Nos, nézzük a javítást:
 
forward NewKick(playerid);
public NewKick(playerid) { Kick(playerid); }
NKick(playerid) { SetTimerEx(\"NewKick\", 1000, 0, \"d\", playerid); }

 
Használat:
 
//Ide ugyan úgy jönnek a funkciók
//Példa: ShowPlayerDialog(playerid, KICK, DIALOG_STYLE_MSGBOX, \"* Kickelve lettél!\", \"Te kickelve lettél a szerverrõl...\", \"OK\", \"\");
NKick(playerid);

Rupert


Dommper

Idézetet írta: Rupert date=1361898115\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"34217\" data-ipsquote-contentclass=\"forums_TopicMiért ne mûködne a Kick?
 
Mert nem írja ki az indokot, vagy legalábbis a szöveget.
Csak egyszerûen: \"Server closed the connection\"

Csabesz

Idézetet írta: Dommper date=1361899245\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"34217\" data-ipsquote-contentclass=\"forums_Topic

Miért ne mûködne a Kick?
 
Mert nem írja ki az indokot, vagy legalábbis a szöveget.
Csak egyszerûen: \"Server closed the connection\"
 
[/quote]
Hát ez nem csak 0.3x-nél vagy így, már elég rég.
Ennek oka 1xü. A Kick valamiért hamarabb lefut mint a SendClientMessage.
Hiába a mûveleti sorrend, ha a Kick nagy polaritású mint a SCM.

Rupert

Idézetet írta: Csabesz date=1361901951\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"34217\" data-ipsquote-contentclass=\"forums_Topic

 

Miért ne mûködne a Kick?
 
Mert nem írja ki az indokot, vagy legalábbis a szöveget.
Csak egyszerûen: \"Server closed the connection\"
 
[/quote]
Hát ez nem csak 0.3x-nél vagy így, már elég rég.
Ennek oka 1xü. A Kick valamiért hamarabb lefut mint a SendClientMessage.
Hiába a mûveleti sorrend, ha a Kick nagy polaritású mint a SCM.
 
[/quote]
Na de ha a Kick() elõtt valami más függvény van, ami nem SCM?

Csabesz

Idézetet írta: Rupert date=1361903664\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"34217\" data-ipsquote-contentclass=\"forums_TopicNa de ha a Kick() elõtt valami más függvény van, ami nem SCM?
 
Jó kérdés, ez a sa-mptól függ, hogy melyik függvényt h kezeli.  :)
De ennél így van, ezt tapasztalhatjuk...

Live

Hát nekem a régebbi verziókban tökéletesen lefut minden :)
Ezért is maradok 0.3e-nél.

lackos888

Idézetet írta: Live date=1361897379\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"34217\" data-ipsquote-contentclass=\"forums_TopicÜdv fórumozó(k)!
Gondoltam leírom ide, hogy kell megcsinálni a Kick funkciót, hogy mûködjön, ugyanis a 0.3x-ben a sima
 
SendClientMessage(playerid, -1, \"TESZT\"); 
Kick(playerid);

 
már nem mûködik....
Nos, nézzük a javítást:
 
forward NewKick(playerid);
public NewKick(playerid) { Kick(playerid); }
NKick(playerid) { SetTimerEx(\"NewKick\", 1000, 0, \"d\", playerid); }

 
Használat:
 
//Ide ugyan úgy jönnek a funkciók
//Példa: ShowPlayerDialog(playerid, KICK, DIALOG_STYLE_MSGBOX, \"* Kickelve lettél!\", \"Te kickelve lettél a szerverrõl...\", \"OK\", \"\");
NKick(playerid);

 

Ez helyett én még egyszerûbbet csináltam:
 

forward Kick2(playerid);
public Kick2(playerid){
Kick(playerid);
return 1;
}
stock _Kick(playerid){
SetTimerEx(\"Kick2\", 100, 0, \"d\", playerid);
return 1;
}
#define Kick _Kick

 
Ez ha használod a Kick funkciót, automatikusan nem egybõl hívódik meg, így akár az SCM is lefut.

Hun_Norberto

Idézetet írta: lackos888 date=1361909373\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"34217\" data-ipsquote-contentclass=\"forums_TopicEz helyett én még egyszerûbbet csináltam:
 

forward Kick2(playerid);
public Kick2(playerid){
Kick(playerid);
return 1;
}
stock _Kick(playerid){
SetTimerEx(\"Kick2\", 100, 0, \"d\", playerid);
return 1;
}
#define Kick _Kick

 
Ez ha használod a Kick funkciót, automatikusan nem egybõl hívódik meg, így akár az SCM is lefut.
 
Csak ezzel az a baj, hogy a Kick már definiálva van:
 

forward Kick2(playerid);
public Kick2(playerid){
Kick(playerid); //Nem tudom, mûködik-e igy, ha nem, akkor ez fölé irsz egy funkciót, ami kidobja, majd azt irod ide
return 1;
}
stock temp_Kick(playerid){
SetTimerEx(\"Kick2\", 100, 0, \"d\", playerid);
return 1;
}
#if defined _ALS_Kick
#undef Kick
#else
#define _ALS_Kick
#endif
#define Kick temp_Kick

lackos888

#9
Idézetet írta: Hun_Norberto date=1362248209\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"34217\" data-ipsquote-contentclass=\"forums_Topic

Ez helyett én még egyszerûbbet csináltam:
 

forward Kick2(playerid);
public Kick2(playerid){
Kick(playerid);
return 1;
}
stock _Kick(playerid){
SetTimerEx(\"Kick2\", 100, 0, \"d\", playerid);
return 1;
}
#define Kick _Kick

 
Ez ha használod a Kick funkciót, automatikusan nem egybõl hívódik meg, így akár az SCM is lefut.
 
Csak ezzel az a baj, hogy a Kick már definiálva van:
 

forward Kick2(playerid);
public Kick2(playerid){
Kick(playerid); //Nem tudom, mûködik-e igy, ha nem, akkor ez fölé irsz egy funkciót, ami kidobja, majd azt irod ide
return 1;
}
stock temp_Kick(playerid){
SetTimerEx(\"Kick2\", 100, 0, \"d\", playerid);
return 1;
}
#if defined _ALS_Kick
#undef Kick
#else
#define _ALS_Kick
#endif
#define Kick temp_Kick

 

[/quote]
KHM, próbáld ki, 100%-ban mûködik amit én írtam, akkor nem írtam volna le, ha nem mûködik, csak a gamemode/filterscript majdnem legelejére kell tenni az én kódomat.

Sramm

Idézetet írta: Hun_Norberto date=1362248209\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"34217\" data-ipsquote-contentclass=\"forums_Topic

Ez helyett én még egyszerûbbet csináltam:
 

forward Kick2(playerid);
public Kick2(playerid){
Kick(playerid);
return 1;
}
stock _Kick(playerid){
SetTimerEx(\"Kick2\", 100, 0, \"d\", playerid);
return 1;
}
#define Kick _Kick

 
Ez ha használod a Kick funkciót, automatikusan nem egybõl hívódik meg, így akár az SCM is lefut.
 
Csak ezzel az a baj, hogy a Kick már definiálva van:
 

forward Kick2(playerid);
public Kick2(playerid){
Kick(playerid); //Nem tudom, mûködik-e igy, ha nem, akkor ez fölé irsz egy funkciót, ami kidobja, majd azt irod ide
return 1;
}
stock temp_Kick(playerid){
SetTimerEx(\"Kick2\", 100, 0, \"d\", playerid);
return 1;
}
#if defined _ALS_Kick
#undef Kick
#else
#define _ALS_Kick
#endif
#define Kick temp_Kick

 

[/quote]
Az lehet, csakhogy ezzel felülírja az elõzõ definíciót lackos, felesleges elõtte \"kiiktatni\" az elõzõ definíciót..

Rupert

[mod] Fejezzétek be az idézgetést. [/mod]

krisk

Ha valaki még nem fogta volna fel: a probléma az, hogy a Kick(); függvény elõtt álló SCM-ek nem futnak le, nem az, hogy szar a kick parancs.

Sramm

krisk, senki nem mondta, hogy a Kick() utasítás rossz...

Hun_Norberto

Idézetet írta: krisk date=1362374236\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"34217\" data-ipsquote-contentclass=\"forums_TopicHa valaki még nem fogta volna fel: a probléma az, hogy a Kick(); függvény elõtt álló SCM-ek nem futnak le, nem az, hogy sz*r a kick parancs.
 
Ezt azzal akarnánk megoldani, hogy késõbb fusson le a Kick parancs...