[Pomoc] Helti


Započeo salews, Jun 12, 2014, 19:03:16 POSLE PODNE

prethodna tema - sledeća tema

0 članova i 1 gost pregledaju ovu temu.

salews

Skripta koju koristim:Raven's
Detaljan opis problema:Da mi neko pomogne kad imam malo helta spama mi u chatu /prihvatismrt neznam sta mu fali u funkciji.
Pokusavo sam naizmjenicno da stavljam otvorene i zatvorene zagrade stavljo returne al i dalje ne kontam..
Jos da napomenem skriptam oko godinu i po dana,nisam nikad bas najbolje savladao oko zagrada i zatvaranja zagrada,pa tako po svom iskustvu tu je nesto oko zagrada vecinom...
Al vi vidite
public OnPlayerUpdate(playerid)
{
    if (GetPlayerState(playerid) == PLAYER_STATE_ONFOOT)
    {
        new Float:vec[3];
        GetPlayerCameraFrontVector(playerid, vec[0], vec[1], vec[2]);
        new bool:possible_crasher = false;
        for (new i = 0; !possible_crasher && i < sizeof(vec); i++)
        if (floatabs(vec[i]) > 10.0)
        possible_crasher = true;
        if (possible_crasher)
        return 0; //do not send fake data, prevents crash
    }
    	new Float:health;
		GetPlayerHealth(playerid, health);
		if(health < 11)
		SCM(playerid, COLOR_WHITE, "KORISTITE: /prihvatismrt ili /call 103 da pozovete hitnu pomoc!");
	{
		if(!IsPlayerInAnyVehicle(playerid))
   	{
       		TogglePlayerControllable(playerid,0);
			LoopingAnim(playerid, "CRACK", "crckdeth2", 4.1,0,1,1,1,1);
			}
   	}

Blaeks

*

Madmen

na vrh skripte stavi ovo
new varzapresspama[MAX_PLAYERS];
kod stavi ovako
public OnPlayerUpdate(playerid)
{
    if (GetPlayerState(playerid) == PLAYER_STATE_ONFOOT)
    {
        new Float:vec[3];
        GetPlayerCameraFrontVector(playerid, vec[0], vec[1], vec[2]);
        new bool:possible_crasher = false;
        for (new i = 0; !possible_crasher && i < sizeof(vec); i++)
        if (floatabs(vec[i]) > 10.0)
        possible_crasher = true;
        if (possible_crasher)
        return 0; //do not send fake data, prevents crash
    }
    	new Float:health;
		GetPlayerHealth(playerid, health);
		if(health < 11)
		SCM(playerid, COLOR_WHITE, "KORISTITE: /prihvatismrt ili /call 103 da pozovete hitnu pomoc!");
                varzapresspama[playerid]++;
                //ovde postavi tajmer
	{
		if(!IsPlayerInAnyVehicle(playerid))
   	{
       		TogglePlayerControllable(playerid,0);
			LoopingAnim(playerid, "CRACK", "crckdeth2", 4.1,0,1,1,1,1);
			}
   	}
zatim postavi tajmer ispod davanja varijable, da tajmer ocita funkciju koja ce resetovati varijablu nakon nekog vremena, ako me razumes ? nije bas jednostavno

salews

Jel ovaj tajmer

ime = SetTimer("imetajmera",300000,true);

Blaeks

*

Madmen

nije ni bitno, izmsili ga, napravi novi

salews

[SF]C++ cekam njeg da mi on pomogne jer ja sam ovo pokuso da napravim i nisam mogo,prvi mi je put da ovo pravim...
Pravio sam teze stvari a ove lakse zaboravljam -.-

public OnPlayerTakeDamage(playerid, issuerid, Float: amount, weaponid)
{
    new Float:cZdravlje;
    GetPlayerHealth(playerid, cZdravlje);
    if(cZdravlje < 11)
   {
saljes mu poruku postavljas anim.
    }
    return true;
}


evo ti laksi nacin
Poslednja Izmena: Jun 12, 2014, 20:01:02 POSLE PODNE od [SF]C++
69

salews

A evo ga prilagodio sam skripti i sada je sve ok,al ima ovdje problemcic..
Dakle ako igrac kuca /prihvatismrt i kad ode u bolnicu lezi na krevetu i kad izadje iz bolnice jos je na zemlji...
Koliko znam treba da se napravi kada je igrac u bolnici da bude
TogglePlayerControllable(playerid,0);
i da je animacija
LoopingAnim(playerid, "CRACK", "crckdeth2", 4.1,0,1,1,1,1);
i da ima neki tajmer tu logicno..
Sad pravi problem ono pod OnplayerUpdate sto smo pravili ona animacija,jer kad kuca /prihvatismrt ubije ga i poslije smrti on opet lezi,izuzev ako igrac ne napuni helte komandom bolnicara /heal ili komandom od admina..

CMD:prihvatismrt(playerid,params[])
{
    new Float: playersHealth;
	GetPlayerHealth(playerid, playersHealth);
    if(playersHealth < 11)
	{
    	return SendClientMessage(playerid, -1, "Moras biti tesko ranjen da bi mogao koristiti ovu komandu!");
 	}
	SafeGivePlayerMoney(playerid, -12500);
	SafeSetPlayerHealth(playerid,0)
	return 1;
}


I jos da napomenem testiro sam ovu komandu i ako igrac nema toliko helti koliko je napravljeno,moze da koristi tu komandu neznam sta je tu problem....I tako moze da se ubija koliko hoce i da spama..Al moze sebi spamati drugima to ne prikazuje..Jer je playrid text.
Poslednja Izmena: Jun 12, 2014, 20:40:30 POSLE PODNE od salews

covjece iznad sam ti dao da mu pusti animaciju ako imas healt manje od 11
netreba ti onplayerupdate radis u ovom gore pozivu sve.
69