Frajtr 8 Odesláno: 17. Srpen, 2011 Share Odesláno: 17. Srpen, 2011 Tady vám dávám funkci na posílání zbraně funkci sem si udělal pro Life That stock RemovePlayerWeapon(playerid) { new ZbranvRuce = GetPlayerWeapon(playerid); new Naboje = GetPlayerAmmo(playerid); return GivePlayerWeapon(playerid,ZbranvRuce,-Naboje); } Použití např: dcmd_sendweapon(playerid, params[]) { if(IsPlayerConnected(playerid)) { if(!strlen(params)) return 0; if(!IsPlayerConnected(strval(params))) return 0; new ZbranvRuce = GetPlayerWeapon(playerid); new Naboje = GetPlayerAmmo(playerid); GivePlayerWeapon(strval(params),ZbranvRuce,Naboje); RemovePlayerWeapon(playerid); } return 1; } Link to comment Share on other sites More sharing options...
Guest Odesláno: 17. Srpen, 2011 Share Odesláno: 17. Srpen, 2011 Spravil som funkciu ktorá spolu s auto pridá aj tuning... a aj ŠPZ-tku... stock CreateVehicleWithTuning(plate[],model,Float:x,Float:y,Float:z,Float:a,c1,c2,time,...){ new vehicle = CreateVehicle(model,x,y,z,a,c1,c2,time); SetVehicleNumberPlate(vehicle,plate); for(new i=9; i<(numargs()); i++){ AddVehicleComponent(vehicle, getarg(i)); } return vehicle; } neobmedzený počet argumentov... (componentov) Link to comment Share on other sites More sharing options...
_Martin_ 10 Odesláno: 17. Srpen, 2011 Share Odesláno: 17. Srpen, 2011 Pekné! -- stř 17. srp 2011 21:22:28 -- Neviem či funguje ale randomex stock randomex(od,do) { #if od > do #error Chyba #endif new cislo; cislo = random(do-do) + do; return cislo; } Neviem či to funguje len ma to napadlo Link to comment Share on other sites More sharing options...
Guest Odesláno: 17. Srpen, 2011 Share Odesláno: 17. Srpen, 2011 randomex(5,10) ak je náhodné číslo 5+10 (10 = náhodné číslo) == 15... niak ti to nevychádza ale pekne to s errorom, len si mohol napísať dôvod stock GetID(part[]){ new Name[MAX_PLAYER_NAME]; ForPlayers(i){ GetPlayerName(i,Name,24); if(strfind(Name,part,true) != -1) return id; } return -1; } zistí id podľa nicku... stock GetPlayerFPS(playerid){ // By DraKiNs | Thankz Mr Turtle SetPVarInt(playerid, "DrunkL", GetPlayerDrunkLevel(playerid)); if(GetPVarInt(playerid, "DrunkL") < 100) SetPlayerDrunkLevel(playerid, 2000); if(GetPVarInt(playerid, "LDrunkL") != GetPVarInt(playerid, "DrunkL")) { SetPVarInt(playerid, "FPS", (GetPVarInt(playerid, "LDrunkL") - GetPVarInt(playerid, "DrunkL"))); SetPVarInt(playerid, "LDrunkL", GetPVarInt(playerid, "DrunkL")); if((GetPVarInt(playerid, "FPS") > 0) && (GetPVarInt(playerid, "FPS") < 256)) { return GetPVarInt(playerid, "FPS") - 1; } } return 0; } zistí hráčovo FPS stock FindChar(str[],chars) { for(new i;str[i];i++) if(str[i] == chars) return true; return false; } zistí či je niaky znak v stringu... npr. public OnPlayerText(...) if(FindChar(cmd,'$')) return kick(playerid),SCMTAF("Hráč %s je žebrák a žebre $",Jmeno(playerid)); stock DeleteChar(string[],chars) { for(new i = 0; string[i]; ++i) if(string[i] == chars) string[i] = string[i+1]; return true; } zmaže znak npr. public OnDialogResponse(....) DeleteChar(inputtext,"%"); if(dialogid ==.... -- stř 17. srp 2011 20:35:29 -- stock randomex(min,max) { #if min > max #error Min je vacsie ako Max ! #endif new cislo; cislo = random(max-min)+min; return cislo; } randomex(5,10); random == 5 + 5 == 10 Link to comment Share on other sites More sharing options...
_Martin_ 10 Odesláno: 17. Srpen, 2011 Share Odesláno: 17. Srpen, 2011 Ešte ma napadlo randomnegative Píšem len z mobilu... stock randomnegative(cislo) { #if cislo < 0 #error Zlý formát #endif new cislo2; cislo2 = random(cislo) - 2 * cislo; return cislo2; } Link to comment Share on other sites More sharing options...
Guest Odesláno: 16. Září, 2011 Share Odesláno: 16. Září, 2011 Čaute spravil som dve užitočné funkcie... S jednou mi pomáhal užívateľ "DragoN_Cz" začo mu ďakujem. stock DeleteLineFromText(file[],text[],bool:caps = true)// by QWER & DragoN_Cz{ new File:a = fopen(file,io_read); new str[128],str2[128]; format(str2,128,"%s.part",file); new File:b = fopen(str2,io_write); while(fread(a,str)){ if(!strfind(str,text,caps)) continue; fwrite(b,str); } fclose(a); fremove(file); fclose(; b = fopen(str2,io_read); fcreate(file); a = fopen(file,io_write); while(fread(b,str)){ fwrite(a,str); } fclose(a); fclose(; fremove(str2); } Táto funkcia zmaže riadok zo súboru podľa názvu ja neviem máte v súbore riadky A B C D E F G H a chcete zmazať "F" tak spravíte DeleteLineFromText("priecinok/mojsubor.txt","F"); posledný parameter je či má robiť rozdiely medzi AdSdD a ADSDD (true = je to to isté) stock DeleteLineFromLine(file[],linea)// by QWER { new File:a = fopen(file,io_read); new str[128],str2[128]; format(str2,128,"%s.part",file); new File:b = fopen(str2,io_write); new lineb = 1; while(fread(a,str)){ if(lineb == linea){ lineb++; continue; }else{ fwrite(b,str); } lineb++; } fclose(a); fremove(file); fclose(; b = fopen(str2,io_read); fcreate(file); a = fopen(file,io_write); while(fread(b,str)){ fwrite(a,str); } fclose(a); fclose(; fremove(str2); } Tu je to zas nie podľa obsahu riadku ale poradia... začína od 1 (nie od 0...) máte napríklad A B C D E F a chcete zmazať "B" tak dáte DeleteLineFromLine("subor.txt",2); Good Luck Link to comment Share on other sites More sharing options...
Guest Odesláno: 16. Září, 2011 Share Odesláno: 16. Září, 2011 stock TDString(string[]) { new len = strlen(string); for(new i;i<len;i++) { switch(string[ i ]) { case 'ě': { string[ i ] = 'e'; } case 'š': { string[ i ] = 's'; } case 'č': { string[ i ] = 'c'; } case 'ř': { string[ i ] = 'r'; } case 'ž': { string[ i ] = 'z'; } case 'ý': { string[ i ] = 'y'; } case 'á': { string[ i ] = 'a'; } case 'í': { string[ i ] = 'i'; } case 'é': { string[ i ] = 'e'; } default: continue; } } return true; } Co to dělá: Převede diaktriku na normální písmena (dá se dobře využít při textdrawech) Jak to použít: new string1[128]; format(string1,sizeof(string1),"bláblábléblí"); TDString(string1); print(string1); A v konzoli se vám ukáže: blablablebli Kdyby jste si chtěli zajistit další písmena tak to snad zjistíte, a kdyby ne tak mi napiště do soukromé zprávy nebo sem Mort ------------------------------- To QWER: použil bych k tomu pojistku - fexist Link to comment Share on other sites More sharing options...
Guest Odesláno: 18. Září, 2011 Share Odesláno: 18. Září, 2011 Čaute, spravil som funkciu "StrChange" ktorá nahradí slovo slovom... napríklad máte text "ahojte vy moji pupuskovia" a slovo "pupuskovia" nahradíte slovom "chlapi" stock StrChange(str[], find[], change[],bool:caps = true,maxlenght=sizeof(change)) { new i,b = strlen(find); warp: i = strfind(str, find, caps); if(i != -1) { strdel(str, i, i + ; strins(str, change, i,maxlenght); goto warp; } return str; } str = text v ktorom budeme hladať výraz(y) ktoré zmeníme find = text ktorý budeme nahrádzať change = text ktorým budeme nahrádzať caps = je rozdiel medzi "Ahojte" a "AHOJTE" (ak je false, ak je true, je to rovnaké) maxlenght = dĺžka textu ktorým budeme nahrádzať... Example Usage new f[128] = "QWER je king! QWER je king! QWER je king! QWER je king! "; StrChange(f,"king","lama"); printf("%s",f); a v serverlogu nájdete "QWER je lama! QWER je lama! QWER je lama! QWER je lama!" a ak dáte parameter "caps" na hodnotu false new f[128] = "QWER je KING! QWER je KING! QWER je KING! QWER je KING! "); StrChange(f,"king","lama",false); printf("%s",f); tak v serverlogu najdete "QWER je KING! QWERT je KING! QWERT je KING! QWERT je KING! " For Mort #define Cenzura(%0,%1,%2) StrChange(%0,%1,%2) Je to užitočné môžete urobiť anti nadavky... no možností je nekonečno QWER Link to comment Share on other sites More sharing options...
Guest Odesláno: 8. Říjen, 2011 Share Odesláno: 8. Říjen, 2011 Čaute, spravil som ďalšie funkcie /* Function name FindChar Params str[],chars str = string chars = znak Return true = našiel sa false = nenašiel sa (string neobsahuje znak) Example Usage if(FindChar("Ahojte ja som QWER :P",'P')) SCM(playerid,-1,"String obsahuje 'P'"); */ stock FindChar(str[],chars) { new len = strlen(str); for(new i;i < len+1;i++) if(str[i] == chars) return true; return false; } /* Function name DeleteChar Params string[],chars string = string chars = znak Return - Example Usage DeleteChar(":D :D ",':'); */ stock DeleteChar(string[],chars) { new len = strlen(string); for(new i; i} Link to comment Share on other sites More sharing options...
Guest Odesláno: 25. Březen, 2012 Share Odesláno: 25. Březen, 2012 IsFloat (jako float bere i normánlí čísla (17 = 17.000000000000000 ...)) stock Link to comment Share on other sites More sharing options...
Guest Odesláno: 21. Duben, 2012 Share Odesláno: 21. Duben, 2012 CreateRandomizePassword Vytvoří náhodné heslo Parametry: max_chars=6 - maximum písmen/čísel Použití: printf("%s",CreateRandomizePassword(128)); Link to comment Share on other sites More sharing options...
jenkings 121 Odesláno: 21. Duben, 2012 Share Odesláno: 21. Duben, 2012 Tady je zmražení hráče na čas: stock Timedfreeze(playerid, time) { TogglePlayerControllable(playerid, 0); SetTimerEx("odmrazeni", time*1000, false, "i", playerid); } forward odmrazeni(playerid); public odmrazeni(playerid) { TogglePlayerControllable(playerid, 1); SendClientMessage(playerid,B_MODR,"Byl jsi odmražen!"); } Čas zmražení zadávejte ve vteřinách Link to comment Share on other sites More sharing options...
LYRIcS 88 Odesláno: 21. Duben, 2012 Share Odesláno: 21. Duben, 2012 Tady je zmražení hráče na čas: stock Timedfreeze(playerid, time) { TogglePlayerControllable(playerid, 0); SetTimerEx("odmrazeni", time*1000, false, "i", playerid); } forward odmrazeni(playerid); public odmrazeni(playerid) { TogglePlayerControllable(playerid, 1); SendClientMessage(playerid,B_MODR,"Byl jsi odmražen!"); } Čas zmražení zadávejte ve vteřinách mal by si tam dat ale premennu na timer a KillTimer potom, lebo mozu nastat problemy Link to comment Share on other sites More sharing options...
jenkings 121 Odesláno: 21. Duben, 2012 Share Odesláno: 21. Duben, 2012 Tady je zmražení hráče na čas: stock Timedfreeze(playerid, time) { TogglePlayerControllable(playerid, 0); SetTimerEx("odmrazeni", time*1000, false, "i", playerid); } forward odmrazeni(playerid); public odmrazeni(playerid) { TogglePlayerControllable(playerid, 1); SendClientMessage(playerid,B_MODR,"Byl jsi odmražen!"); } Čas zmražení zadávejte ve vteřinách mal by si tam dat ale premennu na timer a KillTimer potom, lebo mozu nastat problemy Já to mám v módu a žádný problémy jsem s tím neměl Link to comment Share on other sites More sharing options...
Guest Odesláno: 21. Duben, 2012 Share Odesláno: 21. Duben, 2012 Tady je zmražení hráče na čas: stock Timedfreeze(playerid, time) { TogglePlayerControllable(playerid, 0); SetTimerEx("odmrazeni", time*1000, false, "i", playerid); } forward odmrazeni(playerid); public odmrazeni(playerid) { TogglePlayerControllable(playerid, 1); SendClientMessage(playerid,B_MODR,"Byl jsi odmražen!"); } Čas zmražení zadávejte ve vteřinách Každý callback musí mít return. Pro snadné tvoření callbacků: #define PUBLIC:%0(%1)\ forward %0(%1); \ public %0(%1) Použití: PUBLIC:ZabijuTe(playerid,kohoZabije,Float:minusHp) { new Link to comment Share on other sites More sharing options...
Vidie 5 Odesláno: 20. Červen, 2012 Share Odesláno: 20. Červen, 2012 Funkce: IsPlayerInVehicleWithTuneWheels(playerid) Autor: nVidiaX - Zjistí, jestli hráč sedí ve vozidle, na které se dají přidělat tuning kola. Pokud ano, vráti hodnotu 1, pokud ne, vrátí hodnotu 0, pokud auto neexistuje, nebo v něm nesedí, vrátí hodnotu -1. stock IsPlayerInVehicleWithTuneWheels(playerid) { new modelid = GetVehicleModel(GetPlayerVehicleID(playerid)); switch(modelid) { case 433,431,524,437,455,403,443,515,514,408,486,573,444,556,557,406,417,425,432,446,447,448,449,450,452,453,454,460,461,462,463,464,465,468,469,472,473,476,481,484,487,488,493,497,501,509,510,511,512,513,519,520,521,522,523,539,548,563,564,577,581,584,586,592,593,594,595,606,607,608,610,611: return 0; default: return 1; } return -1; } Funkce: IsPlayerInVehicleWithPaintjob(playerid) Autor: nVidiaX Zjistí, zda hráč sedí ve vozidle, na které může být přidán paintjob. Pokud jde přidat 1 paintjob na vozidlo (Camper), vrátí hodnotu 1, Pokud jdou přidat 3 paintjoby na vozidlo, vrátí hodnotu 2, pokud nejde na vozidlo paintjob, vrátí hodnotu 0 a pokud hráč nesedí ve vozidle, vrátí hodnotu -1. stock IsPlayerInVehicleWithPaintjob(playerid) { new modelid = GetVehicleModel(GetPlayerVehicleID(playerid)); switch(modelid) { case 483: return 1; case 534,535,536,558,559,560,561,562,565,567,575,576: return 2; default: return 0; } return -1; } Funkce: AddVehicleComponentForPlayer(playerid, componentid) Autor: nVidiaX Zjednodušení funkce AddVehicleComponent, akorát pro hráče, nemusíte zjištovat ID vozidla, vše je ve stocku. Např.: if (strcmp("/nitro", cmdtext, true, 6) == 0) { AddVehicleComponenForPlayer(playerid, 1010); //Dá nitro. return 1; } stock AddVehicleComponentForPlayer(playerid, componentid) { if(IsPlayerConnected(playerid)) { if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER) { new vehicleid = GetPlayerVehicleID(playerid); AddVehicleComponent(vehicleid, componentid); } } return 1; } Link to comment Share on other sites More sharing options...
ATomas 289 Odesláno: 20. Červen, 2012 Share Odesláno: 20. Červen, 2012 Prevede vteriny na minuty a vteriny stock SecondToMinute(second,&minut,&vterin) { minut = floatround(second/60,floatround_floor); vterin = second-(minut*60); } //a zde i pro desetine vteriny (napr kdyz potrebujete i milisekundy) stock SecondToMinuteFloat(Float:second,&minut,&Float:vterin) { minut = floatround(second/60,floatround_floor); vterin = second-(minut*60); } Dava mezery do cisla - navraci string stock Number(cislo) { new string[16]; format(string,sizeof(string),"%d",cislo); if(cislo >= 1000) strins(string," ",strlen(string)-3,sizeof(string)); if(cislo >= 1000000) strins(string," ",strlen(string)-7,sizeof(string)); if(cislo >= 1000000000) strins(string," ",strlen(string)-11,sizeof(string)); return string; } Seradi hodnoty promenych od nejmensiho po nejvetsi #define MAX_SERAZENYCH_CISEL 5 stock SeraditCisla(...) { new arg = numargs(); new vec[MAX_SERAZENYCH_CISEL]; for(new s;s new bool:id[MAX_SERAZENYCH_CISEL],count; for(new p;p { new maxim = 2147000000,idx; for(new i;i { if(vec[i] < maxim && id[i] == false) { idx = i; maxim = vec[i]; } } id[idx] = true; setarg(count,0,maxim); count++; } return 1; } Vsechny scripty jsem vytvoril ja, pokud je kladeno toto pravidlo Link to comment Share on other sites More sharing options...
Guest Odesláno: 21. Červen, 2012 Share Odesláno: 21. Červen, 2012 Zkusil jsem udělat taky Number s mezerami stock Link to comment Share on other sites More sharing options...
LYRIcS 88 Odesláno: 21. Červen, 2012 Share Odesláno: 21. Červen, 2012 stock IsPlayerInWater(playerid) { new animindex = GetPlayerAnimationIndex(playerid); if(((animindex >= 1538) && (animindex <= 1542)) || (animindex == 1544) || (animindex == 1250)) return true; return false; } Zisťuje či je hráč vo vode (podľa animácie). ------------------------------------------------------------------------------------------------------------------------------------------ stock ClearKillList() { for(new l=0; l<6; l++) SendDeathMessage(202, 202, 202); } Vyčistí kill list (všetkým hráčom). ------------------------------------------------------------------------------------------------------------------------------------------ stock fcopy(from[], to[]) { if(fexist(from)) { new File:f_from = fopen(from, io_read), File:f_to = fopen(to, io_write), string[1024]; while(fread(f_from, string)) fwrite(f_to, string); fclose(f_from); fclose(f_to); } } Nakopíruje súbor. Príklad: fcopy("Folder1/Items/Menu.txt", "subor2.cfg"); (Nakopíruje obsah súboru "Folder1/Items/Menu.txt" do súboru "subor2.cfg" (ak neexistuje, automaticky sa vytvorí))[/b] ------------------------------------------------------------------------------------------------------------------------------------------ stock StlipString(dstr[], count) { for(new pos = count; pos { strins(dstr, "\n", chrfind(' ', dstr, pos)+1, 512); } } Rozdelí daný string na riadky po danom počte písmen. Príklad: StlipString("Caw bro, jak sa mas. Lebo ja sa mam muhahahaha dobre :D", 15); rozdeli string na riadky tak, aby v jednom riadku bolo minimálne 15 znakov (po nájdení prvého znaku "medzera" za daným znakom v poradí vloží nový riadok). Dobre využiteľné napr. pri SMS-kách... Text bude následne vypadať takto: Caw bro, jak samas. Lebo ja sa mam muhahahaha dobre Link to comment Share on other sites More sharing options...
Ad@m 0 Odesláno: 21. Červen, 2012 Share Odesláno: 21. Červen, 2012 to stock Link to comment Share on other sites More sharing options...
LYRIcS 88 Odesláno: 21. Červen, 2012 Share Odesláno: 21. Červen, 2012 to stock ClearKillList() { for(new l=0; l<6; l++) SendDeathMessage(202, 202, 202); } som hladal inak diks moc nz Link to comment Share on other sites More sharing options...
Guest Odesláno: 1. Červenec, 2012 Share Odesláno: 1. Červenec, 2012 formatEx Vytvořil jsem jednoduchou funkci pro formátování zprávy na jeden řádek! použití: formatEx:názevProměnné(velikostProměnné,formátovanáZpráva,argumenty) Ukázka použití: formatEx:nejakyString(128,"Zdrávím Link to comment Share on other sites More sharing options...
Administrátor Ewwe 434 Odesláno: 1. Červenec, 2012 Administrátor Share Odesláno: 1. Červenec, 2012 používam jsem něco podobného z vlastní zahrádky ale super Link to comment Share on other sites More sharing options...
rhsCZ 19 Odesláno: 5. Červenec, 2012 Share Odesláno: 5. Červenec, 2012 PlayAudioStreamForAll(url[]) { for(new i = 0;i < MAX_PLAYERS;i++) { if(IsPlayerConnected(i)) { PlayAudioStreamForPlayer(i,url); } } } je to bez souřadnic protože nwm jak udělat aby to fungoval bez souřadnic i se souřadnicema přemýšlim jestly by to nešlo nacpat do definice Link to comment Share on other sites More sharing options...
Guest Odesláno: 5. Červenec, 2012 Share Odesláno: 5. Červenec, 2012 PlayAudioStreamForAll(url[]) { for(new i = 0;i < MAX_PLAYERS;i++) { if(IsPlayerConnected(i)) { PlayAudioStreamForPlayer(i,url); } } } je to bez souřadnic protože nwm jak udělat aby to fungoval bez souřadnic i se souřadnicema přemýšlim jestly by to nešlo nacpat do definice S i bez: PlayAudioStreamForAll(url[],Float:posX = 0.0, Float:posY = 0.0, Float:posZ = 0.0, Float:distance = 50.0, usepos = 0)) { for(new i = 0;i < MAX_PLAYERS;i++) { if(IsPlayerConnected(i)) { PlayAudioStreamForPlayer(i,url,posX,posY,posZ,distance,usepos); } } } 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