Balkan SA:MP

PAWN skriptanje, gamemodovi, filterskripte, include fajlovi, mape, pluginovi => Razgovor u vezi PAWN - skriptanja => Temu započeo: Elmedin Techo poslato Avgust 08, 2014, 19:30:45 POSLE PODNE

Naslov: [Pomoc] Delay pri izvrsavanju funkcija i problem pri izvrsavanju istih.
Poruka od: Elmedin Techo poslato Avgust 08, 2014, 19:30:45 POSLE PODNE
Skripta koju koristim:NBE
Detaljan opis problema:Eh ovako, znaci pravim posao rudar i sada pravim komadu /kopaj koja ce se izvrsavati, treba mi delay(timer ide valjda) izmedju njih a ne znam kako da napravim, kada dodem na neku lokaciju da mi se ukloni objekat, posalje poruka i dobijem 1 zlato.(Napravio sam ja ali ne radi)
Kod:
if(strcmp(cmd, "/kopaj", true) == 0)
{
        if(IsPlayerInRangeOfPoint(playerid, 5.0, -280.1637,2157.3110,-13.9278) || IsPlayerInRangeOfPoint(playerid, 5.0, -298.8161,2165.6951,-13.9278) || IsPlayerInRangeOfPoint(playerid, 5.0, -314.3528,2163.2004,-13.6020) || IsPlayerInRangeOfPoint(playerid, 5.0, -337.5083,2174.1167,-13.4593) || IsPlayerInRangeOfPoint(playerid, 5.0, -359.8916,2172.1741,-13.9028) && PlayerInfo[playerid][pJob] == 30)
{
    //===KADA KOPA
    SendClientMessage(playerid, -1, "Poceo si da kopas, pricekaj 1 minut da dobijes rudu!");
    new pajser = CreateObject(18634, 0,0,0,0,0,0);
    AttachObjectToPlayer(pajser, playerid, 0.05,0.03,0.00,0.0,100.0,88.0);
    ApplyAnimation(playerid, "CHAINSAW", "CSAW_1", 4.1, 1, 0, 0, 1, 1, 1);
                           //nakon sto mu posalje poruku i doda pajser da ceka 1 min pa da dobije kamen(rudu)
    //===KADA ISKOPA
    DestroyObject(pajser);
    ClearAnimations(playerid);

    SendClientMessage(playerid, -1, "Upravo si iskopao rudu, idi je preradi");
        new kamen = CreateObject(3930, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
        AttachObjectToPlayer(kamen, playerid, 0.100000, 0.9000, 0.000000, 0.000000, 0.000000, 0.000000);
        ApplyAnimation(playerid, "CARRY", "crry_prtial", 4.1, 1, 1, 1, 1, 1, 1);
        if(IsPlayerInRangeOfPoint(playerid, 5.0,  -215.1245,2127.5347,-13.9028)) //OVO ne radi kako da fix?
{
ClearAnimations(playerid);
DestroyObject(kamen);
    SendClientMessage(playerid, -1, "Sacekaj 1 minut da se ruda preradi");
                               // OVDE ISTO DELAY OD 1 min
        SendClientMessage(playerid, -1, "Ruda se upravo preradila i dobio si 1 zlato");
        PlayerInfo[playerid][pZlato]++;
        return 1;
  }
    return 1;
    }else{
        SendClientMessage(playerid, 0xFFFFFFFF, "Niste na mjestu za kopanje/Niste rudar!");
    }
return 1;
}

Neke slike/video za lakse dobivanje pomoci(neobavezno)::
Naslov: Odg: [Pomoc] Delay pri izvrsavanju funkcija i problem pri izvrsavanju istih.
Poruka od: youngdeal poslato Avgust 08, 2014, 20:27:09 POSLE PODNE
Objasni ponovo nerazumem tacno sta ti treba.
Naslov: Odg: [Pomoc] Delay pri izvrsavanju funkcija i problem pri izvrsavanju istih.
Poruka od: Elmedin Techo poslato Avgust 08, 2014, 20:58:18 POSLE PODNE
Citat: C++ poslato Avgust 08, 2014, 20:27:09 POSLE PODNE
Objasni ponovo nerazumem tacno sta ti treba.

Ovako znaci, kada kopa(kada kuca /kopaj) da se izvrsi ovaj deo:

SendClientMessage(playerid, -1, "Poceo si da kopas, pricekaj 1 minut da dobijes rudu!");
new pajser = CreateObject(18634, 0,0,0,0,0,0);
AttachObjectToPlayer(pajser, playerid, 0.05,0.03,0.00,0.0,100.0,88.0);
ApplyAnimation(playerid, "CHAINSAW", "CSAW_1", 4.1, 1, 0, 0, 1, 1, 1);

I da to izvrsava jedan minut(da se stvori kao loop), nakon jednog minuta da se izvrsi sljedeci,


DestroyObject(pajser);
ClearAnimations(playerid);
SendClientMessage(playerid, -1, "Upravo si iskopao rudu, idi je preradi");
new kamen = CreateObject(3930, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
AttachObjectToPlayer(kamen, playerid, 0.100000, 0.9000, 0.000000, 0.000000, 0.000000, 0.000000);
ApplyAnimation(playerid, "CARRY", "crry_prtial", 4.1, 1, 1, 1, 1, 1, 1);


Eh sad kada dode na pickup(poziciju) if(IsPlayerInRangeOfPoint(playerid, 5.0,  -215.1245,2127.5347,-13.9028))  da mu taj kamen nestane i da ceka opet jedan minut i nakon jednog minuta da se izvrsi sljedeci kod:


ClearAnimations(playerid);
DestroyObject(kamen);
SendClientMessage(playerid, -1, "Sacekaj 1 minut da se ruda preradi");
SendClientMessage(playerid, -1, "Ruda se upravo preradila i dobio si 1 zlato"); //OVO TREBA KAD SE PRERADI
PlayerInfo[playerid][pZlato]++;


A ovaj kod mi ne radi, valjda sto sam stavio IsPlayerInRangeOfPoint u IsPlayerInRangeOfPoint(pogledaj skriptu bolje):

if(IsPlayerInRangeOfPoint(playerid, 5.0,  -215.1245,2127.5347,-13.9028)) //OVO ne radi kako da fix?
{
ClearAnimations(playerid);
DestroyObject(kamen);
    SendClientMessage(playerid, -1, "Sacekaj 1 minut da se ruda preradi");
                               // OVDE ISTO DELAY OD 1 min
        SendClientMessage(playerid, -1, "Ruda se upravo preradila i dobio si 1 zlato");
        PlayerInfo[playerid][pZlato]++;
        return 1;
  }


Kada bih ovo gore nekako moga da napravim kada dode na poziciju i pritisne LMB da mu nesta kamen i onda se izvrsava)
Naslov: Odg: [Pomoc] Delay pri izvrsavanju funkcija i problem pri izvrsavanju istih.
Poruka od: youngdeal poslato Avgust 08, 2014, 21:03:41 POSLE PODNE
Ovo za nestajanje znaci pod OnPlayerKeyStateChange samo proveris jeli kliknuo tipku koju zelis i dali je na mestu na kojem zelis da bude i das mu response. i pokrenes timer i kad prodje timer od 1 min ispises mu ono sto si hteo.
Naslov: Odg: [Pomoc] Delay pri izvrsavanju funkcija i problem pri izvrsavanju istih.
Poruka od: Elmedin Techo poslato Avgust 08, 2014, 21:26:52 POSLE PODNE
Citat: C++ poslato Avgust 08, 2014, 21:03:41 POSLE PODNE
Ovo za nestajanje znaci pod OnPlayerKeyStateChange samo proveris jeli kliknuo tipku koju zelis i dali je na mestu na kojem zelis da bude i das mu response. i pokrenes timer i kad prodje timer od 1 min ispises mu ono sto si hteo.
Pa brate, pokusao sam stavim ovo dole sto kad iskopa al pise undefined symbol kamen( pa sam ga vratio gore) a za timer mi je veliki problem, kako mogu da napravim to ? pokusavao sa timerom ali nista(SetTimerEx) Mozes li da napises ti nekoliko linija koda na brzinu i da kazes gdje sta da stavim ?
Naslov: Odg: [Pomoc] Delay pri izvrsavanju funkcija i problem pri izvrsavanju istih.
Poruka od: youngdeal poslato Avgust 08, 2014, 21:28:07 POSLE PODNE
Pa sta tacno da ti objasnim ovo sto sam napisao u prethodnom postu?
Naslov: Odg: [Pomoc] Delay pri izvrsavanju funkcija i problem pri izvrsavanju istih.
Poruka od: Elmedin Techo poslato Avgust 08, 2014, 21:50:49 POSLE PODNE
Citat: C++ poslato Avgust 08, 2014, 21:28:07 POSLE PODNE
Pa sta tacno da ti objasnim ovo sto sam napisao u prethodnom postu?
Kako da napravim timer da ima delaya izmedju funkcija, evo za Primjer uzmi:


public OnPlayerCommandText(playerid, cmdtext[])
{
    if(!strcmp(cmdtext, "/help", true))
    {
        SendClientMessage(playerid, -1, "Sacekajte 1 minut da bi dobili novac");
       GivePlayerMoney(killerid, 1000);
      SendClientMessage(playerid, -1, "Prosla je 1 minuta a vi ste upravo dobili novac!");
        return 1;
    }
    return 0;
}
Naslov: Odg: [Pomoc] Delay pri izvrsavanju funkcija i problem pri izvrsavanju istih.
Poruka od: youngdeal poslato Avgust 08, 2014, 21:52:52 POSLE PODNE
SetTimerEx("ImeTimera", vreme, false, "i", playerid);

forward ImeTimera ( playerid );
public ImeTimera(playerid)
{
GivePlayerMoney(killerid, 1000);
      SendClientMessage(playerid, -1, "Prosla je 1 minuta a vi ste upravo dobili novac!");
return true;
}


to ti je primer izvrsavanja.
Naslov: Odg: [Pomoc] Delay pri izvrsavanju funkcija i problem pri izvrsavanju istih.
Poruka od: Elmedin Techo poslato Avgust 08, 2014, 21:57:13 POSLE PODNE
Citat: C++ poslato Avgust 08, 2014, 21:52:52 POSLE PODNE
SetTimerEx("ImeTimera", vreme, false, "i", playerid);

forward ImeTimera ( playerid );
public ImeTimera(playerid)
{
GivePlayerMoney(killerid, 1000);
      SendClientMessage(playerid, -1, "Prosla je 1 minuta a vi ste upravo dobili novac!");
return true;
}


to ti je primer izvrsavanja.

SetTimerEx("ImeTimera", vreme, false, "i", playerid); da stavim u ongamemodeinit ili u OnPlayerCommandText , komanda /kopaj ?
Naslov: Odg: [Pomoc] Delay pri izvrsavanju funkcija i problem pri izvrsavanju istih.
Poruka od: youngdeal poslato Avgust 08, 2014, 22:00:09 POSLE PODNE
Pa OnPlayerCommandText jer OnGamemodeInit nema player parametar.
Naslov: Odg: [Pomoc] Delay pri izvrsavanju funkcija i problem pri izvrsavanju istih.
Poruka od: Elmedin Techo poslato Avgust 08, 2014, 23:00:57 POSLE PODNE
Citat: C++ poslato Avgust 08, 2014, 22:00:09 POSLE PODNE
Pa OnPlayerCommandText jer OnGamemodeInit nema player parametar.
Evo nesto sam uradio ali error sam dobio,

if(strcmp(cmd, "/kopaj", true) == 0)
{
//     new kamen = CreateDynamicObject(3930, 0, 0, 0, 0, 0, 0);
        if(IsPlayerInRangeOfPoint(playerid, 5.0, -280.1637,2157.3110,-13.9278) || IsPlayerInRangeOfPoint(playerid, 5.0, -298.8161,2165.6951,-13.9278) || IsPlayerInRangeOfPoint(playerid, 5.0, -314.3528,2163.2004,-13.6020) || IsPlayerInRangeOfPoint(playerid, 5.0, -337.5083,2174.1167,-13.4593) || IsPlayerInRangeOfPoint(playerid, 5.0, -359.8916,2172.1741,-13.9028) && PlayerInfo[playerid][pJob] == 30)
{
    //===KADA KOPA
    SendClientMessage(playerid, -1, "Poceo si da kopas, pricekaj 1 minut da dobijes rudu!");
    SetTimerEx("AddPajser", 1000, false, "i", playerid);
    SetTimerEx("RemovePajser", 60000, false, "i", playerid)
    //SetTimerEx("Kopanjerude", 60000, false, "i", playerid)
        /* if(IsPlayerInRangeOfPoint(playerid, 5.0,  -215.1245,2127.5347,-13.9028))
{
ClearAnimations(playerid);
DestroyObject(kamen);
    SendClientMessage(playerid, -1, "Sacekaj 1 minut da se ruda preradi");
        SendClientMessage(playerid, -1, "Ruda se upravo preradila i dobio si 1 zlato");
        PlayerInfo[playerid][pZlato]++;
        return 1;
  }*/
    return 1;
    }else{
        SendClientMessage(playerid, 0xFFFFFFFF, "Niste na mjestu za kopanje/Niste rudar!");
    }
return 1;
}




forward AddPajser(playerid);
public AddPajser(playerid){
        new pajser = CreateDynamicObject(18634, 0, 0, 0, 0, 0, 0);
AttachObjectToPlayer(pajser, playerid, 0.05,0.03,0.00,0.0,100.0,88.0);
ApplyAnimation(playerid, "CHAINSAW", "CSAW_1", 4.1, 1, 0, 0, 1, 1, 1);
ApplyAnimation(playerid, "CHAINSAW", "CSAW_1", 4.1, 1, 0, 0, 1, 1, 1);
return 1;
}
forward RemovePajser(playerid);
public RemovePajser(playerid){
DestroyObject(pajser);
    ClearAnimations(playerid);
ClearAnimations(playerid);
SendClientMessage(playerid, -1, "Upravo si iskopao rudu, idi je preradi");
ApplyAnimation(playerid, "CARRY", "crry_prtial", 4.1, 1, 1, 1, 1, 1, 1);
return 1;
}

Undefined symbol pajser -(DestroyObject(pajser);),
Sta da radim?  a kad ga stavim pod OnGameModeInit
C:\Users\ActioN\Desktop\NBE GM\gamemodes\NBE.pwn(16733) : warning 204: symbol is assigned a value that is never used: "pajser"
C:\Users\ActioN\Desktop\NBE GM\gamemodes\NBE.pwn(100809) : error 017: undefined symbol "pajser"
C:\Users\ActioN\Desktop\NBE GM\gamemodes\NBE.pwn(100816) : error 017: undefined symbol "pajser"
Naslov: Odg: [Pomoc] Delay pri izvrsavanju funkcija i problem pri izvrsavanju istih.
Poruka od: youngdeal poslato Avgust 08, 2014, 23:02:59 POSLE PODNE
Pa nemozes tako naravno...

moras ovako dodaj na vrh,,,

new Pajaser [ MAX_PLAYERS ];

Pajaser [ playerid ] = Create....

DestroyObject(Pajaser [ playerid ]);
Naslov: Odg: [Pomoc] Delay pri izvrsavanju funkcija i problem pri izvrsavanju istih.
Poruka od: Elmedin Techo poslato Avgust 08, 2014, 23:40:15 POSLE PODNE
Citat: C++ poslato Avgust 08, 2014, 23:02:59 POSLE PODNE
Pa nemozes tako naravno...

moras ovako dodaj na vrh,,,

new Pajaser [ MAX_PLAYERS ];

Pajaser [ playerid ] = Create....

DestroyObject(Pajaser [ playerid ]);

Hvala, sredio sam, ali sada je novi problem tj u Animacija mi se ne apply (moram dva puta kucati /kopaj da bih pocela iako sam dodao dve iste, takode ni ne zaustavi se)

Citat
forward AddPajser(playerid);
public AddPajser(playerid){
    Pajser[playerid] = CreateObject(18634, 0, 0, 0, 0, 0, 0);
   AttachObjectToPlayer(Pajser[playerid], playerid, 0.05,0.03,0.00,0.0,100.0,88.0);
   ApplyAnimation(playerid, "CHAINSAW", "CSAW_1", 4.1, 1, 0, 0, 1, 1, 1);
   ApplyAnimation(playerid, "CHAINSAW", "CSAW_1", 4.1, 1, 0, 0, 1, 1, 1);
   return 1;
}
forward RemovePajser(playerid);
public RemovePajser(playerid){
   DestroyObject(Pajser[playerid]);
      ClearAnimations(playerid);
   ClearAnimations(playerid);
   Kamen[playerid] = CreateObject(3930, 0, 0, 0, 0, 0, 0);
   AttachObjectToPlayer(Kamen[playerid], playerid, 0.05,0.03,0.00,0.0,100.0,88.0);
   SendClientMessage(playerid, -1, "Upravo si iskopao rudu, idi je preradi");
   ApplyAnimation(playerid, "CARRY", "crry_prtial", 4.1, 1, 1, 1, 1, 1, 1);
   ApplyAnimation(playerid, "CARRY", "crry_prtial", 4.1, 1, 1, 1, 1, 1, 1);
   return 1;
}
Naslov: Odg: [Pomoc] Delay pri izvrsavanju funkcija i problem pri izvrsavanju istih.
Poruka od: youngdeal poslato Avgust 08, 2014, 23:42:53 POSLE PODNE
Pre koristenja same animacije uradi preload iste..
Naslov: Odg: [Pomoc] Delay pri izvrsavanju funkcija i problem pri izvrsavanju istih.
Poruka od: Elmedin Techo poslato Avgust 08, 2014, 23:59:46 POSLE PODNE
SLUCAJ RIJESEN LOCK!