Dinamicno kreiranje pickupa sa ulaz/izlaz

Započeo Shomyy, Novembar 15, 2017, 14:38:07 POSLE PODNE

prethodna tema - sledeća tema

0 članova i 3 gostiju pregledaju ovu temu.




Napravi to u dijalogu u novoj verziji?

TIIIIIRRRRRRUUUUUU RIIIIIIIIIIIIIIIII RUUUUUUUUUUUUU

Citat: faR3.exe poslato Novembar 21, 2017, 12:51:55 POSLE PODNE
Napravi to u dijalogu u novoj verziji?
Previse sam mrzovoljan :) U prevodu - mrzi me previse :P

Facebook - Klik



[pawn]sscanf(params, "ds[80]dfffdd", model, text, bt, iX, iY, iZ, inte, vw)[/pawn]

Što ako staviš 2 riječi na primjer?
int string int float float float int int // OK
int string string string int float float float int int // Noup

Pomjeri text na zadnje mjesto  ;)




[pawn]
if(bt == 1) { label[PravljeniPickup] = Create3DTextLabel(str, 0xFFFFFFFF, X,Y,Z, 10.0, 0, 0); PickupInfo[PravljeniPickup][BojaTexta] = 0xFFFFFFFF; }
        if(bt == 2) { label[PravljeniPickup] = Create3DTextLabel(str, 0xFF1414FF, X,Y,Z, 10.0, 0, 0); PickupInfo[PravljeniPickup][BojaTexta] = 0xFF1414FF; }
        if(bt == 3) { label[PravljeniPickup] = Create3DTextLabel(str, 0x6EF0FFFF, X,Y,Z, 10.0, 0, 0); PickupInfo[PravljeniPickup][BojaTexta] = 0x6EF0FFFF; }
        if(bt == 4) { label[PravljeniPickup] = Create3DTextLabel(str, 0xFF8000FF, X,Y,Z, 10.0, 0, 0); PickupInfo[PravljeniPickup][BojaTexta] = 0xFF8000FF; }
        if(bt == 5) { label[PravljeniPickup] = Create3DTextLabel(str, 0xFF0090FF, X,Y,Z, 10.0, 0, 0); PickupInfo[PravljeniPickup][BojaTexta] = 0xFF0090FF; }
        if(bt == 6) { label[PravljeniPickup] = Create3DTextLabel(str, 0x000000FF, X,Y,Z, 10.0, 0, 0); PickupInfo[PravljeniPickup][BojaTexta] = 0x000000FF; }
        if(bt == 7) { label[PravljeniPickup] = Create3DTextLabel(str, 0x09FF00FF, X,Y,Z, 10.0, 0, 0); PickupInfo[PravljeniPickup][BojaTexta] = 0x09FF00FF; }
        if(bt == 8) { label[PravljeniPickup] = Create3DTextLabel(str, 0x9900FFFF, X,Y,Z, 10.0, 0, 0); PickupInfo[PravljeniPickup][BojaTexta] = 0x9900FFFF; }
        if(bt == 9) { label[PravljeniPickup] = Create3DTextLabel(str, 0x0008FFFF, X,Y,Z, 10.0, 0, 0); PickupInfo[PravljeniPickup][BojaTexta] = 0x0008FFFF; }
        if(bt == 10) { label[PravljeniPickup] = Create3DTextLabel(str, 0xF2FF00FF, X,Y,Z, 10.0, 0, 0); PickupInfo[PravljeniPickup][BojaTexta] = 0xF2FF00FF; }
[/pawn]

Ovaj si dio mogao u niz postaviti te se ne ponavljati 10 puta   ???




[pawn]if(newkeys == KEY_SECONDARY_ATTACK )
    {
        for(new i; i < MAX_PICKUPS; i++)
        {
            if(IsPlayerInRangeOfPoint(playerid, 2.5, PickupInfo[UlazX], PickupInfo[UlazY], PickupInfo[UlazZ]))
            {
                SetPlayerPos(playerid, PickupInfo[IzlazX], PickupInfo[IzlazY], PickupInfo[IzlazZ]);
                SetPlayerInterior(playerid, PickupInfo[pInterior]);
                SetPlayerVirtualWorld(playerid, PickupInfo[pVWI]);
            }
            else if(IsPlayerInRangeOfPoint(playerid, 2.5, PickupInfo[IzlazX], PickupInfo[IzlazY], PickupInfo[IzlazZ]))
            {
                SetPlayerPos(playerid, PickupInfo[UlazX], PickupInfo[UlazY], PickupInfo[UlazZ]);
                SetPlayerInterior(playerid, 0);
                SetPlayerVirtualWorld(playerid, PickupInfo[pVWU]);
            }
        }
    }[/pawn]

forsiranje skripte da usporeÄ'iva 250 puta svaki put kada se enter prisitne, spam entera par igrača = rip cpu




cool  :-\
Poslednja Izmena: Novembar 22, 2017, 22:55:53 POSLE PODNE od Ino42O
Software Developer

Bas kao sto je gospon Ino iznad mene rekao.

Takodje da dodam da iako ti nije tacno ovo
if(bt == 1) { label[PravljeniPickup] = Create3DTextLabel(str, 0xFFFFFFFF, X,Y,Z, 10.0, 0, 0); PickupInfo[PravljeniPickup][BojaTexta] = 0xFFFFFFFF; }
        if(bt == 2) { label[PravljeniPickup] = Create3DTextLabel(str, 0xFF1414FF, X,Y,Z, 10.0, 0, 0); PickupInfo[PravljeniPickup][BojaTexta] = 0xFF1414FF; }
        if(bt == 3) { label[PravljeniPickup] = Create3DTextLabel(str, 0x6EF0FFFF, X,Y,Z, 10.0, 0, 0); PickupInfo[PravljeniPickup][BojaTexta] = 0x6EF0FFFF; }
        if(bt == 4) { label[PravljeniPickup] = Create3DTextLabel(str, 0xFF8000FF, X,Y,Z, 10.0, 0, 0); PickupInfo[PravljeniPickup][BojaTexta] = 0xFF8000FF; }
        if(bt == 5) { label[PravljeniPickup] = Create3DTextLabel(str, 0xFF0090FF, X,Y,Z, 10.0, 0, 0); PickupInfo[PravljeniPickup][BojaTexta] = 0xFF0090FF; }
        if(bt == 6) { label[PravljeniPickup] = Create3DTextLabel(str, 0x000000FF, X,Y,Z, 10.0, 0, 0); PickupInfo[PravljeniPickup][BojaTexta] = 0x000000FF; }
        if(bt == 7) { label[PravljeniPickup] = Create3DTextLabel(str, 0x09FF00FF, X,Y,Z, 10.0, 0, 0); PickupInfo[PravljeniPickup][BojaTexta] = 0x09FF00FF; }
        if(bt == 8) { label[PravljeniPickup] = Create3DTextLabel(str, 0x9900FFFF, X,Y,Z, 10.0, 0, 0); PickupInfo[PravljeniPickup][BojaTexta] = 0x9900FFFF; }
        if(bt == 9) { label[PravljeniPickup] = Create3DTextLabel(str, 0x0008FFFF, X,Y,Z, 10.0, 0, 0); PickupInfo[PravljeniPickup][BojaTexta] = 0x0008FFFF; }
        if(bt == 10) { label[PravljeniPickup] = Create3DTextLabel(str, 0xF2FF00FF, X,Y,Z, 10.0, 0, 0); PickupInfo[PravljeniPickup][BojaTexta] = 0xF2FF00FF; }


takodje nauci da radis IF / ELSE IF / ELSE. Zamisljaj to ovako


new nesto = 123;

if (nesto == 0) { nesto }
if (nesto == 123) { nesto }
if (nesto == 1234) { nesto }


Ovaj kod ce ici racunar obraditi ovako:
Ako je nesto = 0 - NIJE PRESKACEM
Ako je nesto = 123 - JESTE, RADIM
Ako je nesto = 1234 - NIJE PRESKACEM

To je ocigledno lose jer se operacija ne zavrsava kada se dobije vrijednost.


if (nesto == 0) { nesto }
else if (nesto == 123) { nesto }
else if (nesto == 1234) { nesto }


Ako je nesto = 0 - NIJE PRESKACEM
Ako je nesto = 123 - JESTE, RADIM
Preskacem bez gledanja da li je 123 ili ne...

^ Ocigledno bolji nacin.


Ovo za spamovanje key-a rijesi ili pomocu nekog anti spam sistema ili (koliko toliko bolje od ovog tvog) iteratora za pickupove.

I naravno string se nauci stavljat posljednji da bi mogao kreirati ime pickupa tipa
"bla bla bla" ovako mozes samo "bla"
Poslednja Izmena: Novembar 23, 2017, 01:16:47 PRE PODNE od ☢ χυηdєя_ ☢


Citat: Ino42O poslato Novembar 22, 2017, 22:51:07 POSLE PODNE
[pawn]sscanf(params, "ds[80]dfffdd", model, text, bt, iX, iY, iZ, inte, vw)[/pawn]

Što ako staviš 2 riječi na primjer?
int string int float float float int int // OK
int string string string int float float float int int // Noup

Pomjeri text na zadnje mjesto  ;)




[pawn]
if(bt == 1) { label[PravljeniPickup] = Create3DTextLabel(str, 0xFFFFFFFF, X,Y,Z, 10.0, 0, 0); PickupInfo[PravljeniPickup][BojaTexta] = 0xFFFFFFFF; }
        if(bt == 2) { label[PravljeniPickup] = Create3DTextLabel(str, 0xFF1414FF, X,Y,Z, 10.0, 0, 0); PickupInfo[PravljeniPickup][BojaTexta] = 0xFF1414FF; }
        if(bt == 3) { label[PravljeniPickup] = Create3DTextLabel(str, 0x6EF0FFFF, X,Y,Z, 10.0, 0, 0); PickupInfo[PravljeniPickup][BojaTexta] = 0x6EF0FFFF; }
        if(bt == 4) { label[PravljeniPickup] = Create3DTextLabel(str, 0xFF8000FF, X,Y,Z, 10.0, 0, 0); PickupInfo[PravljeniPickup][BojaTexta] = 0xFF8000FF; }
        if(bt == 5) { label[PravljeniPickup] = Create3DTextLabel(str, 0xFF0090FF, X,Y,Z, 10.0, 0, 0); PickupInfo[PravljeniPickup][BojaTexta] = 0xFF0090FF; }
        if(bt == 6) { label[PravljeniPickup] = Create3DTextLabel(str, 0x000000FF, X,Y,Z, 10.0, 0, 0); PickupInfo[PravljeniPickup][BojaTexta] = 0x000000FF; }
        if(bt == 7) { label[PravljeniPickup] = Create3DTextLabel(str, 0x09FF00FF, X,Y,Z, 10.0, 0, 0); PickupInfo[PravljeniPickup][BojaTexta] = 0x09FF00FF; }
        if(bt == 8) { label[PravljeniPickup] = Create3DTextLabel(str, 0x9900FFFF, X,Y,Z, 10.0, 0, 0); PickupInfo[PravljeniPickup][BojaTexta] = 0x9900FFFF; }
        if(bt == 9) { label[PravljeniPickup] = Create3DTextLabel(str, 0x0008FFFF, X,Y,Z, 10.0, 0, 0); PickupInfo[PravljeniPickup][BojaTexta] = 0x0008FFFF; }
        if(bt == 10) { label[PravljeniPickup] = Create3DTextLabel(str, 0xF2FF00FF, X,Y,Z, 10.0, 0, 0); PickupInfo[PravljeniPickup][BojaTexta] = 0xF2FF00FF; }
[/pawn]

Ovaj si dio mogao u niz postaviti te se ne ponavljati 10 puta   ???




[pawn]if(newkeys == KEY_SECONDARY_ATTACK )
    {
        for(new i; i < MAX_PICKUPS; i++)
        {
            if(IsPlayerInRangeOfPoint(playerid, 2.5, PickupInfo[UlazX], PickupInfo[UlazY], PickupInfo[UlazZ]))
            {
                SetPlayerPos(playerid, PickupInfo[IzlazX], PickupInfo[IzlazY], PickupInfo[IzlazZ]);
                SetPlayerInterior(playerid, PickupInfo[pInterior]);
                SetPlayerVirtualWorld(playerid, PickupInfo[pVWI]);
            }
            else if(IsPlayerInRangeOfPoint(playerid, 2.5, PickupInfo[IzlazX], PickupInfo[IzlazY], PickupInfo[IzlazZ]))
            {
                SetPlayerPos(playerid, PickupInfo[UlazX], PickupInfo[UlazY], PickupInfo[UlazZ]);
                SetPlayerInterior(playerid, 0);
                SetPlayerVirtualWorld(playerid, PickupInfo[pVWU]);
            }
        }
    }[/pawn]

forsiranje skripte da usporeÄ'iva 250 puta svaki put kada se enter prisitne, spam entera par igrača = rip cpu




cool  :-\
Ma vazno je da sve radi :) Mogao sam hex staviti za boju ali eto, retard sam hah :) Za enter spam, u pravu si, trebao sam staviti...

Citat: ☢ χÏ...ηdÑ"я_ ☢ poslato Novembar 23, 2017, 01:15:45 PRE PODNE
Bas kao sto je gospon Ino iznad mene rekao.

Takodje da dodam da iako ti nije tacno ovo
if(bt == 1) { label[PravljeniPickup] = Create3DTextLabel(str, 0xFFFFFFFF, X,Y,Z, 10.0, 0, 0); PickupInfo[PravljeniPickup][BojaTexta] = 0xFFFFFFFF; }
        if(bt == 2) { label[PravljeniPickup] = Create3DTextLabel(str, 0xFF1414FF, X,Y,Z, 10.0, 0, 0); PickupInfo[PravljeniPickup][BojaTexta] = 0xFF1414FF; }
        if(bt == 3) { label[PravljeniPickup] = Create3DTextLabel(str, 0x6EF0FFFF, X,Y,Z, 10.0, 0, 0); PickupInfo[PravljeniPickup][BojaTexta] = 0x6EF0FFFF; }
        if(bt == 4) { label[PravljeniPickup] = Create3DTextLabel(str, 0xFF8000FF, X,Y,Z, 10.0, 0, 0); PickupInfo[PravljeniPickup][BojaTexta] = 0xFF8000FF; }
        if(bt == 5) { label[PravljeniPickup] = Create3DTextLabel(str, 0xFF0090FF, X,Y,Z, 10.0, 0, 0); PickupInfo[PravljeniPickup][BojaTexta] = 0xFF0090FF; }
        if(bt == 6) { label[PravljeniPickup] = Create3DTextLabel(str, 0x000000FF, X,Y,Z, 10.0, 0, 0); PickupInfo[PravljeniPickup][BojaTexta] = 0x000000FF; }
        if(bt == 7) { label[PravljeniPickup] = Create3DTextLabel(str, 0x09FF00FF, X,Y,Z, 10.0, 0, 0); PickupInfo[PravljeniPickup][BojaTexta] = 0x09FF00FF; }
        if(bt == 8) { label[PravljeniPickup] = Create3DTextLabel(str, 0x9900FFFF, X,Y,Z, 10.0, 0, 0); PickupInfo[PravljeniPickup][BojaTexta] = 0x9900FFFF; }
        if(bt == 9) { label[PravljeniPickup] = Create3DTextLabel(str, 0x0008FFFF, X,Y,Z, 10.0, 0, 0); PickupInfo[PravljeniPickup][BojaTexta] = 0x0008FFFF; }
        if(bt == 10) { label[PravljeniPickup] = Create3DTextLabel(str, 0xF2FF00FF, X,Y,Z, 10.0, 0, 0); PickupInfo[PravljeniPickup][BojaTexta] = 0xF2FF00FF; }


takodje nauci da radis IF / ELSE IF / ELSE. Zamisljaj to ovako


new nesto = 123;

if (nesto == 0) { nesto }
if (nesto == 123) { nesto }
if (nesto == 1234) { nesto }


Ovaj kod ce ici racunar obraditi ovako:
Ako je nesto = 0 - NIJE PRESKACEM
Ako je nesto = 123 - JESTE, RADIM
Ako je nesto = 1234 - NIJE PRESKACEM

To je ocigledno lose jer se operacija ne zavrsava kada se dobije vrijednost.


if (nesto == 0) { nesto }
else if (nesto == 123) { nesto }
else if (nesto == 1234) { nesto }


Ako je nesto = 0 - NIJE PRESKACEM
Ako je nesto = 123 - JESTE, RADIM
Preskacem bez gledanja da li je 123 ili ne...

^ Ocigledno bolji nacin.


Ovo za spamovanje key-a rijesi ili pomocu nekog anti spam sistema ili (koliko toliko bolje od ovog tvog) iteratora za pickupove.

I naravno string se nauci stavljat posljednji da bi mogao kreirati ime pickupa tipa
"bla bla bla" ovako mozes samo "bla"
Ono sto je cudno, ne znam ni ja sam zasto, nije mi radilo sa else if, prvo i jesam stavio else if, a radi mi sa if...Znam za string, skroz sam zaboravio na to :) A za spamovanje key-a, iskreno me mrzi raditi update, mozda nekad i uradim, hvala :)

Facebook - Klik



UPDATE

Dodano/Promenjeno/Fixano:

Dodano - Anti Spam Enter

Promenjeno - Hex boju sada upisujete kako Vi zelite u formatu 0xFFFFFFFF.

Fixano - Sada moze vise reci na label

Slike - https://imgur.com/a/Wegnf

Download Link - https://pastebin.com/Cvb5TbRd

Hvala svima na savetima i govorenju bugova :)

Facebook - Klik




new str[80];
        format(str,sizeof(str), "%s", text);
        label[PravljeniPickup] = Create3DTextLabel(str, bt, X,Y,Z, 10.0, 0, 0);


Zasto ne jednostavno label[PravljeniPickup] = Create3DTextLabel(text, bt, X,Y,Z, 10.0, 0, 0);
Takodje, anti spam sa timerom? Nemoj to da ti prelazi u naviku, imas gettime() i GetTickCount()...

Citat: ☢ χÏ...ηdÑ"я_ ☢ poslato Novembar 23, 2017, 13:43:45 POSLE PODNE
new str[80];
        format(str,sizeof(str), "%s", text);
        label[PravljeniPickup] = Create3DTextLabel(str, bt, X,Y,Z, 10.0, 0, 0);


Zasto ne jednostavno label[PravljeniPickup] = Create3DTextLabel(text, bt, X,Y,Z, 10.0, 0, 0);
Zasto sam ja bio utripovan da tako ne moze... Hvala :)

Citat: ☢ χÏ...ηdÑ"я_ ☢ poslato Novembar 23, 2017, 13:43:45 POSLE PODNE
Takodje, anti spam sa timerom? Nemoj to da ti prelazi u naviku, imas gettime() i GetTickCount()...
Koja je razlika?

Facebook - Klik