ATomas 291 Odesláno: 3. Leden, 2010 Share Odesláno: 3. Leden, 2010 (upraveno) Jak zabranit prohazovani akci v pickupech Obtížnost : cau lidi rikam to tady porad dokola ale dycky se najde nekdo kdo se prorad divi proc se mu to prohazuje tak to sem davam jako tut prosil bych kdyb to mohly moderatori upnot nazacatek aby to proste bylo vydet dekujiObsah: Prohazování akcí v pickupu Řešení Prohazování akcí v pickupu:takze jiste se vam stava ze po nejake dobe hrani vejdete na pickup a stane se jina akce nez jste si v pawnu naprogramovaly (otevreny spatne menu poslal spatna sprava) a jiste jste vypozorovaly ze se to jakoby posunulopravou pricinu sem este nenasel ale je to zrejmne tim ze behem hry nejaky pickup zmizi ale jenom hraci ne globalne protoze se statva ze prohazene akce v pikupech ma jenom hractakze za jiste pouzivate:nahore: new nazevpickupu;OnGameModeInitnazevpickupu = CreatePickup(1234,1,1,2,3);OnPlayerPickUpPickupif(pickupid == nazevpickupu) { SendClientmessage(playerid,0XFF00FFAA,"prave jste vesel do pickupu"); } tak takto to pouziva hodne lidi je to sice mene zatezove mozna i jednodusi ale neucineŘešení:takze jak to vyresit aby nam akce v pickupech fungovaly po cely beh serveru a bez ohledu na meneni id pickupu ?velice jednoduse:OnGameModeInitCreatePickup(1234,1,1,2,3);zde si vsimnete neni potreba pickup "pojmenovavat"OnPlayerPickUpPickupif(IsPlayerInSphere(playerid,1,2,3,2))//cisla 1,2,3 sou souradky XYZ a posledni cislo je okruh { SendClientmessage(playerid,0XFF00FFAA,"prave jste vesel do pickupu"); }a jak to fugnuje?kdyz matenazevpickupu = CreatePickup(....a mate ho v ongamemodeinit v poradi treba jako 3 tak promenanazevpickupu = 3;a kdyz hrac (ID 0) vejde do pickupu (nazevpickupu) tak se osesle akceOnPlayerPickUpPickup(0,3);takze playerid ma hodnotu 0 a pickupid 3 ale kdyz z neznameho duvodu pickup na hrace zmizi tak uz to nehodnoti sprave zato IsPlayerInSphere neresi pickupid ale kontroluje si pozici hrace s pozici pickupu coz fugnuje vzdypokud chcete pouzit IsPlayerInRangeOfPointa nechce se vam to prepisovat muzete pouzit definici kterou sem sestavil puvodne pro sve potreby #define IsPlayerInSphere(%0,%1,%2,%3,%4) IsPlayerInRangeOfPoint(%0,%4,%1,%2,%3) Nebo lze pouzit muj include ktery to opravuje http://pawno.cz/files/file/181-opraveni-chybneho-pickupid/ Návod upraven tak, aby odpovídal šabloně pro "Nové návody" Edited 2. Únor, 2015 by ATomas 3 Link to comment Share on other sites More sharing options...
Guest Frodo Odesláno: 3. Leden, 2010 Share Odesláno: 3. Leden, 2010 takze si udelam misto AddStatic Pickup if(IsPlayerInSphere(playerid,1,2,3,2))//cisla 1,2,3 sou souradky XYZ a posledni cislo je okruh { SendClientmessage(playerid,0XFF00FFAA,"prave jste vesel do pickupu"); } A mam to? Link to comment Share on other sites More sharing options...
ATomas 291 Odesláno: 3. Leden, 2010 Author Share Odesláno: 3. Leden, 2010 misto pickupid == nazevpickupu si das IsPlayerInSphere a potom to mas 1 Link to comment Share on other sites More sharing options...
Guest Frodo Odesláno: 3. Leden, 2010 Share Odesláno: 3. Leden, 2010 juuu dik xD Best TuT! Ale dal bych ho jako Micro Link to comment Share on other sites More sharing options...
ATomas 291 Odesláno: 3. Leden, 2010 Author Share Odesláno: 3. Leden, 2010 ja ne... sice je to mala rada ale hodne lidi se prorad divi proc se to prohazuje to muzu rikat do nekonecna ale porad budou pouzivat pickupid == pcikup a porad budou psat helpy proc se to prohazuje Link to comment Share on other sites More sharing options...
PcHawkVich 0 Odesláno: 4. Leden, 2010 Share Odesláno: 4. Leden, 2010 Krása určitě využiju Link to comment Share on other sites More sharing options...
Skemr 0 Odesláno: 8. Únor, 2010 Share Odesláno: 8. Únor, 2010 nejak mi to nefaka..je to divne ptze to mam presne podle navodu: public OnPlayerPickUpPickup(playerid, pickupid) { if(IsPlayerInSphere(playerid,-2026.7573,-114.3453,1035.1719,2)) { ShowMenuForPlayer(automenu, playerid); } A pick up mam vytvoreny: CreatePickup(1274,1,-2026.7573,-114.3453,1035.1719); Ale stejne mi to hazi nake errory: C:\Documents and Settings\Lukyn\Plocha\tm.pwn(468) : error 004: function "IsPlayerInSphere" is not implemented Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase 1 Error. nevim co s tim...pls help..diiiky Link to comment Share on other sites More sharing options...
Guest Frodo Odesláno: 9. Únor, 2010 Share Odesláno: 9. Únor, 2010 Dal si nahore #define IsPlayerInSphere(%0,%1,%2,%3,%4) IsPlayerInRangeOfPoint(%0,%4,%1,%2,%3) ?? Link to comment Share on other sites More sharing options...
Skemr 0 Odesláno: 9. Únor, 2010 Share Odesláno: 9. Únor, 2010 jj dal Link to comment Share on other sites More sharing options...
AvestX 5 Odesláno: 9. Únor, 2010 Share Odesláno: 9. Únor, 2010 Tak to define IsPlayerInSphere smaz možná už máš přes stock nebo public Link to comment Share on other sites More sharing options...
Skemr 0 Odesláno: 9. Únor, 2010 Share Odesláno: 9. Únor, 2010 ne nemam ...s IsPlayerInSphere jsem nikdy nedelal...vubec to tam neni ani jednou Link to comment Share on other sites More sharing options...
Dennis 0 Odesláno: 30. Březen, 2010 Share Odesláno: 30. Březen, 2010 a co je ten okruh? ketere cislo mam pouzivat? a naco je vlastne okruh? Link to comment Share on other sites More sharing options...
AvestX 5 Odesláno: 30. Březen, 2010 Share Odesláno: 30. Březen, 2010 a co je ten okruh? ketere cislo mam pouzivat? a naco je vlastne okruh? To je jak daleko to bude působyt. Ale to máš vlastně jedno, protože můžeš dát třeba 5000. Protože se to aktivuje až když je hráč v pickupu (pokud nepoužíváš vlastní timer) Link to comment Share on other sites More sharing options...
Dennis 0 Odesláno: 30. Březen, 2010 Share Odesláno: 30. Březen, 2010 a co je ten okruh? ketere cislo mam pouzivat? a naco je vlastne okruh? To je jak daleko to bude působyt. Ale to máš vlastně jedno, protože můžeš dát třeba 5000. Protože se to aktivuje až když je hráč v pickupu (pokud nepoužíváš vlastní timer) ja sem si to ted skusil na povolani, de mi to bez erroru udelal sem to takhle if(IsPlayerInSphere(playerid, 316.4694,1119.6985,1083.8828, 3) ==1) { ShowMenuForPlayer(swatmenu,playerid); } je to tak dobre? Link to comment Share on other sites More sharing options...
AvestX 5 Odesláno: 30. Březen, 2010 Share Odesláno: 30. Březen, 2010 to == 1 je tam vlastně nanic já dávam když je to true či false nic nebo "!" ale to neřeš. jj máš to dobře. Link to comment Share on other sites More sharing options...
Dennis 0 Odesláno: 30. Březen, 2010 Share Odesláno: 30. Březen, 2010 to == 1 je tam vlastně nanic já dávam když je to true či false nic nebo "!" ale to neřeš.jj máš to dobře. ok .. dík Link to comment Share on other sites More sharing options...
Vidie 5 Odesláno: 30. Březen, 2010 Share Odesláno: 30. Březen, 2010 Lehké, Popsané... Supr Link to comment Share on other sites More sharing options...
Dennis 0 Odesláno: 30. Březen, 2010 Share Odesláno: 30. Březen, 2010 Lehké, Popsané... Supr jj sem zapomel..good tut 100/100 Link to comment Share on other sites More sharing options...
ATomas 291 Odesláno: 4. Duben, 2010 Author Share Odesláno: 4. Duben, 2010 a co je ten okruh? ketere cislo mam pouzivat? a naco je vlastne okruh? To je jak daleko to bude působyt. Ale to máš vlastně jedno, protože můžeš dát třeba 5000. Protože se to aktivuje až když je hráč v pickupu (pokud nepoužíváš vlastní timer) No teoreticky muzes pouzit ten okruh akorat kdyz budou dva pickupy vedle sebe v mensi vzdalenosti nez 5000 tak to bude delat neplechu protoze pawno cte pokyny od zhora dolu a nehleda svoji podminku rovnou Zjednodusene proste ti to udela i akci jineho oickupu ktery bude pobliz takze bych takto velky okruh nepouzival Link to comment Share on other sites More sharing options...
AvestX 5 Odesláno: 4. Duben, 2010 Share Odesláno: 4. Duben, 2010 a co je ten okruh? ketere cislo mam pouzivat? a naco je vlastne okruh? To je jak daleko to bude působyt. Ale to máš vlastně jedno, protože můžeš dát třeba 5000. Protože se to aktivuje až když je hráč v pickupu (pokud nepoužíváš vlastní timer) No teoreticky muzes pouzit ten okruh akorat kdyz budou dva pickupy vedle sebe v mensi vzdalenosti nez 5000 tak to bude delat neplechu protoze pawno cte pokyny od zhora dolu a nehleda svoji podminku rovnou Zjednodusene proste ti to udela i akci jineho oickupu ktery bude pobliz takze bych takto velky okruh nepouzival Ale když to dá do OnPlayerPickupPickup tak ne. Protože OnplayerPickupPickup se vyvolává až poté co hráč vztoupí do pickupu. Link to comment Share on other sites More sharing options...
ATomas 291 Odesláno: 4. Duben, 2010 Author Share Odesláno: 4. Duben, 2010 Jo ja nerikam ze ne ale rikam kdyz si da okruh 5000 a bude mit dva pickupy vedle sebe a vejde do jednoho tak se vyvola co a a este k tomu se vyvola akce i z toho druheho pickupu kde vlastne nestoji Link to comment Share on other sites More sharing options...
AvestX 5 Odesláno: 4. Duben, 2010 Share Odesláno: 4. Duben, 2010 Jo ja nerikam ze ne ale rikam kdyz si da okruh 5000 a bude mit dva pickupy vedle sebe a vejde do jednoho tak se vyvola co a a este k tomu se vyvola akce i z toho druheho pickupu kde vlastne nestoji To jo no, to byl jen tak příklad sice dost blbej ale nevadí.. Nejlepší je dávat 2 .... a když už chci označit nějákou velkou zonu tak IsPlayerInArea .... Link to comment Share on other sites More sharing options...
MinecraftPlayer 0 Odesláno: 14. Červenec, 2010 Share Odesláno: 14. Červenec, 2010 Hele tome díky furt se to přehazovalo a ted už ne fakt díky... Link to comment Share on other sites More sharing options...
Guest Mare[C]ek Odesláno: 4. Srpen, 2010 Share Odesláno: 4. Srpen, 2010 pekne mam to odskusane super :thumbup: Link to comment Share on other sites More sharing options...
Guest Navod Odesláno: 28. Prosinec, 2010 Share Odesláno: 28. Prosinec, 2010 nechci nic rikat, ale 5000 je skoro cela hratelna mapa ^^. takze by to nejspis vyvolalo vsechny. pokud by bylo pouzivane else if(){} takby se nejspis vzdy oteiral ten 1. na seznamu Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now