_Martin_ 10 Odesláno: 5. Červen, 2011 Share Odesláno: 5. Červen, 2011 Hore medzi newy: new driveby[MAX_PLAYERS]; // vyvvoríme premennú na ukladanie driveby killov Do public OnPlayerCommandText(playerid, cmdtext[]) public OnPlayerCommandText(playerid, cmdtext[]) { if (strcmp(cmdtext, "/stats", true) == 0) // ak zadá príkaz stats pošle mu správu s počtom jeho drive-by killov { new dform[50]; format(dform,sizeof(dform),"Máš %d/3 drive-by killov",driveby[playerid]); SendClientMessage(playerid,COLOR_****,dform); return 1; } return 0; } Do public OnPlayerDeath(playerid,killerid) public OnPlayerDeath(playerid, killerid, reason) { if(IsPlayerInAnyVehicle(killerid)) // zisťuje či je vrah vo vozidle { if(GetPlayerVehicleSeat(killerid) == 0) // ak áno a rovná sa jeho sedadlo 0 (vodič) { if(driveby[killerid] == 2) // musí to ísť od najvläčšieho po najmenší pretože by mu to pripočítalo hneď 3 body a kicklo by ho to { SendClientMessage(killerid,COLOR_****,"[ Anti Drive-by ] Za usmrtenie hráča z vozidla ti bol pripočítaný varovný bod(3/3)"); // pošle mu správu že mu bol prirátaný bod driveby new dbform[100]; format(dbform,sizeof(dbform),"Hráč %s bol vyhodený za Drive-by",PlayerName(killerid)); // vyhodí hráča za driveby ak má už 2 body SendClientMessageToAll(COLOR_****,dbform); Kick(killerid); // vyhodenie } if(driveby[killerid] == 1) // ak je drive by 1, teda ak zabil niekoho už 1x drive by killom { SendClientMessage(killerid,COLOR_****,"[ Anti Drive-by ] Za usmrtenie hráča z vozidla ti bol pripočítaný varovný bod(2/3)");// pošle mu správu že má už 2 drive by driveby[killerid] = 2; // nastaví mu drive by na 2 } if(driveby[killerid] == 0) // ak ešte ikoho nezabil a niekoho zabije { SendClientMessage(killerid,COLOR_****,"[ Anti Drive-by ] Za usmrtenie hráča z vozidla ti bol pripočítaný varovný bod(1/3)"); pošle mu správu že mu bol prirátaný bod driveby driveby[killerid] = 1; // nastaví driveby na 1 } } } return 1; } Viem, že by to išlo aj kratšie ale toto je pre začiatočníkov aby to pochopili Link to comment Share on other sites More sharing options...
lhoj 0 Odesláno: 5. Červen, 2011 Share Odesláno: 5. Červen, 2011 Hore medzi newy: new driveby[MAX_PLAYERS]; // vyvvoríme premennú na ukladanie driveby killov Do public OnPlayerCommandText(playerid, cmdtext[]) public OnPlayerCommandText(playerid, cmdtext[]) { if (strcmp(cmdtext, "/stats", true) == 0) // ak zadá príkaz stats pošle mu správu s počtom jeho drive-by killov { new dform[50]; format(dform,sizeof(dform),"Máš %d/3 drive-by killov",driveby[playerid]); SendClientMessage(playerid,COLOR_****,dform); return 1; } return 0; } Do public OnPlayerDeath(playerid,killerid) public OnPlayerDeath(playerid, killerid, reason) { if(IsPlayerInAnyVehicle(killerid)) // zisťuje či je vrah vo vozidle { if(GetPlayerVehicleSeat(killerid) == 0) // ak áno a rovná sa jeho sedadlo 0 (vodič) { if(driveby[killerid] == 2) // musí to ísť od najvläčšieho po najmenší pretože by mu to pripočítalo hneď 3 body a kicklo by ho to { SendClientMessage(killerid,COLOR_****,"[ Anti Drive-by ] Za usmrtenie hráča z vozidla ti bol pripočítaný varovný bod(3/3)"); // pošle mu správu že mu bol prirátaný bod driveby new dbform[100]; format(dbform,sizeof(dbform),"Hráč %s bol vyhodený za Drive-by",PlayerName(killerid)); // vyhodí hráča za driveby ak má už 2 body SendClientMessageToAll(COLOR_****,dbform); Kick(killerid); // vyhodenie } if(driveby[killerid] == 1) // ak je drive by 1, teda ak zabil niekoho už 1x drive by killom { SendClientMessage(killerid,COLOR_****,"[ Anti Drive-by ] Za usmrtenie hráča z vozidla ti bol pripočítaný varovný bod(2/3)");// pošle mu správu že má už 2 drive by driveby[killerid] = 2; // nastaví mu drive by na 2 } if(driveby[killerid] == 0) // ak ešte ikoho nezabil a niekoho zabije { SendClientMessage(killerid,COLOR_****,"[ Anti Drive-by ] Za usmrtenie hráča z vozidla ti bol pripočítaný varovný bod(1/3)"); pošle mu správu že mu bol prirátaný bod driveby driveby[killerid] = 1; // nastaví driveby na 1 } } } return 1; } Viem, že by to išlo aj kratšie ale toto je pre začiatočníkov aby to pochopili omg další script "Okopírujte si mě" co takhle to alespo víc popsat? a taky náký ty odkazy na wiki..... Link to comment Share on other sites More sharing options...
_Martin_ 10 Odesláno: 5. Červen, 2011 Author Share Odesláno: 5. Červen, 2011 Aké odkazy na wiki ? Veď je tam len format, SendClientMessage, premenná driveby[MAX_PLAYERS] a Kick Link to comment Share on other sites More sharing options...
Guest Dr.Ondrej Odesláno: 5. Červen, 2011 Share Odesláno: 5. Červen, 2011 Klidek! Anti-Lams team Řešíme lams help topicy stylem: • Nebudeme ti dělat kód na přání • Nebudeme postovat celý script do tvého helpu • Opravíme ti tvůj kód, když u tebe uvidíme snahu Pokud souhlasíš, zkopíruj si to do podpisu Link to comment Share on other sites More sharing options...
_Martin_ 10 Odesláno: 5. Červen, 2011 Author Share Odesláno: 5. Červen, 2011 Tak toto bolo riadne odveci Dr.Ondrej Link to comment Share on other sites More sharing options...
Guest Dr.Ondrej Odesláno: 5. Červen, 2011 Share Odesláno: 5. Červen, 2011 Ale tak se sklidnite! Co natom?Kazdy neco zkopiruje!Vzdy! Nevite jak chutna zakazane ovoce? Přece ho jíte? LOL! Link to comment Share on other sites More sharing options...
Guest Frodo Odesláno: 5. Červen, 2011 Share Odesláno: 5. Červen, 2011 Místo těch podmínek šlo hodit Swich a nebo to udělat úplně jinak, ale Anti Drive-By tu ještě není i když je to děsně jednoduchý.. palec hore Link to comment Share on other sites More sharing options...
Guest Odesláno: 24. Červen, 2011 Share Odesláno: 24. Červen, 2011 Nehovorím že to nefunguje... ale robíš to moc zložito... public OnPlayerDeath(playerid, killerid, reason) { if(GetPlayerState(killerid) == PLAYER_STATE_DRIVER){ driveby[killerid]++; new dbform[100]; if(driveby == 3){ SendClientMessage(killerid,COLOR_****,"[ Anti Drive-by ] Za usmrtenie hráča z vozidla ti bol pripočítaný varovný bod(3/3)"); format(dbform,sizeof(dbform),"Hráč %s bol vyhodený za Drive-by",PlayerName(killerid)); // vyhodí hráča za driveby ak má už 2 body SendClientMessageToAll(COLOR_****,dbform); Kick(killerid); }else{ format(dbform,100,"Spravil si bike/car kill ! %d/3",driveby[killerid]); SendClientMessage(killerid,COLOR_****,dbform); } } return 1; } nehovoriac že si mohol použiť PVar... Link to comment Share on other sites More sharing options...
Randley 1 Odesláno: 24. Červen, 2011 Share Odesláno: 24. Červen, 2011 jóó určite využiju Hodnocení : 10/10 Link to comment Share on other sites More sharing options...
Petr 44 Odesláno: 25. Červen, 2011 Share Odesláno: 25. Červen, 2011 No co k tomu napsat, opět takhle by tut neměl vypadat, spíš bych to nechal přesunout do sekce "Vaše scripty". Máš %d/3 drive-by killov Proč takto blbě? "Máš 35/3 drive-by killov" Nechápu logiku této blbosti. if(IsPlayerInAnyVehicle(killerid)) // zisťuje či je vrah vo vozidle { if(GetPlayerVehicleSeat(killerid) == 0) // ak áno a rovná sa jeho sedadlo 0 (vodič) { Zbytečné 2 podmínky, stačí pouze ta druhá, ty potřebuješ pouze pokud je řidič a když se ti bude splňovat podmínka II tak automaticky musí být splněná podmínka I. Logika omg. switch ti také nic neříká? if + else if také ne. Stejně ty podmínky tam jsou úplně na ho*no, stačí 1 + else Viem, že by to išlo aj kratšie ale toto je pre začiatočníkov aby to pochopili Nejdementnější chyba, jakou jsi mohl vypustit. Nečetl jsem QWERa, takže se omlouvám za opakování 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