Jedinstven sistem pecanja ! (DEMO verzija)

Započeo rane, Avgust 02, 2021, 23:46:48 POSLE PODNE

prethodna tema - sledeća tema

0 članova i 3 gostiju pregledaju ovu temu.

Tip: Filterskripta
Slike ili Video:
[/i]
Opis i dodatne informacije: Ovo je demo verzija, planiram je dorađivati svakih 5-7 dana sve dok ovaj sistem ne dovedem na vrhunac.
Finalna verzija bi trebala biti objavljena početkom septembra sa Y_Ini i mysql cuvanjem.

Download link: https://bit.ly/3ljxnzc
Scan link: nope
Credits: Just me

[Filterscript] Simple Treasure Hunt
[Filterscript] Sistem pecanja
[Filterscript] Meditacija
[Filterscript] Molitva
[Include] Alarm
[Include] Posao Taxi




Citat: Galardo poslato Avgust 02, 2021, 23:57:48 POSLE PODNE
Mislim da sam negdje davno vidio, ako ne, izvinjavam se...
Jbg, sta je tu je, bilo bi mi draze da si pregledao kod i vidio ima li gresaka ali ajde nmvz. Probao sam promijeniti odma link ali nisam stigao maknuli mi je modify opciju. U svakom slucaju u deskripciji kanala ima i pastebin i files.fm i mediafire DL tkd.

[Filterscript] Simple Treasure Hunt
[Filterscript] Sistem pecanja
[Filterscript] Meditacija
[Filterscript] Molitva
[Include] Alarm
[Include] Posao Taxi

Citat: Göppert poslato Avgust 03, 2021, 00:21:21 PRE PODNE
Jbg, sta je tu je, bilo bi mi draze da si pregledao kod i vidio ima li gresaka ali ajde nmvz. Probao sam promijeniti odma link ali nisam stigao maknuli mi je modify opciju. U svakom slucaju u deskripciji kanala ima i pastebin i files.fm i mediafire DL tkd.
Malo sam gledo bezveze bacio oko mozda da prebacis CO CDO dok vec imas ukljucen streamer, kod dialoga mozes koristit switch dialogid i ne znam vise nmg se sjetit pisem preko mob

Citat: Taylor Morelli poslato Avgust 03, 2021, 00:25:24 PRE PODNE
Malo sam gledo bezveze bacio oko mozda da prebacis CO CDO dok vec imas ukljucen streamer, kod dialoga mozes koristit switch dialogid i ne znam vise nmg se sjetit pisem preko mob
Razmisljao sam o tome jos dok sam i pickupe i labele ubacivao ali jednostavno interijere sam navikao od ranije raditi u createobject(zbog propadanja pri spawnu/ulasku) tkd to nisam dirao a inace streamer sam ubacio samo zbog tih area.

A za switch dialogid ni sam ne znam zasto sam ovako ubacivao, vjv sam mahinalno jer je na pocetku bio samo jedan. Bude na updateu switch.

[Filterscript] Simple Treasure Hunt
[Filterscript] Sistem pecanja
[Filterscript] Meditacija
[Filterscript] Molitva
[Include] Alarm
[Include] Posao Taxi

Kad si vec spomenuo objekte, samo podlogu izdvoji da ti bude createobject za slucaj da propadnes, odnosno ako imas neki interior, samo onaj objekat koji mu je za poziciju kada udje, prebaci u createobject, ostalo u CDO, jer postoji limit za createobjecte, mada i da ne predjes taj limit, kada se nakupi malo vise createobject-a ostale se slabije ucitavaju.

Citat: Galardo poslato Avgust 03, 2021, 00:33:27 PRE PODNE
Kad si vec spomenuo objekte, samo podlogu izdvoji da ti bude createobject za slucaj da propadnes, odnosno ako imas neki interior, samo onaj objekat koji mu je za poziciju kada udje, prebaci u createobject, ostalo u CDO, jer postoji limit za createobjecte, mada i da ne predjes taj limit, kada se nakupi malo vise createobject-a ostale se slabije ucitavaju.
Galardo piši mi na discord šta nije u redu? Kao da si tek počeo sa skriptanjem, nisi bio ovoliko loš ako se doboro sećam.
Ko pri sebi može da preporuči mešanje CDO i COD lol


CreateDynamicObject(modelid, Float:x, Float:y, Float:z, Float:rx, Float:ry, Float:rz, worldid = -1, interiorid = -1, playerid = -1, Float:streamdistance = STREAMER_OBJECT_SD, Float:drawdistance = STREAMER_OBJECT_DD, areaid = -1, priority)
Pod na koji teleportuješ igrača kreiraš sa priority paramterom 1 i mnogo je bitno da naučiš da koristiš Streamer_UpdateEx

Primer:
[pawn]
public OnPlayerEnterDynamicArea(playerid, STREAMER_TAG_AREA:areaid) {
    if (areaid == teleport_point) {
        static const Float:podlogaX = 250.0,
            Float:podlogaY = 250.0,
            Float:podlogaZ = 25.0,
            podlogaWorld = -1,
            podlogaInt = 18;

        CreateDynamicObject(objekat_za_pod, podlogaX, podlogaY, podlogaZ, 0.0, 0.0, 0.0, podlogaWorld, podlogaInt, -1, .priority = 10);
        Streamer_UpdateEx(playerid, podlogaX, podlogaY, podlogaZ, podlogaWorld, podlogaInt, STREAMER_TYPE_OBJECT, 1024);
    }
    return 1;
}
[/pawn]

Moj tutorial (pročitaj i Xunderov komentar)
https://balkan-samp.com/forum/index.php?topic=137659.0

EDIT:
Code inspekšn,

ovo nikako ne ide ovako
[pawn]#include <a_samp>
#include <streamer>
#include <sscanf2>
#include <YSI\y_ini>
#include <YSI\y_va>
#include <YSI\y_timers>
#include <PAWN.cmd>
//----------------[DEFINICIJE]----------------//
#undef MAX_PLAYERS
#define MAX_PLAYERS 100
#define CIJENASTAPA 2000
#define CIJENAMAMCA 150
#define MAX_TRG 10[/pawn]

nego ovako
[pawn]#include <a_samp>

#undef MAX_PLAYERS
#define MAX_PLAYERS 100

#include <streamer>
#include <sscanf2>
#include <YSI\y_ini>
#include <YSI\y_va>
#include <YSI\y_timers>
#include <PAWN.cmd>
//----------------[DEFINICIJE]----------------//
#define CIJENASTAPA 2000
#define CIJENAMAMCA 150
#define MAX_TRG 10[/pawn]
Veoma je bitno.


[pawn]#pragma tabsize 0 [/pawn]
Y_Less na aparatima


Koristiš verziju YSIa koja je veoma verovatno starija od tebe.


[pawn]enum
{
DIALOG_PECANJEOPREMA,
DIALOG_KUPOVINAMAMCA,
DIALOG_PANEL,
DIALOG_PANEL2
}[/pawn]
topla preporuka y_dialog


Ovo ostalo nije nešto ali ne bih baš da pišem ceo kod ispočetka
Poslednja Izmena: Avgust 03, 2021, 01:00:56 PRE PODNE od Sage

E i ovo tek sada vidim
[pawn]stock y_va_format(dest[], size, fmat[], va_args<>)
{
    va_format(dest, size, fmat, va_start<3>);
}[/pawn]
Bodeš li se ti hahahahaha

EDIT: I ovo, switch ti nema smisla nikakvog, pišeš isti kod 3 puta??
[pawn]timer PecaRibu[20000](playerid)
{
    if(Peca[playerid] != 0)
    {
        switch(random(6))
        {
            case 0:
            {
                va_SendClientMessage(playerid,-1,"Nisi upecao nista");
                RemovePlayerAttachedObject(playerid,3);
                TogglePlayerControllable(playerid,true); Peca[playerid] = 0; ClearAnimations(playerid);
                RibarInfo[playerid][StapPecanje] -= 1;
                if(RibarInfo[playerid][StapPecanje] == 0) return SendClientMessage(playerid,-1,"Vas stap za pecanje se potrgao, morate kupiti novi");
            }
            case 1:
            {
                va_SendClientMessage(playerid,-1,"Upecao si sardinu");
                RemovePlayerAttachedObject(playerid,3);
                TogglePlayerControllable(playerid,true); Peca[playerid] = 0; ClearAnimations(playerid);
                RibarInfo[playerid][StapPecanje] -= 1; RibarInfo[playerid][Riba] += 1;
                if(RibarInfo[playerid][StapPecanje] == 0) return SendClientMessage(playerid,-1,"Vas stap za pecanje se potrgao, morate kupiti novi");
            }
            case 2:
            {
                va_SendClientMessage(playerid,-1,"Nisi upecao nista");
                RemovePlayerAttachedObject(playerid,3);
                TogglePlayerControllable(playerid,true); Peca[playerid] = 0; ClearAnimations(playerid);
                RibarInfo[playerid][StapPecanje] -= 1;
                if(RibarInfo[playerid][StapPecanje] == 0) return SendClientMessage(playerid,-1,"Vas stap za pecanje se potrgao, morate kupiti novi");
            }
            case 3:
            {
                va_SendClientMessage(playerid,-1,"Upecao si oradu");
                RemovePlayerAttachedObject(playerid,3);
                TogglePlayerControllable(playerid,true); Peca[playerid] = 0; ClearAnimations(playerid);
                RibarInfo[playerid][StapPecanje] -= 1; RibarInfo[playerid][Riba] += 1;
                if(RibarInfo[playerid][StapPecanje] == 0) return SendClientMessage(playerid,-1,"Vas stap za pecanje se potrgao, morate kupiti novi");
            }
            case 4:
            {
                va_SendClientMessage(playerid,-1,"Upecao si sardinu");
                RemovePlayerAttachedObject(playerid,3);
                TogglePlayerControllable(playerid,true); Peca[playerid] = 0; ClearAnimations(playerid);
                RibarInfo[playerid][StapPecanje] -= 1; RibarInfo[playerid][Riba] += 1;
                if(RibarInfo[playerid][StapPecanje] == 0) return SendClientMessage(playerid,-1,"Vas stap za pecanje se potrgao, morate kupiti novi");
            }
            case 5:
            {
                va_SendClientMessage(playerid,-1,"Nisi upecao nista");
                RemovePlayerAttachedObject(playerid,3);
                TogglePlayerControllable(playerid,true); Peca[playerid] = 0; ClearAnimations(playerid);
                RibarInfo[playerid][StapPecanje] -= 1;
                if(RibarInfo[playerid][StapPecanje] == 0) return SendClientMessage(playerid,-1,"Vas stap za pecanje se potrgao, morate kupiti novi");
            }
        }
        SacuvajRibara(playerid);
    }
    return 1;
}[/pawn]
>>>
[pawn]timer PecaRibu[20000](playerid)
{
    if(Peca[playerid] != 0)
    {
        switch(random(6))
        {
            case 1:
            {
                va_SendClientMessage(playerid,-1,"Upecao si sardinu");
                RemovePlayerAttachedObject(playerid,3);
                TogglePlayerControllable(playerid,true); Peca[playerid] = 0; ClearAnimations(playerid);
                RibarInfo[playerid][StapPecanje] -= 1; RibarInfo[playerid][Riba] += 1;
                if(RibarInfo[playerid][StapPecanje] == 0) return SendClientMessage(playerid,-1,"Vas stap za pecanje se potrgao, morate kupiti novi");
            }
            case 3:
            {
                va_SendClientMessage(playerid,-1,"Upecao si oradu");
                RemovePlayerAttachedObject(playerid,3);
                TogglePlayerControllable(playerid,true); Peca[playerid] = 0; ClearAnimations(playerid);
                RibarInfo[playerid][StapPecanje] -= 1; RibarInfo[playerid][Riba] += 1;
                if(RibarInfo[playerid][StapPecanje] == 0) return SendClientMessage(playerid,-1,"Vas stap za pecanje se potrgao, morate kupiti novi");
            }
            case 4:
            {
                va_SendClientMessage(playerid,-1,"Upecao si sardinu");
                RemovePlayerAttachedObject(playerid,3);
                TogglePlayerControllable(playerid,true); Peca[playerid] = 0; ClearAnimations(playerid);
                RibarInfo[playerid][StapPecanje] -= 1; RibarInfo[playerid][Riba] += 1;
                if(RibarInfo[playerid][StapPecanje] == 0) return SendClientMessage(playerid,-1,"Vas stap za pecanje se potrgao, morate kupiti novi");
            }
            default:
            {
                va_SendClientMessage(playerid,-1,"Nisi upecao nista");
                RemovePlayerAttachedObject(playerid,3);
                TogglePlayerControllable(playerid,true); Peca[playerid] = 0; ClearAnimations(playerid);
                RibarInfo[playerid][StapPecanje] -= 1;
                if(RibarInfo[playerid][StapPecanje] == 0) return SendClientMessage(playerid,-1,"Vas stap za pecanje se potrgao, morate kupiti novi");
            }
        }
        SacuvajRibara(playerid);
    }
    return 1;
}[/pawn]
Poslednja Izmena: Avgust 03, 2021, 01:04:58 PRE PODNE od Sage

Citat: Sage poslato Avgust 03, 2021, 00:52:13 PRE PODNE
Galardo piši mi na discord šta nije u redu? Kao da si tek počeo sa skriptanjem, nisi bio ovoliko loš ako se doboro sećam.
Ko pri sebi može da preporuči mešanje CDO i COD lol


CreateDynamicObject(modelid, Float:x, Float:y, Float:z, Float:rx, Float:ry, Float:rz, worldid = -1, interiorid = -1, playerid = -1, Float:streamdistance = STREAMER_OBJECT_SD, Float:drawdistance = STREAMER_OBJECT_DD, areaid = -1, priority)
Pod na koji teleportuješ igrača kreiraš sa priority paramterom 1 i mnogo je bitno da naučiš da koristiš Streamer_UpdateEx

Primer:
[pawn]
public OnPlayerEnterDynamicArea(playerid, STREAMER_TAG_AREA:areaid) {
    if (areaid == teleport_point) {
        static const Float:podlogaX = 250.0,
            Float:podlogaY = 250.0,
            Float:podlogaZ = 25.0,
            podlogaWorld = -1,
            podlogaInt = 18;

        CreateDynamicObject(objekat_za_pod, podlogaX, podlogaY, podlogaZ, 0.0, 0.0, 0.0, podlogaWorld, podlogaInt, -1, .priority = 10);
        Streamer_UpdateEx(playerid, podlogaX, podlogaY, podlogaZ, podlogaWorld, podlogaInt, STREAMER_TYPE_OBJECT, 1024);
    }
    return 1;
}
[/pawn]

Moj tutorial (pročitaj i Xunderov komentar)
https://balkan-samp.com/forum/index.php?topic=137659.0
Znam koristiti Streamer_UpdateEx medjutim kao i vecina ne upotrebljavam znanje 100%, buduci da je ovo default interijer i da su objekti samo izmapani prebacit cu createobject u createdynamicobject i tjt.

Citat: Sage poslato Avgust 03, 2021, 01:01:26 PRE PODNE
EDIT: I ovo, switch ti nema smisla nikakvog, pišeš isti kod 3 puta??
Planirani su na tim switch razliciti ishodi medjutim zbog nedostatka vremena nisam stigao, na update ce se dodati to sto sam planirao
Poslednja Izmena: Avgust 03, 2021, 01:07:45 PRE PODNE od Göppert

[Filterscript] Simple Treasure Hunt
[Filterscript] Sistem pecanja
[Filterscript] Meditacija
[Filterscript] Molitva
[Include] Alarm
[Include] Posao Taxi

Ali zašto koristiš va_ uopšte je pitanje ovde hahaha

va_format = format :D

Znači,
[pawn]y_va_format(string,sizeof(string),"Trgovina Ribarske Opreme\nPritisnite 'F' za ulazak\nID: %d",d);[/pawn]
>>>
[pawn]format(string, sizeof(string), "Trgovina Ribarske Opreme\nPritisnite 'F' za ulazak\nID: %d", d);[/pawn]
I odvajaj zareze da ti ne odvojim udove

EDIT: Samo da znaš, YSI koristi va_format ravno 0 puta interno, funkcija ostavljena za backward compatibility :)
Poslednja Izmena: Avgust 03, 2021, 01:17:09 PRE PODNE od Sage

Citat: Sage poslato Avgust 03, 2021, 00:52:13 PRE PODNE


[pawn]#pragma tabsize 0 [/pawn]
Y_Less na aparatima


filterskripta je naknadno prebacena u grandlarcency.pwn pa je to ostalo

Citat: Sage poslato Avgust 03, 2021, 00:52:13 PRE PODNE
Koristiš verziju YSIa koja je veoma verovatno starija od tebe.
Vec pretjerujes, YSI v4.0.2. Ne znam ni sta je toliko izmijenjeno u ovim zadnjim verzijama pa da bi prelazio na v5?


Citat: Sage poslato Avgust 03, 2021, 01:01:26 PRE PODNE
E i ovo tek sada vidim
[pawn]stock y_va_format(dest[], size, fmat[], va_args<>)
{
    va_format(dest, size, fmat, va_start<3>);
}[/pawn]
Bodeš li se ti hahahahaha
Pokusavao sam na razne nacine da ubacim va_format direktno u showplayerdialog i nisam uspio pa sam kopao po y_va i kombinovao razne kodove, taj je ostao ne obrisan na kraju

Citat: Sage poslato Avgust 03, 2021, 01:14:56 PRE PODNE
I odvajaj zareze da ti ne odvojim udove
ne vidim zasto bi se prilagodjavao tvom nacinu pisanja koda?

[Filterscript] Simple Treasure Hunt
[Filterscript] Sistem pecanja
[Filterscript] Meditacija
[Filterscript] Molitva
[Include] Alarm
[Include] Posao Taxi

Citat: Göppert poslato Avgust 03, 2021, 01:17:40 PRE PODNE
ne vidim zasto bi se prilagodjavao tvom nacinu pisanja koda?
To nije prilagodjavanje pisanju koda, nego pravopis iz osnovne skole.
- Sistem nije los(vizuelno), sa tim da je kod nepregledan.
Poslednja Izmena: Avgust 03, 2021, 01:21:12 PRE PODNE od Darkic

Citat: Göppert poslato Avgust 03, 2021, 01:17:40 PRE PODNE
filterskripta je naknadno prebacena u grandlarcency.pwn pa je to ostalo
Vec pretjerujes, YSI v4.0.2. Ne znam ni sta je toliko izmijenjeno u ovim zadnjim verzijama pa da bi prelazio na v5?

Pokusavao sam na razne nacine da ubacim va_format direktno u showplayerdialog i nisam uspio pa sam kopao po y_va i kombinovao razne kodove, taj je ostao ne obrisan na kraju
ne vidim zasto bi se prilagodjavao tvom nacinu pisanja koda?
A izvini onda, mislio sam da ni u YSI4 ne dozvolljava ovako da se includea YSI, svakako ne vidim razlog za YSI4.


Zašto si izostavio deo gde sam rekao da ne treba da koristiš (v_)va_format?

EDIT: Aha, ti si hteo da ubaciš va_format inline u ShowPlayerDialog, ne može zato što je va_format potpuno isti native kao format.
Poslednja Izmena: Avgust 03, 2021, 01:22:18 PRE PODNE od Sage