Jump to content
  • 0

pomoc [HELP] Teleport anti noobs


R0cky

Dotaz

Čaute, mam taký problem neviem ako mam začit to delat ale nevyšlo my to no chtel bych celej kod na promennu aby delala to že hrač se portuje do 5 sekund ho to ma portnut ale pokud ho nekdo trefi do tych 5 sekund napřiklad:

 

Hrač ma 100 HP - napsál príkaz /teleport

 

O 3 sekundy se stane že ho nekdo trefi teď ma 60 HP a ma to udelať to že zruši mu ten teleport proste

 

Timer 1 sekunda opakovat a po 5 sekundach portnut ale pokud ho nekdo do 5 sekund nekdo trefi Killtimer.

Link to comment
Share on other sites

Recommended Posts

  • 0

použi len killtimer, settimerex a callback onplayertakedamage.

Problem je že ja bych to najprv musel videt ten kód abych to pochopil víš ja jsem pomalej chápaci človek :)

Link to comment
Share on other sites

  • 0

Ja bych se divil, kdyby ti tady nekdo dal cely kod :d

Mne najprv napadlo takova vec že dam timer 1 jednu sec a vtom bude

 

new Float:health1;

GetPlayerHealth(playerid,health1);

 

Pak novej Timer kde bylo:

 

new Float:health2;

GetPlayerHealth(playerid,health2);

if (health > health2)

{

 

}

 

Ale nevím.

Link to comment
Share on other sites

  • 0

v prikaze si do globalnej premennej uloz hp hraca, potom v timeri kontroluj ci je ine.

No práve že ja nevim jak :d Lebo sem retard ma to byť takhle:

if (strcmp("/teleport", cmdtext, true, 10) == 0)
{
        SetTimerEx("Teleport",1000,false,"i",playerid);
        SCM(playerid,COLOR_RED,[ ! ] Za 5 sekund budeš teleportovan, pokial ta niekdo postreli teleport sa zruši.");
        new Float:health;
        GetPlayerHealth(playerid,health);
}

forward Teleport(playerid);
public Teleport(playerid)
{
        new Float:health2;
        GetPlayerHealth(playerid,health2);
        if (health = health2)
        {
                SetTimerEx("Teleport2",1000,false,"i",playerid);
        }
        if (health > health2)
        {
                SCM(playerid,COLOR_RED,"[ ! ] Byl si postrelen, teleport se ruši");
        }
}

forward Teleport2(playerid);
public Teleport2(playerid)
{
        new Float:health2;
        GetPlayerHealth(playerid,health2);
        if (health = health2)
        {
                SetTimerEx("Teleport3",1000,false,"i",playerid);
        }
        if (health > health2)
        {
                SCM(playerid,COLOR_RED,"[ ! ] Byl si postrelen, teleport se ruši");
        }
}

ATD... až po 5

forward Teleport5(playerid);
public Teleport5(playerid)
{
        new Float:health2;
        GetPlayerHealth(playerid,health2);
        if (health = health2)
        {
                SetPlayerPos(playerid,-1,-1,-1);
        }
        if (health > health2)
        {
                SCM(playerid,COLOR_RED,"[ ! ] Byl si postrelen, teleport se ruši");
        }
}

Nevim jestli to je dobře a myslite že by to šlo nechci si do davat do FS lebo pak by sem mnel vetši starost to mazáť :d

Link to comment
Share on other sites

  • 0

 

 

No práve že ja nevim jak :d Lebo sem retard ma to byť takhle:

if (strcmp("/teleport", cmdtext, true, 10) == 0)
{
        SetTimerEx("Teleport",1000,false,"i",playerid);
        SCM(playerid,COLOR_RED, "[ ! ] Za 5 sekund budeš teleportovan, pokial ta niekdo postreli teleport sa zruši.");
        new Float:health;
        GetPlayerHealth(playerid,health);
}

forward Teleport(playerid);
public Teleport(playerid)
{
        new Float:health2;
        GetPlayerHealth(playerid,health2);
        if (health = health2)
        {
                SetTimerEx("Teleport2",1000,false,"i",playerid);
        }
        if (health > health2)
        {
                SCM(playerid,COLOR_RED,"[ ! ] Byl si postrelen, teleport se ruši");
        }
}

forward Teleport2(playerid);
public Teleport2(playerid)
{
        new Float:health2;
        GetPlayerHealth(playerid,health2);
        if (health = health2)
        {
                SetTimerEx("Teleport3",1000,false,"i",playerid);
        }
        if (health > health2)
        {
                SCM(playerid,COLOR_RED,"[ ! ] Byl si postrelen, teleport se ruši");
        }
}

ATD... až po 5

forward Teleport5(playerid);
public Teleport5(playerid)
{
        new Float:health2;
        GetPlayerHealth(playerid,health2);
        if (health = health2)
        {
                SetPlayerPos(playerid,-1,-1,-1);
        }
        if (health > health2)
        {
                SCM(playerid,COLOR_RED,"[ ! ] Byl si postrelen, teleport se ruši");
        }
}

Nevim jestli to je dobře a myslite že by to šlo nechci si do davat do FS lebo pak by sem mnel vetši starost to mazáť :d

 

 

Nevím proč tam máš zbytečně tolikrát teleport ..

zde máš celý kód...

 

 

new teleport[MAX_PLAYERS]; // někam do gamemode...
new PortujeSe[MAX_PLAYERS];

if (strcmp("/teleport", cmdtext, true, 10) == 0)
{
        SCM(playerid,COLOR_RED, "[ ! ] Za 5 sekund budeš teleportovan, pokial ta niekdo postreli teleport sa zruši.");
        new Float:health;
        GetPlayerHealth(playerid,health);
        teleport[playerid] = SetTimerEx("teleport", 5000, true, "i", playerid);
        PortujeSe[playerid] = 1;
}

forward Teleport(playerid);
public Teleport(playerid)
{
        SetPlayerPos(playerid,-1,-1,-1);
        PortujeSe[playerid] = 0;
}

public OnPlayerTakeDamage(playerid, issuerid, Float: amount, weaponid, bodypart)
{
    if(issuerid != INVALID_PLAYER_ID)
    {
        new string[128];
        KillTimer(teleport[playerid]);
        PortujeSe[playerid] = 0;
        new hrac[25];
        GetPlayerName(issuerid, hrac, sizeof(hrac));
        format(string, sizeof(string), "Byl jsi zasažen hráčem %s teleport se ruší", hrac);
        SendClientMessage(playerid, COLOR-RED, string);
    }
    return 1;
} 

 

 

Nemáš zač, myslím si že toto by mělo fungovat.

Edited by arci224
Link to comment
Share on other sites

  • 0

 

~> Hned po napsání příkazu ho už portne.

~> Těmi timery jsi vlastně "vytvořil" dva callbacky ale voláš tam jenom ten jeden.

~> Formátuješ proměnnou ale nic více s ní neděláš.

~> Když ho to neportne, proč ho zabiješ?

~> Takže, jestli to SPRÁVNĚ funguje, tak by to byl zázrak...

 

Prosim:

 

 

new 
	tPorting[MAX_PLAYERS],
	bool: bPorting[MAX_PLAYERS char];

public 
	OnPlayerCommandText(...) {

	if (!strcmp(cmdtext, "/teleport")) {

		...
		bPorting{playerid} = true;
		tPorting[playerid] = SetTimerEx("pPorting", 5000, false, "i", playerid);
		return true;
	}
	return false;
}

forward pPorting(playerid); public pPorting(playerid) {

	SetPlayerPos(playerid, ...); /* Úspěšně se portne */
}

public 
	OnPlayerTakeDamage(...) {

	if(issuerid != INVALID_PLAYER_ID) {

		if (bPorting{playerid}) {

			KillTimer(tPorting[playerid]); bPorting{playerid} = false;
			new 
				sString[144 + 1],
				sNick[MAX_PLAYER_NAME + 1];
			GetPlayerName(issuerid, sNick, sizeof(sNick));
			format(sString, sizeof(sString), ..., sNick);
			SendClientMessage(..., sString);
		}

 

 

~> Doplň si to, a po případě oprav, kdybych se někde seknul. Btw, nezapomeň ještě na OnPlayerDisconnect().

Link to comment
Share on other sites

  • 0

~> Hned po napsání příkazu ho už portne.

~> Těmi timery jsi vlastně "vytvořil" dva callbacky ale voláš tam jenom ten jeden.

~> Formátuješ proměnnou ale nic více s ní neděláš.

~> Když ho to neportne, proč ho zabiješ?

~> Takže, jestli to SPRÁVNĚ funguje, tak by to byl zázrak...

 

Prosim:

 

 

new
new 
	tPorting[MAX_PLAYERS],
	bool: bPorting[MAX_PLAYERS char];

public 
	OnPlayerCommandText(...) {

	if (!strcmp(cmdtext, "/teleport")) {

		...
		bPorting{playerid} = true;
		tPorting[playerid] = SetTimerEx("pPorting", 5000, false, "i", playerid);
		return true;
	}
	return false;
}

forward pPorting(playerid); public pPorting(playerid) {

	SetPlayerPos(playerid, ...); /* Úspěšně se portne */
}

public 
	OnPlayerTakeDamage(...) {

	if(issuerid != INVALID_PLAYER_ID) {

		if (bPorting{playerid}) {

			KillTimer(tPorting[playerid]); bPorting{playerid} = false;
			new 
				sString[144 + 1],
				sNick[MAX_PLAYER_NAME + 1];
			GetPlayerName(issuerid, sNick, sizeof(sNick));
			format(sString, sizeof(sString), ..., sNick);
			SendClientMessage(..., sString);
		}

 

 

~> Doplň si to, a po případě oprav, kdybych se někde seknul. Btw, nezapomeň ještě na OnPlayerDisconnect().

 

No když tedy opravuješ ty mě tak já tebe.

Hned 1. řádek a hned chyba .. neuzavřené new. viz hned tam máš 2x new. :*

Link to comment
Share on other sites

  • 0

No když tedy opravuješ ty mě tak já tebe.

Hned 1. řádek a hned chyba .. neuzavřené new. viz hned tam máš 2x new. :*

~> To je minimální chyba oproti tvým kravinám :d ... btw "neuzavřené new" je blbost. Říká se deklarování. Nebo, věř tomu nebo ne, ale má to i svůj vlastní název a to keyword... uzavírání máš např. u polí.

~> Jo a ještě, sice fajn, že jsi to upravil, ale furt jsou tam blbosti... například hned na začátku. K čemu ti bude vědět lokálně jeho život?

Link to comment
Share on other sites

  • 0

No když tedy opravuješ ty mě tak já tebe.

Hned 1. řádek a hned chyba .. neuzavřené new. viz hned tam máš 2x new. :*

vole... tam 2x žádné new nebylo..

Edited by Steam wallet
Link to comment
Share on other sites

  • 0

K cemu tam mate dve pole, kdyz to, zda se portuje poznate podle id timeru?

~> Protože autor je jen ***** kopírák a nezaslouží si kvalitní kód....

 

 

:d #noKappa

 

Link to comment
Share on other sites

  • 0

~> Protože autor je jen ***** kopírák a nezaslouží si kvalitní kód....

 

 

:d #noKappa

 

Jo ggwp ja jsem kopírak, jžš prosím ťe už nebuzeruj lidi. :) Vtom připade každej kopiruje GetPlayerHealth hele už kopíruju a viš koho? No nevíš protože si to nikde nevidel :) Mohla to použit cca 10 tisíc lidi tenhle kód čo sem napsal ja jsem ptám na něco a delám to rýchle kdybych to kopíroval tak my to trva i 2 roky... Btw už 1 měsic programuju mód a ma pres 6500 řadku a hovoriš my kopírak že? ... Boha prosim ťe spamatuj se seš trapnej a stým že píšeš všade te tvoje ~> už je fakt okopirovane to můžu ricť že seš nejakej kluk kterého doma mlaťej aby se učil pawn a pak prídeš na Pawno. cz a každeho tady buzeruješ. :)

Link to comment
Share on other sites

  • 0

Nauč se základy. Nic neumíš, tvůj mód stojí za hov a na 6500 řádků dokáže nacpat pouze definice barev každý. Píšeš tu o radu s každou blbostí, ale nějaká tvoje snaha se něco naučit to ne..

 

+ hned v prvním příspěvku ti napíšou, co a jak udělat a nejsi schopný to nakódovat.. lol

Edited by Lukasz
Link to comment
Share on other sites

  • 0

Nauč se základy. Nic neumíš, tvůj mód stojí za hov a na 6500 řádků dokáže nacpat pouze definice barev každý. Píšeš tu o radu s každou blbostí, ale nějaká tvoje snaha se něco naučit to ne..

 

+ hned v prvním příspěvku ti napíšou, co a jak udělat a nejsi schopný to nakódovat.. lol

Je videť že komunita pawno. cz stoji za ho*no. Jenom tadý každy ***** dojte a řika si jakej ja pawner ja neřikam že sem dobrej ale zato že z nepouživam OnPlayerTakeDamage tak stým mam vedet delat? -_- Chtel bych vedeť tebe ako si začinal si jenom dalši idiot který si mysli že všechno umi si mysliš že sedím jenom pri počítači?? Se uvedom prosim ťe seš jenom vychrtnutej človečik jedno ranou by te nekdo vypnul a hned by si se rozbrečel tým že se te nekdo dotkne tak prosím te radši se neozivej. :) Ty si nič nenapsal a nauč se čist psal sem rýchle nemnel sem čas tak sem to tady šupnul a šem sem ven :) A čekal sem že my nekdo pomůže ale zato že seš **** a dojdeš sem a poviš jenom proč tam maš 2x timer Asi proto že sem chtel udelat to že 1x zisti Jeho Health a na druhu sekundu jenom zistuje jeho druhy health a pokůd jeho Health1 je vetši než Health2 čo znamena že 1: např: 90 a 2: např: 89 tak je vetši prvy tak sem myslel že to bude fungovat a vi ne vy dáte OnPlayerTakeDamage s ktorým sem nikdy nepracoval a mam stoho pochopiť něco ? ... Nepsal sem tu 3 měsice nič a napišu jenom jednu vec že potrebuju pomoc a ty hned musiš buzerat ku*va... Za to že sem se veľa pital neznamena že sem nejakej kopírak znašim se něco učit a jenom se tady strapnuješ ty my svojimi jeblimi poznamkami. A ešte ti něco doporučuji bež k očnimu nebo se nauč čisť dobre ? ?? Ty asi pawn neumiš když sem psal že 5 sekund do portu... Tak asi logicky sem použil 2 timeri ty kdyby si začinal tak tam daš 50 timeru lebo to daš na 50 ms ...

Link to comment
Share on other sites

  • 0


new tPorting[MAX_PLAYERS];

forward pPorting(playerid);

public OnPlayerCommandText(...) {
if (!strcmp(cmdtext, "/teleport")) {
tPorting[playerid] = SetTimerEx("pPorting", 5000, false, "i", playerid);
return true;
}

return false;
}

public pPorting(playerid) {
SetPlayerPos(playerid, ...); /* Úspěšně se portne */
}

public OnPlayerTakeDamage(...) {
if(issuerid != INVALID_PLAYER_ID) {
if (tPorting[playerid] != -1) {
KillTimer(tPorting[playerid]);
tPorting[playerid] = -1;
new
sString[144 + 1],
sNick[MAX_PLAYER_NAME + 1];
GetPlayerName(issuerid, sNick, sizeof(sNick));
format(sString, sizeof(sString), ..., sNick);
SendClientMessage(..., sString);
}

 

Edited by サトシ
  • Líbí se mi to! (+1) 1
Link to comment
Share on other sites

  • 0
new tPorting[MAX_PLAYERS];

forward pPorting(playerid);

public OnPlayerCommandText(...) {
	if (!strcmp(cmdtext, "/teleport")) {
		tPorting[playerid] = SetTimerEx("pPorting", 5000, false, "i", playerid);
		return true;
	}

	return false;
}

public pPorting(playerid) {
	SetPlayerPos(playerid, ...); /* Úspěšně se portne */
}

public OnPlayerTakeDamage(...) {

	if(issuerid != INVALID_PLAYER_ID) {

		if (tPorting[playerid]) {

			KillTimer(tPorting[playerid]);
			new 
				sString[144 + 1],
				sNick[MAX_PLAYER_NAME + 1];
			GetPlayerName(issuerid, sNick, sizeof(sNick));
			format(sString, sizeof(sString), ..., sNick);
			SendClientMessage(..., sString);
		}

No, ďekuju za snahu ale nepotřebuju použil sem svůj Timer který aj fungoval nechci tady už pomáhať protože nejsou tadý dobré vychovani lidi. :) Ale aj tak ďekuju dúfam že se to nekomu bude hodit pretože se to hodi  tak na nejakej server kde maš porti a nechceš aby se ty hráč portnul pred nosem, když práve nanho stríliš

Link to comment
Share on other sites

  • 0

No, ďekuju za snahu ale nepotřebuju použil sem svůj Timer který aj fungoval nechci tady už pomáhať protože nejsou tadý dobré vychovani lidi. :) Ale aj tak ďekuju dúfam že se to nekomu bude hodit pretože se to hodi  tak na nejakej server kde maš porti a nechceš aby se ty hráč portnul pred nosem, když práve nanho stríliš

došlo ti že on ti poslal to co poslal SkiBig? asi ne..

  • Líbí se mi to! (+1) 1
Link to comment
Share on other sites

  • 0

 

~> Ano, mám dost dobrý důvod tě nazývát kopírákem, protože jím jseš. Jen zkopírováváš kódy z wiki(ten krásně obarvený text není vůbec nápadný Kappa) nebo z jiných zdrojů, přidáváš je sem, aby to vypadalo, že víš o čem je řeč

~> Zajímavé, že vždycky uživatel, který neumí ovládat pawn, nebo umí ale dost blbě, tak neumí snést kritiku nebo požadavek, aby se naučil to pawn pořádně, tak slýchávám furt, abych je "přestal buzero-vat"... ale od takových lidí typu Luky, Petr, Xogos... jsem ještě neslyšel, abych je přestal buzero vat. Náhoda?

~> Postup s myší a klávesy CTRL C + V opravdu nikomu ještě netrval přes 2 roky. Takže další hloupý argument.

~> Kdybych měl přestat spamovat(jak ty říkáš), tak to bych musel přestat psát úplně, jelikož já píšu jeden příspěvek až po každém uživateli/po každých uživatelích. Nikdy nepřidávám 2 příspěvky po sobě, maximálně je upravím.

~> A když jsme u kritizování mého způsob přispívání, tak zkritizujeme i tvůj: mluvíš všude o osobě a stejně píšeš "my", tvoje věty ve 50% nedávají vůbec smysl, nemluvě o blbě použité diakritice, čárkách, souvětí či i pitomé interpunkci.

 

Je videť že komunita pawno. cz stoji za ho*no. Jenom tadý ...(více)

~> Projdi každý můj příspěvek a ocituj mi alespoň JEDEN příspěvek, kde přesně píšu, že "umím pawn(o)", nebo, že ho umím lépe než kdokoliv tady. Ušetřím ti hledání, nenajdeš žádné.

~> " Se uvedom prosim ťe seš jenom vychrtnutej človečik jedno ranou by te nekdo vypnul a hned by si se rozbrečel tým že se te nekdo dotkne tak prosím te radši se neozive"... Hlavně, že ty už se vztekáš a pláčeš jen po pár příspěvcích...

~> "a nauč se čist"... a ty se nauč sestavovat smyslu plné věty a vlastně všeobecně psát.

~> "psal sem rýchle nemnel sem čas tak sem to tady šupnul a šem sem ven" ... jo ale děláš na gamemodě měsíc... když tak pospícháš, kde na něj bereš čas?

~> Hlavně, že nabízíš filterscript za 3.5€. Kolik lidí si to už od tebe koupilo? Hádám, že počet je celé číslo mezi -1 a 1.

~> "Tak asi logicky sem použil 2 timeri ty kdyby si začinal tak tam daš 50 timeru lebo to daš na 50 ms .."... z toho, o co ses snažil jsem vůbec nic nepobral. Takže, nechápu, jak v tom můžeš ještě vidět nějakou logiku.

~> "a vi ne vy dáte OnPlayerTakeDamage s ktorým sem nikdy nepracoval a mam stoho pochopiť něco".... (docela vtipné, že nejdříve píšeš vy s měkkým a pak vy s tvrdým :d) Ano, máš. Od toho je po případě wiki. Stačí napsat jméno callbacku a vyjednou ti potřebné informace. Jenže, když je neumíš pochopíš... možná ani neumíš anglicky...

~> "znašim se něco učit" ... nesnažíš. Snaha vypadá jinak.

Napsal bych toho více, ale lidem jako ty nemám důvod věnovat tolik drahocenného času :) ...

  • Líbí se mi to! (+1) 3
Link to comment
Share on other sites

  • 0

došlo ti že on ti poslal to co poslal SkiBig? asi ne..

Mne SkiBig nezajíma ja ho proste ignoruji :) Protože von píše jenom sračky ...

Link to comment
Share on other sites

  • 0

Mne SkiBig nezajíma ja ho proste ignoruji :) Protože von píše jenom sračky ...

~> Ne, jenom nevíš co už na to napsat a snažíš se ze sebe udělat moudrého, ale po tom, co jsi předvedl ti to fakt nepůjde...

Link to comment
Share on other sites

  • 0

Mne SkiBig nezajíma ja ho proste ignoruji :) Protože von píše jenom sračky ...

Ty mentálně víš, že už jsi prohrál a nemáš žádné argumenty na svojí obhajobu, tak radši použiješ nadávky.

  • Líbí se mi to! (+1) 1
Link to comment
Share on other sites

  • 0

Ty mentálně víš, že už jsi prohrál a nemáš žádné argumenty na svojí obhajobu, tak radši použiješ nadávky.

A hele a viš kdo je tady mentálně postiženej skús hadať no správne ty :) Jak si to vědel? Ja vím, máma ty to řekla. Ja jsem určite prohral? Si si istej?? Protože na to moc nevidim jenom ste tady napsali postižene komentaře. A viš čo tak si mysli že sem prohral mne je to u prdele :) Protože aj tak sem neprohral ani nevyhral. :) Mne nejde o to kdo prohral nebo vyhral mne ide oto že vy tady ste psali postižene komentáře ktomu že sem okopiroval něco, tak si mysli celý ten čas čo sem rozmýšlal nad nečim a učil se a pak zistil že to nefunguju a pak zistil že to funguje tak sem okopiroval no :) "Ďekuju že ste všetci mentalné postiženi" :)

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...