Právě je stř 23. kvě 2012 11:20:59
Hosting WEDOS.cz
SLEVA 25% (slevový kód:PAWNO25)

Nejnovější témata:
Bannery od Sanfu
[INC]Turbo Enter-Exit System od SURANY_MORE
[INC]AddAmmo od Riso135_
[Stránka] Hostingu SA-MP od Ewwe
[HELP] Skrytie TextDrawu od Om3n

Vyzkoušejte antivirus ESET Smart Security 5

Vyhledat témata bez odpovědí | Zobrazit aktivní témata Zobrazit nové příspěvky | Zobrazit vaše příspěvky


Všechny časy jsou v UTC + 1 hodina [ Letní čas ]




Odeslat nové téma Odpovědět na téma  [ Příspěvků: 10 ] 
Autor Zpráva
 Předmět příspěvku: [SCRIPT/INC] QPickup System
PříspěvekNapsal: úte 21. úno 2012 23:54:26 
Carl Johnson "CJ"
Carl Johnson "CJ"
Uživatelský avatar
Registrován: čtv 29. led 2009 20:03:51
Příspěvky: 4548
Bydliště: Blava ne ?

Čaute, predstavujem vám QPickup Systém. Určite všetci používate funkciu "IsPlayerInShere" AKA "IsPlayerInRangeOfPoint". No možno ste došli k bodu, možno k nemu iba mierite, kedy zistíte, že pri vstupe na pickup server na chvíľku lagne. Je to tým, že pri vstupe musí porovnávať vašu pozíciu zo všetkými ďalšími pickupmi. A čím viac pickpupov - tým dlhšie trvá porovnávanie (ak vkročíte na posledný pickup). Rozmýšľal som, ako tomuto zamedziť, a prišiel som na revolučný nápad ktorý nielen zrýchli akcie pri pickupoch, ale aj zjednoduší prácu s nimi !

Informácie

Určite sa teraz všetci pýtate, ako je to možné. Hneď sa dozviete, a poviem vám aj výsledky testov. Pickupy som testoval pri 500 000 pickupoch cez Streamer Plugin. Testy prebiehali tak, že sa po celom San Andreas vytvorili pickupy, a každý pickup mal random číslo od 1 do 10 000. A keď ste vstúpili na pickup, zistilo aktuálny "gettickcount" serveru a uložilo do premeny, a pri vyvolaní akcie, to vypísalo hodnotu randomu a ešte aj ako dlho trvalo vyvolať akciu. Čas, aký server vynaložil na vykonanie akcie pri poslednom pickupe bol 1-2 ms ! Pri všetkých pickupoch to tak bolo... Testoval som to aj na 4 000 pickupoch - bez streameru a rovnaké hodnoty ! Skúste si dať 4 000 pickupov a kontrolovať ich cez cyklus + IsPlayerInRangeOfPoint, uvidíte, ako dlho potrvá, kým sa vyvolá akcia pri poslednom pickupe. Samozrejme ste stovali 4 (naraz)

Download

http://pastebin.com/WGqc4C5t

Nevýhody

No takže hlavne potrebujete pugin GVars (http://forum.sa-mp.com/showthread.php?t=151076) ktorý odporúčam, no keď nemáte inú možnosť (váš hosting nepodporuje pluginy) tak použite QGVars (global-variables-v2-gvars-v2-t25742.html) Išlo by to aj bez GVarov, ale to by zbytočne muselo byť pole new nazov[MAX_PICKUPS] čo je v túto sekundu 4 000 ! takže zbytočnosť...

Inštalácia

- Stiahnite si ten includ
- Dajte si ho ako .inc a vložte ho do pawno/includes
- Otvorte svoj mód a hore pod a_samp dajte #include "nazov"
- Nájdite si public OnPlayerPickUpPickup(playerid, pickupid) a dnu dajte
Kód:
new string[50],name[40];
GetGVarString("PickupName", name, 40, pickupid);
format(string,15,"qpick_%s",name);
if(!strcmp(name,"none",false)) CallRemoteFunction("OnPlayerPickupUpPickupEx","ii",playerid,pickupid);
else CallRemoteFunction(string,"i",playerid);

- A užívajte ;)

Funkcie

Kód:
CreatePickupEx(model, typ, Float:x, Float:y, Float:z,name[] = "none")

model - model pickupu
typ - typ pickupu
x,y,z - pozície x,y,z
name = názov callbacku (defautálne je nastavený na "none" a ak ho tak necháte (nevyplníte) tak môžete používat public OnPlayerPickupUpPickupEx

Kód:
QPICKUP:nazov()

nazov - tam si zadáte svoj názov (parameter "none" v CreatePickupEx) parameter "playerid" netreba vkladať, lebo tam už je prednastavený

Použitie

Kód:
public OnGameModeInit(){
........

CreatePickupEx(1023,2,x,y,z,"bonus");
}

public OnPlayerPickUpPickup(playerid, pickupid){
new string[50],name[40];
GetGVarString("PickupName", name, 40, pickupid);
format(string,15,"qpick_%s",name);
if(!strcmp(name,"none",false)) CallRemoteFunction("OnPlayerPickupUpPickupEx","ii",playerid,pickupid);
else CallRemoteFunction(string,"i",playerid);
}

QPICKUP:bonus(){
GivePlayerMoney(playerid,1000000);
SCM(playerid,-1,"Našiel si bonus ! $1 000 000");
return true;
}


To je asi všetko. Ak by ste chceli viac príkladov, tak ich pridám...
S pozdravom
QWER

_________________
Moja tvorba http://pastebin.com/u/PatchwerkQWER
Ak chceš byť lepší ako ja, a budeš sa snažiť budeš lepší ! Už len pri pomyslení na to, že si lepší než ja, ťa posunie dopredu. Ale nezabudni ! Musíš sa snažiť. A potom zistíš to, čo vie pár ľudí - že som lama a moje scripty sú nič oproti tomu, čo môžeš vytvoriť ty. Tak sa prekonaj ako kedysi ja, a natri to všetkým ! Uprav budúcnosť pre svoj prospech


Online
 Profil  
 Předmět příspěvku: Re: [SCRIPT/INC] QPickup System
PříspěvekNapsal: úte 21. úno 2012 23:58:12 
T - Bone Mendez
T - Bone Mendez
Uživatelský avatar
Registrován: sob 18. pro 2010 14:13:50
Příspěvky: 79

Zní to fantasticky revoluciózně. Jen škoda že tomu moc nerozumim :D

_________________
Říkejte mi Winz ...

Všechno se učím a nic neumím ...

:)


Offline
 Profil  
 Předmět příspěvku: Re: [SCRIPT/INC] QPickup System
PříspěvekNapsal: stř 22. úno 2012 0:00:27 
The Truth
The Truth
Uživatelský avatar
Registrován: sob 22. kvě 2010 23:07:59
Příspěvky: 582
Bydliště: Bordel!

next very nice job qwere :thumbup:


Offline
 Profil  
 Předmět příspěvku: Re: [SCRIPT/INC] QPickup System
PříspěvekNapsal: stř 22. úno 2012 0:38:03 
Nováček
Nováček
Registrován: stř 22. úno 2012 0:33:59
Příspěvky: 5

Je to to samé co
Kód:
new pick;
public OnGameModeInit() {
pick=CreatePickup(...);
}
public OnPlayerPickUpPickup(playerid, pickupid) {
if(pickup == pick) {....}
}


jenom si tomu dal nový kabát.


Offline
 Profil  
 Předmět příspěvku: Re: [SCRIPT/INC] QPickup System
PříspěvekNapsal: stř 22. úno 2012 1:07:10 
Carl Johnson "CJ"
Carl Johnson "CJ"
Uživatelský avatar
Registrován: čtv 29. led 2009 20:03:51
Příspěvky: 4548
Bydliště: Blava ne ?

to prehadzovanie sa robí vtedy, keď sa tie pickupy mažú, takže vždy má svoje id iné a toto ostáva...

_________________
Moja tvorba http://pastebin.com/u/PatchwerkQWER
Ak chceš byť lepší ako ja, a budeš sa snažiť budeš lepší ! Už len pri pomyslení na to, že si lepší než ja, ťa posunie dopredu. Ale nezabudni ! Musíš sa snažiť. A potom zistíš to, čo vie pár ľudí - že som lama a moje scripty sú nič oproti tomu, čo môžeš vytvoriť ty. Tak sa prekonaj ako kedysi ja, a natri to všetkým ! Uprav budúcnosť pre svoj prospech


Online
 Profil  
 Předmět příspěvku: Re: [SCRIPT/INC] QPickup System
PříspěvekNapsal: stř 22. úno 2012 9:29:05 
Eddie Pulaski
Eddie Pulaski
Uživatelský avatar
Registrován: úte 02. lis 2010 22:16:14
Příspěvky: 1473
Bydliště: Program Files(x64);

Je to skvělá věc stejně jako qcmd qdialog vsechnno sou uzasny sripty a když se nad tim clovek zamyslí tak až drze jednoduchý :)

_________________
ObrázekObrázekObrázekObrázekObrázek


ObrázekObrázekObrázek

Obrázek

K temné straně Dooku přidal se. Lži, zrada a nedůvěra jsou teď nástroje jeho.


Offline
 Profil  
 Předmět příspěvku: Re: [SCRIPT/INC] QPickup System
PříspěvekNapsal: stř 22. úno 2012 11:41:50 
Eddie Pulaski
Eddie Pulaski
Uživatelský avatar
Registrován: pát 02. říj 2009 13:59:22
Příspěvky: 1455
Bydliště: ?????????

De to ale dá se to udělat i 10x lépe a jednoduše


Offline
 Profil  
 Předmět příspěvku: Re: [SCRIPT/INC] QPickup System
PříspěvekNapsal: stř 22. úno 2012 11:55:43 
Carl Johnson "CJ"
Carl Johnson "CJ"
Uživatelský avatar
Registrován: čtv 29. led 2009 20:03:51
Příspěvky: 4548
Bydliště: Blava ne ?

samozrejme že áno, každý myslí inak a tak dva kódy od rôznych autorov nemôžu byť na vlas rovnaké

_________________
Moja tvorba http://pastebin.com/u/PatchwerkQWER
Ak chceš byť lepší ako ja, a budeš sa snažiť budeš lepší ! Už len pri pomyslení na to, že si lepší než ja, ťa posunie dopredu. Ale nezabudni ! Musíš sa snažiť. A potom zistíš to, čo vie pár ľudí - že som lama a moje scripty sú nič oproti tomu, čo môžeš vytvoriť ty. Tak sa prekonaj ako kedysi ja, a natri to všetkým ! Uprav budúcnosť pre svoj prospech


Online
 Profil  
 Předmět příspěvku: Re: [SCRIPT/INC] QPickup System
PříspěvekNapsal: stř 22. úno 2012 16:30:36 
Moderátor
Moderátor
Registrován: čtv 28. dub 2011 18:53:54
Příspěvky: 1460

chybí ti tam #define MAX_PICKUPS

ale byl jsem u tohoto testování a je to nice, pickupy se opravdu hned vytvořili :)

_________________
Používejte mozek! Snadněji tak vyřešíte záhadu Schrödingerovy kočky.


Obrázek


Offline
 Profil  
 Předmět příspěvku: Re: [SCRIPT/INC] QPickup System
PříspěvekNapsal: stř 22. úno 2012 17:40:13 
Carl Johnson "CJ"
Carl Johnson "CJ"
Uživatelský avatar
Registrován: čtv 29. led 2009 20:03:51
Příspěvky: 4548
Bydliště: Blava ne ?

nechýba

tá je v a_samp
Kód:
// Limits and internal constants
#define MAX_PLAYER_NAME                     (24)
#define MAX_PLAYERS                        (500)
#define MAX_VEHICLES                     (2000)
#define INVALID_PLAYER_ID                  (0xFFFF)
#define INVALID_VEHICLE_ID                  (0xFFFF)
#define NO_TEAM                           (255)
#define MAX_OBJECTS                        (1000)
#define INVALID_OBJECT_ID                  (0xFFFF)
#define MAX_GANG_ZONES                     (1024)
#define MAX_TEXT_DRAWS                     (2048)
#define MAX_MENUS                        (128)
#define MAX_3DTEXT_GLOBAL                  (1024)
#define MAX_3DTEXT_PLAYER                  (1024)
#define MAX_PICKUPS                        (4096)
#define INVALID_MENU                     (0xFF)
#define INVALID_TEXT_DRAW                  (0xFFFF)
#define INVALID_GANG_ZONE                  (-1)
#define INVALID_3DTEXT_ID                  (0xFFFF)

_________________
Moja tvorba http://pastebin.com/u/PatchwerkQWER
Ak chceš byť lepší ako ja, a budeš sa snažiť budeš lepší ! Už len pri pomyslení na to, že si lepší než ja, ťa posunie dopredu. Ale nezabudni ! Musíš sa snažiť. A potom zistíš to, čo vie pár ľudí - že som lama a moje scripty sú nič oproti tomu, čo môžeš vytvoriť ty. Tak sa prekonaj ako kedysi ja, a natri to všetkým ! Uprav budúcnosť pre svoj prospech


Online
 Profil  
Zobrazit příspěvky za předchozí:  Seřadit podle  
Odeslat nové téma Odpovědět na téma  [ Příspěvků: 10 ] 

Všechny časy jsou v UTC + 1 hodina [ Letní čas ]


 Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé


Nemůžete zakládat nová témata v tomto fóru
Nemůžete odpovídat v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete přikládat soubory v tomto fóru

Hledat:
Přejít na: