Ranjavanje

Započeo BoZZ
7. Avg. 2018. Zaključano
1,133
pregleda
15
postova
BoZZMapper
3
Wheel Man
7. Avg. 2018.
Problem(error/warning): Moze li mi netko napraviti sistem ranjavanja kao na SM
Dio skripte: [ pawn ]//[ /pawn ]
Debug iz server_log(ukoliko je u pitanju crashanje servera - crashdetect log): [ code ]//[ /code ]
Slika/video ingame problema(obavezno ako je ingame problem): //
SejnurHD
5
OG Legend
7. Avg. 2018.
Kako tacno mislis 'sistem ranjavanja na SM'?
Nikad nisam igrao na SM, moze li malo vise detalja?
BoZZMapper
3
Wheel Man
7. Avg. 2018.
Sejnur337_ wrote on August 7, 2018, 1:54 pm:
Kako tacno mislis 'sistem ranjavanja na SM'?
Nikad nisam igrao na SM, moze li malo vise detalja?
Jesi li igrao na Vibe mozda, isto tako, sacu ti dat klip pa pogledaj

https://www.youtube.com/watch?v=uwGoKZLUljQ&t=420s
Danisoni
5
Godfather
7. Avg. 2018.
Probaj ovako nesto.
Vrh skripte:
new DeadTimer, DeadStep, bool:Knocked;
public OnPlayerTakeDamage(playerid, issuerid, Float: amount, weaponid, bodypart)
{
    if(issuerid != INVALID_PLAYER_ID)
    {
          new Float:health;
          GetPlayerHealth(playerid, health);
          if(Knocked) SetPlayerHealth(playerid, health+amount);
          if(health <= 20 && !Knocked) {
              ApplyAnimation(playerid, "CRACK", "crckdeth2", 4.1, 0, 1, 1, 1, 1, 1); //zamjeni animaciju sebi
              DeadTimer = SetTimerEx("DeathTimer", 1000, false, "i", playerid);
              DeadStep = 15;
              Knocked = true;
              TogglePlayerControllable(playerid, false);
          }   
    }
    return 1;
}

forward DeathTimer(playerid);
public DeathTimer(playerid)
{
            if(!IsPlayerConnected(playerid) || !Knocked) return 1;
            if(DeadStep > 1) {
                  DeadStep--;
                  DeadTimer = SetTimerEx("DeathTimer", 1000, false, "i", playerid);
                  TogglePlayerControllable(playerid, false);
            }
            else {
                  Knocked = false;
                  SCM(playerid, -1, "Umrli ste.");
                  SetPlayerHealth(playerid, 0);
                  DeadTimer = -1;
                  TogglePlayerControllable(playerid, true);
            }
            return 1;
}


Resetiranje:
public OnPlayerDisconnect(playerid, reason)
{
    if(DeadTimer != -1) {
          KillTimer(DeadTimer);
          DeadTimer = -1;
    }
}
public OnPlayerConnect(playerid)
{
      DeadTimer = -1;
}

public OnPlayerDeath(playerid, killerid, reason)
{
    if(DeadTimer != -1) {
          KillTimer(DeadTimer);
          DeadTimer = -1;
          TogglePlayerControllable(playerid, true);
    }
}


Nisam siguran dal radi sve kako si zamislio, igrač će u slučaju da ima ispod 20 hpa kada primi metak past na pod i kao trest se (promjeni animaciju ako želiš drugu) i tako 15 sekundi, i onda će umrijeti.
Možeš dodati provjere za dizanje HPa i slično, npr ako igrač pojede sendvič da više ne bude nokovan.
Evo primjer:
new Float:health;
GetPlayerHealth(playerid, health);
SCM(playerid, -1, "Pojeli ste sendvic.");
SetPlayerHealth(playerid, health+15);
if(Knocked && health+15 > 20) {
    Knocked = false;
    if(DeadTimer != -1) {
              KillTimer(DeadTimer);
              DeadTimer = -1;
    }
    TogglePlayerControllable(playerid, true);
    ClearAnimations(playerid);
}
BoZZMapper
3
Wheel Man
7. Avg. 2018.
Ne radi tako @Slade nista se ne desi kolko god pucam ubijem igraca uvjek
Danisoni
5
Godfather
7. Avg. 2018.
Nisam siguran zasto ti ne radi
Mozes probat sa timerom ali ne preporucujem
Jer ti timer mora biti brz, otprilike minimalno 300ms
omcho
4
Enforcer
7. Avg. 2018.
Ja sam ovako nesto kao sto je Slade napisao gore radio na tu foru ali desilo mi se isto sto i tebi nije radilo, ali radi na OnPlayerUpdate, e sad koristi to pod OnPlayerUpdate je velika greska zato sto se poziva puno taj callback pa ono nemam pojma, ako koristis weapon-config, probaj sa "OnPlayerDamage" umesto "OnPlayerTakeDamage"
BoZZMapper
3
Wheel Man
7. Avg. 2018.
omcho wrote on August 7, 2018, 4:01 pm:
Ja sam ovako nesto kao sto je Slade napisao gore radio na tu foru ali desilo mi se isto sto i tebi nije radilo, ali radi na OnPlayerUpdate, e sad koristi to pod OnPlayerUpdate je velika greska zato sto se poziva puno taj callback pa ono nemam pojma, ako koristis weapon-config, probaj sa "OnPlayerDamage" umesto "OnPlayerTakeDamage"
To pod OnPlayerDamage sam probao i sam i tako radi, a da li mi mozes ti sad ili netko drugi nap jos za chat bubble i da odbrojava od 30 na dole, to sam vec pokusavao ali ne radi nikako..
Danisoni
5
Godfather
7. Avg. 2018.
Postavis igracu chat bubble kad je nokovan i u onom tajmeru ga updateujes
BoZZMapper
3
Wheel Man
8. Avg. 2018.
@Slade mos poslat u PP nmg nikako namjestit ili tajmer stoji ili ide u - ili svasta nesto a nikako da radi kako treba 😄
Danisoni
5
Godfather
8. Avg. 2018.
Pa nema potrebe da ga štimaš, već sam ti ga ja dao gore.
DeathTimer se zove.
Danisoni
5
Godfather
8. Avg. 2018.
forward DeathTimer(playerid);
public DeathTimer(playerid)
{
            if(!IsPlayerConnected(playerid) || !Knocked) return 1;
            if(DeadStep > 1) {
                  DeadStep--;
                  DeadTimer = SetTimerEx("DeathTimer", 1000, false, "i", playerid);
                  TogglePlayerControllable(playerid, false);
                  new bubble;
                  format(bubble, sizeof(bubble), "[Ranjena osoba]\nUmire za %d sek.", DeadStep);
                  SetPlayerChatBubble(playerid, bubble, 0xF81414AA, 30.0, 1000);
            }
            else {
                  Knocked = false;
                  SCM(playerid, -1, "Umrli ste.");
                  SetPlayerHealth(playerid, 0);
                  DeadTimer = -1;
                  TogglePlayerControllable(playerid, true);
                  SetPlayerChatBubble(playerid, "", 0xF81414AA, 30.0, 1000);
            }
            return 1;
}
Falcone Mapper
3
Hustler
14. Avg. 2018.
if(!IsPlayerConnected(playerid) || !Knocked) return 1;
            if(DeadStep > 1) {
                  DeadStep--;
                  DeadTimer = SetTimerEx("DeathTimer", 1000, false, "i", playerid);
                  TogglePlayerControllable(playerid, false);
            }
            else {
                  Knocked = false;
                  SCM(playerid, -1, "Umrli ste.");
                  SetPlayerHealth(playerid, 0);
                  DeadTimer = -1;
                  TogglePlayerControllable(playerid, true);
            }

De to treba nov am u skriptanju ?
Falcone Mapper
3
Hustler
14. Avg. 2018.
Falcone Mapper wrote on August 14, 2018, 2:33 pm:
if(!IsPlayerConnected(playerid) || !Knocked) return 1;
            if(DeadStep > 1) {
                  DeadStep--;
                  DeadTimer = SetTimerEx("DeathTimer", 1000, false, "i", playerid);
                  TogglePlayerControllable(playerid, false);
            }
            else {
                  Knocked = false;
                  SCM(playerid, -1, "Umrli ste.");
                  SetPlayerHealth(playerid, 0);
                  DeadTimer = -1;
                  TogglePlayerControllable(playerid, true);
            }

De to treba nov am u skriptanju ?
Glup sam ko cufta sada vidim hahahah
Dzoni Zivkovic
5
Underboss
16. Avg. 2018.
Ako koristis weapon config imas sve callbackove uradjene za to bez tajmera to ces resiti. Mislim da ima preparedeath i tako to.
public OnPlayerPrepareDeath(playerid, animlib, animname, &anim_lock, &respawn_time);
eto nasao sam.
evo ti dokumentacija pa pogledaj
https://github.com/oscar-broman/samp-weapon-config

Morate biti prijavljeni da biste odgovorili na ovu temu.

Prijava

© 2026 SmartShark. All rights reserved.

Powered by Momentum|v2026.3.001 Alpha