Balkan SA:MP

PAWN skriptanje, gamemodovi, filterskripte, include fajlovi, mape, pluginovi => Razgovor u vezi PAWN - skriptanja => Temu započeo: salews poslato Jun 12, 2014, 19:03:16 POSLE PODNE

Naslov: [Pomoc] Helti
Poruka od: salews poslato Jun 12, 2014, 19:03:16 POSLE PODNE
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);
}
    }
Naslov: Odg: [Pomoc] Helti
Poruka od: Blaeks poslato Jun 12, 2014, 19:16:13 POSLE PODNE
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
Naslov: Odg: [Pomoc] Helti
Poruka od: salews poslato Jun 12, 2014, 19:31:37 POSLE PODNE
Jel ovaj tajmer

ime = SetTimer("imetajmera",300000,true);
Naslov: Odg: [Pomoc] Helti
Poruka od: Blaeks poslato Jun 12, 2014, 19:32:37 POSLE PODNE
nije ni bitno, izmsili ga, napravi novi
Naslov: Odg: [Pomoc] Helti
Poruka od: salews poslato Jun 12, 2014, 19:44:13 POSLE PODNE
[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 -.-
Naslov: Odg: [Pomoc] Helti
Poruka od: youngdeal poslato Jun 12, 2014, 20:00:34 POSLE PODNE
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
Naslov: Odg: [Pomoc] Helti
Poruka od: salews poslato Jun 12, 2014, 20:38:28 POSLE PODNE
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.
Naslov: Odg: [Pomoc] Helti
Poruka od: youngdeal poslato Jun 12, 2014, 20:46:42 POSLE PODNE
covjece iznad sam ti dao da mu pusti animaciju ako imas healt manje od 11
netreba ti onplayerupdate radis u ovom gore pozivu sve.