-
Příspěvků
457 -
Registrován
-
Aktivní
-
Vítězných dnů
7
Content Type
Profiles
Forums
Calendar
Gallery
SA-MP
Everything posted by Hrb™
-
Dej sem celý OnPlayerSpawn + OnPlayerDeath jak máš teď.
-
Zkus dat toto: dUserSetINT(PlayerName(playerid)).("skin",GetPlayerSkin(playerid)); // Ulozime skin k tomu jak máš to death[playerid] =1;
-
Zkoušel jsi to v OnPlayerDeath ukládat? Ukaž ten public když tak.
-
Do OnPlayerPickUpPickup: if(pickupid == BINCOPICKUP) { SendClientMessage(playerid,-1,"Použitím příkazu /oblek [iD skinu] si můžeš změnit skin"); } nebo if(pickupid == BINCOPICKUP) return SendClientMessage(playerid,-1,"Použitím příkazu /oblek [iD skinu] si můžeš změnit skin");
-
pomoc [Help] Zákaz vstupu do vozidla pro určité ID
Hrb™ replied to Adeer's question in Herní (SA:MP, CS apod.)
Pokud to chceš pro úplně všechny vozidla, tak to dej do OnPlayerEnterVehicle a na ten WL takto: SetPlayerWantedLevel(playerid, GetPlayerWantedLevel(playerid) +2) // kell94 mě předběhl.. -
Prosím. #include <a_samp> //------------------------------------------------------------------------------ #define DIALOGID 3000 #define COLOR_RED 0xAA3333AA #pragma tabsize 0 //------------------------------------------------------------------------------ new aobjekt[1]; //------------------------------------------------------------------------------ public OnPlayerCommandText(playerid, cmdtext[]) { if (strcmp("/controlpanel", cmdtext, true, 10) == 0) { if(IsPlayerAdmin(playerid)) { ShowPlayerDialog(playerid, DIALOGID, DIALOG_STYLE_LIST, "Admin Control Panel", "Počasí\nČas\nGravitace\nAkce pro všechny\nOstatní příkazy\nMoje příkazy", "Select", "Cancel"); } return 1; } return 0; } //------------------------------------------------------------------------------ public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) { if(dialogid == DIALOGID) { if(response) { if(listitem == 0) { ShowPlayerDialog(playerid, DIALOGID+1, DIALOG_STYLE_LIST, "Vyber si počasí", "Slunečno\nPod Mrakem\nDeštivo\nPísečná Bouře\nSilný Déšť\nZataženo\nHurikán\nSlabší písečná bouře\nKonec Světa\nFialové nebe", "Select", "Cancel"); } if(listitem == 1) { ShowPlayerDialog(playerid, DIALOGID+2, DIALOG_STYLE_LIST, "Nastav Denní dobu", "1\n2\n3\n4\n5\n4\n6\n7\n8\n9\n10\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20\n21\n22\n23\n24", "Select", "Cancel"); } if(listitem == 2) { ShowPlayerDialog(playerid, DIALOGID+3, DIALOG_STYLE_LIST, "Gravitace", "0\n1\n2\n5\nNormální\n10\n15", "Select", "Cancel"); } if(listitem == 3) { ShowPlayerDialog(playerid, DIALOGID+4, DIALOG_STYLE_LIST, "Akce pro všechny", "Opít\nVystřízlivět", "Select", "Cancel"); } if(listitem == 4) { ShowPlayerDialog(playerid, DIALOGID+5, DIALOG_STYLE_LIST, "Ostatní příkazy", "Say\nZabít Hráče\nSpawn vozidla\nRestartovat server", "Select", "Cancel"); } if(listitem == 5) { ShowPlayerDialog(playerid, DIALOGID+10, DIALOG_STYLE_LIST, "Moje příkazy", "Zdraví\nVesta", "Select", "Cancel"); } } } //------------------------------------------------------------------------------ if(dialogid == DIALOGID+1) // počasí { if(response) { if(listitem == 0) { SetWeather(1); } if(listitem == 1) { SetWeather(4); } if(listitem == 2) { SetWeather(8); } if(listitem == 3) { SetWeather(19); } if(listitem == 4) { SetWeather(20); } if(listitem == 5) { SetWeather(21); } if(listitem == 6) { SetWeather(32); } if(listitem == 7) { SetWeather(42); } if(listitem == 8) { SetWeather(250); } if(listitem == 9) { SetWeather(2009); } } } //------------------------------------------------------------------------------ if(dialogid == DIALOGID+2) { if(response) { if(listitem == 0) { SetWorldTime(1); } if(listitem == 1) { SetWorldTime(2); } if(listitem == 2) { SetWorldTime(3); } if(listitem == 3) { SetWorldTime(4); } if(listitem == 4) { SetWorldTime(5); } if(listitem == 5) { SetWorldTime(6); } if(listitem == 6) { SetWorldTime(7); } if(listitem == 7) { SetWorldTime(8); } if(listitem == 8) { SetWorldTime(9); } if(listitem == 9) { SetWorldTime(10); } if(listitem == 10) { SetWorldTime(11); } if(listitem == 11) { SetWorldTime(12); } if(listitem == 12) { SetWorldTime(13); } if(listitem == 13) { SetWorldTime(14); } if(listitem == 14) { SetWorldTime(15); } if(listitem == 15) { SetWorldTime(16); } if(listitem == 16) { SetWorldTime(17); } if(listitem == 17) { SetWorldTime(18); } if(listitem == 18) { SetWorldTime(19); } if(listitem == 19) { SetWorldTime(20); } if(listitem == 20) { SetWorldTime(21); } if(listitem == 21) { SetWorldTime(22); } if(listitem == 22) { SetWorldTime(23); } if(listitem == 23) { SetWorldTime(24); } } } //------------------------------------------------------------------------------ if(dialogid == DIALOGID+3) // Gravitace { if(response) { if(listitem == 0) { SetGravity(0.000); } if(listitem == 1) { SetGravity(0.001); } if(listitem == 2) { SetGravity(0.003); } if(listitem == 3) { SetGravity(0.005); } if(listitem == 4) { SetGravity(0.008); } if(listitem == 5) { SetGravity(0.010); } if(listitem == 6) { SetGravity(0.015); } } } //------------------------------------------------------------------------------ if(dialogid == DIALOGID+4) { if(response) { for(new i;i < MAX_PLAYERS; i++) { if(listitem == 0) { if(IsPlayerConnected(i)) { SetPlayerDrunkLevel (i, 50000); SendClientMessageToAll(COLOR_RED,"Admin opil všechny hráče"); } } if(listitem == 1) { if(IsPlayerConnected(i)) { SetPlayerDrunkLevel (i, 0); SendClientMessageToAll(COLOR_RED,"Admin vystřízlivěl všechny hráče"); } } } } } //------------------------------------------------------------------------------ if(dialogid == DIALOGID+5) { if(response) { if(listitem == 0) { ShowPlayerDialog(playerid,DIALOGID+6,DIALOG_STYLE_INPUT,"Say","Váš Text","Rekni","Zavrit"); } if(listitem == 1) { ShowPlayerDialog(playerid,DIALOGID+7,DIALOG_STYLE_INPUT,"Zabít","ID hráče kterého chcete zabít","Zabij","Zavrit"); } if(listitem == 2) { ShowPlayerDialog(playerid,DIALOGID+8,DIALOG_STYLE_INPUT,"Auto","Zadej ID auta které chceš spawnout","Spawni","Zavrit"); } if(listitem == 3) { ShowPlayerDialog(playerid, DIALOGID+9, DIALOG_STYLE_MSGBOX, "Ověřění", "Opravdu chceš restartovat mód ?", "Ano", "Ne"); } } } //------------------------------------------------------------------------------ if(dialogid == DIALOGID+6) { if(response == 1) { new str[80]; format(str,50,"ADMIN: %s",inputtext); SendClientMessageToAll(COLOR_RED,str); } } //------------------------------------------------------------------------------ if(dialogid == DIALOGID+7) { if(response == 1) { if(!isNumeric(inputtext) || !IsPlayerConnected(strval(inputtext))) return SendClientMessage(playerid,COLOR_RED,"Špatně zadané ID"); SetPlayerHealth(strval(inputtext),0); SendClientMessage(strval(inputtext),COLOR_RED,"Administrátor tě zabil"); } } //------------------------------------------------------------------------------ if(dialogid == DIALOGID+8) { if(response == 1) { if(strval(inputtext) < 400 || strval(inputtext) > 611) return SendClientMessage(playerid,COLOR_RED,"Špatné ID"); else if(!isNumeric(inputtext)) return SendClientMessage(playerid,COLOR_RED,"Špatné ID"); new Float:px,Float:py,Float:pz; GetPlayerPos(playerid,px,py,pz); aobjekt[0] = AddStaticVehicle(strval(inputtext), px+2, py, pz, 0, 181, 151); } } //------------------------------------------------------------------------------ if(dialogid == DIALOGID+9) { if(response == 1) { SendClientMessageToAll(COLOR_RED,"Administrátor restartoval server"); SendRconCommand("gmx"); } } //------------------------------------------------------------------------------ if(dialogid == DIALOGID+10) { if(response) { if(listitem == 0) { SetPlayerHealth(playerid,100); } if(listitem == 1) { SetPlayerArmour(playerid,100); } } } //------------------------------------------------------------------------------ return 1; } //------------------------------------------------------------------------------ public OnVehicleDeath(vehicleid) { DestroyVehicle(aobjekt[0]); return 1; } //------------------------------------------------------------------------------ stock isNumeric(const string[]) { new length=strlen(string); if (length==0) return false; for (new i = 0; i < length; i++) { if ((string[i] > '9' || string[i] < '0' && string[i]!='-' && string[i]!='+')|| (string[i]=='-' && i!=0)|| (string[i]=='+' && i!=0)) return false; } if (length==1 && (string[0]=='-' || string[0]=='+')) return false; return true; }
-
v OnPlayerConnect smaž toto: GivePlayerMoney(playerid,dUserINT(PlayerName(playerid)).("money")-GetPlayerMoney(playerid)); new Float:zdravi, Float:vesta; SetPlayerHealth(playerid,dUserINT(PlayerName(playerid)).("vesta")-GetPlayerHealth(playerid,zdravi)); SetPlayerArmour(playerid,dUserINT(PlayerName(playerid)).("vesta")-GetPlayerArmour(playerid,vesta)); SetPlayerSkin(playerid,dUserINT(PlayerName(playerid)).("skin")-GetPlayerSkin(playerid)); a dej to k úspěšnému přihlášení. U tebe tady, takže to dej k tomuto: GivePlayerMoney(playerid,dUserINT(PlayerName(playerid)).("money")-GetPlayerMoney(playerid)); PLAYERLIST_authed[playerid] = true; return SendClientMessage(playerid, BARVA, "Úspěšně přihlášen !"); a potom jak máš v OnPlayerSpawn toto: SetPlayerPos(playerid, 1606,1818,11); Tak to není pozice X,Y a Z. Dám příklad. Takto to vypadá v tom souboru když to uložíš.: AddPlayerClass(0,-1303.8921,2712.1848,50.0625,4.2192,0,0,0,0,0,0); a souřadnice X, Y a Z jsou první 3 číslo. V tomto případě toto: -1303.8921, 2712.1848, 50.0625 Takže si to znova ulož a předělej.
-
[mini TuT/Script] OnPlayerTakeDamage (Dobré pro anti-team kill)
Hrb™ replied to Hrb™'s topic in Herní (SA:MP, CS apod.)
Přebral jsem si to tak, že si narážel na velikost scriptu. -
[mini TuT/Script] OnPlayerTakeDamage (Dobré pro anti-team kill)
Hrb™ replied to Hrb™'s topic in Herní (SA:MP, CS apod.)
O tom vím taky, ale co když mu chceš k tomu napsat zprávu nebo udělat tu zónu u warpů? A navíc, u toho co si poslal tě sice nemůže zabít zbraněmi, ale nožem ano a že by toto byl nějaký velký script, tak to mi nepříjde. -
Jak do jiné země? Kam přesně?
-
Máš v OnGameModeInit toto: AddPlayerClass(... ? A ty zbraně budeš muset asi ukládat kažnou zvlášť a v OnPlayerSpawn načítat.
-
Založil si několik témat. Tady už to má poopravované. http://pawno.cz/index.php?/topic/43080-helpregistrace-ukladani/
-
Takto: public OnPlayerDeath(playerid, killerid, reason) { dUserSetINT(PlayerName(playerid)).("skin",GetPlayerSkin(playerid)); // Ulozime skin death[playerid] =1; //----------------- new playercash; if(killerid == INVALID_PLAYER_ID) { SendDeathMessage(INVALID_PLAYER_ID,playerid,reason); ResetPlayerMoney(playerid); } else { SendDeathMessage(killerid,playerid,reason); SetPlayerScore(killerid,GetPlayerScore(killerid)+1); playercash = GetPlayerMoney(playerid); if (playercash > 0) { GivePlayerMoney(killerid, playercash); ResetPlayerMoney(playerid); } } return 1; }
-
[HLEDÁM]Někoho kdo mi pomůže udělat povolaní do modů
Hrb™ replied to Ronny's topic in Hledám/nabízím
A máš vůbec něco hotového na těch povoláních? Já nevím co to u tebe znamená "pomůže". Jako že ti je udělá, nebo jak? -
Dej sem příkaz kill a nebo OnPlayerDeath prosím. Děkuji.
-
Co jestli půjde? Prostě ty podmínky jsou v móde uplně zbytečně, protože nejsou nikdo použity. Prostě je klidně smaž.
-
Znamená to, že si ty proměnné nikde nepoužil. Takže to new Autobusak, atd je tam úplně zbytečně, takže to můžeš smazat. // Michael byl rychlejší.
-
Pokud jsem si to dobře přeložil, tak 1. chyba znamená, že musíš stáhnout poslední neboli nejnovější include toho streameru a znovu to v pawnu překompilovat. a ta 2. chyba, že si musíš stáhnout sscanf pro 0.3e
-
Zdravím, rozhodl jsem se udělat svůj první mini Tutorial / script. Velice se to hodí pro anti-team kill. Nemusíte už lidi za to třeba kickovat. Takže přejdeme k obsahu. Obsah: Úvod, vysvětlení Krok za krokem při tvorbě anti- team killu Konečná podoba anti-team killu 1. Úvod, vysvětlení public OnPlayerTakeDamage(playerid, issuerid, Float: amount, weaponid) public OnPlayerTakeDamage - název publicu playerid - hráč, na kterém je způsobena újma na zdraví issuerid - hráč, který působí újmu na zdraví 2. hráči Float: amount - hodnota zdraví nebo vesty, která byla ubrána weaponid - ID zbraně, která způsobila újmu na zdraví 2. Krok za krokem při tvorbě anti-team killu public OnPlayerTakeDamage(playerid, issuerid, Float: amount, weaponid) // začneme tím, že si v pawnu najdeme tento public. Pokud zde není, tak ho vložte takto mezi ostatní publicy. { if(issuerid != INVALID_PLAYER_ID) // podmínka, pokud nemá hráč co dělá újmu na zdraví neplatné ID. (Nevím, jak to přesně přeložit.) { if(VašeProměnná[playerid] == VašeProměnná[issuerid] ) // pokud proměnné obou hráčů souhlasí. Místo VašeProměnná se dejte Vaši proměnnou třeba pro zaměstnání nebo jiní. (GetPlayerTeam, ..) { new Float:hp; // vytvoříme si proměnnou pro hráčovo zdraví GetPlayerHealth(playerid, hp); // zjistíme si původní zdraví hráče, který přichází o životy SetPlayerHealth(playerid, hp); // nastavíme mu zpět přesný počet zdraví, který měl před ztrátou zdraví. } // uzavřeme otevřené { } // uzavřeme otevřené { return 1; // konec publicu } Když by jste třeba použili jak je: SetPlayerHealth(playerid, hp); toto: SetPlayerHealth(playerid, hp + amount); Tak to hráči nastaví zpět původní zdraví + ještě zdraví, které ztratil. Může se taky hodit pro anti-kill zónu u warpů. Stačí dat podmínku pokud je v daném radiusu: if(IsPlayerInRangeOfPoint(playerid,1, X, Y, Z )) // 1 - radius (u zón třeba 15.) X,Y,Z - pozice, odkud bude radius. (X, Y a Z si můžeme představit jako střed kruhu.) Konečná podoba: public OnPlayerTakeDamage(playerid, issuerid, Float: amount, weaponid) { if(issuerid != INVALID_PLAYER_ID) { if ( VašeProměnná[playerid] == VašeProměnná [issuerid] ) { new Float:hp; GetPlayerHealth(playerid, hp); SetPlayerHealth(playerid, hp); } } return 1; } Doufám, že se bude hodit. Pokud najdete chybu, prosím opravte mě. Děkuji.
-
Tak za 1. Skin se bude furt ukládat do souboru hráče. Klidně si můžeš najít obchod na skiny. za 2. do public OnPlayerDeath dej: dUserSetINT(PlayerName(playerid)).("skin",GetPlayerSkin(playerid)); // Ulozime skin a pak je více možností. Ty si třeba udělej novou proměnnou: new death[MAX_PLAYERS]; a dej ji takto do public OnPlayerDeath: death[playerid] =1; a v public OnPlayerSpawn udělej toto: smaž toto: SetPlayerPos(playerid,float(dUserINT(PlayerName(playerid)).("x")),float(dUserINT(PlayerName(playerid)).("y")),float(dUserINT(PlayerName(playerid)).("z"))); a dej to tam toto: if(death[playerid] == 1) { SetPlayerPos(playerid, x,y,z); // místo x, y a z si dej souřadnice u nemocnice death[playerid] =0; }else{ SetPlayerPos(playerid,float(dUserINT(PlayerName(playerid)).("x")),float(dUserINT(PlayerName(playerid)).("y")),float(dUserINT(PlayerName(playerid)).("z"))); }
-
Takto to tam dej: dUserSetINT(PlayerName(playerid)).("skin",GetPlayerSkin(playerid)); // Ulozime skin
-
Je. k uložení přidej toto: new Float:zdravi, Float:vesta; dUserSetINT(PlayerName(playerid)).("zivoty",GetPlayerHealth(playerid,zdravi)); // Ulozime zdravi dUserSetINT(PlayerName(playerid)).("vesta",GetPlayerArmour(playerid,vesta)); // Ulozime vestu dUserSetINT(PlayerName(playerid)).("skin",GetPlayerSkin(playerid); // Ulozime skin k načtení: (jak je toto: GivePlayerMoney(playerid,dUserINT(PlayerName(playerid)).("money")-GetPlayerMoney(playerid));) new Float:zdravi, Float:vesta; SetPlayerHealth(playerid,dUserINT(PlayerName(playerid)).("vesta")-GetPlayerHealth(playerid,zdravi)); SetPlayerArmour(playerid,dUserINT(PlayerName(playerid)).("vesta")-GetPlayerArmour(playerid,vesta)); a do public OnPlayerSpawn: SetPlayerSkin(playerid,dUserINT(PlayerName(playerid)).("skin")-GetPlayerSkin(playerid));
-
Hele zkoušel jsem to a jede to. nahoru k new dej: new Float:hp[MAX_PLAYERS]; new podminka[MAX_PLAYERS]; do public OnPlayerSpawn dej: podminka[playerid] =1; SetTimerEx("necpp",5000,true,"i",playerid); //1 000 - 1 sekunda, čas, za jak dlouho mu to bude přidávat. a kamkoliv do módu: forward necpp(playerid); public necpp(playerid) { new Float:health; if(podminka[playerid] == 1) { GetPlayerHealth(playerid,hp[playerid]); podminka[playerid] =2; } else if(podminka[playerid] == 2) { GetPlayerHealth(playerid,health); if(health == hp[playerid] && health < 90) // health < 90 = když je zdraví menší jak 90, tak mu to přidá. Jak mile bude mít víc jak 90 životů, tak mu to nebude přidávat. { SetPlayerHealth(playerid, health +10); // + 10 = kolik chceš aby mu to přidalo podminka[playerid] =1; } } return 1; }
-
jak máš tady toto: dUserSetINT(PlayerName(playerid)).("money",GetPlayerMoney(playerid)); // Ulozime penizem tak to nahraď tímto: new Float:x,Float:y,Float:z; GetPlayerPos(playerid,x,y,z); dUserSetINT(PlayerName(playerid)).("money",GetPlayerMoney(playerid)); // Ulozime penizem dUserSetINT(PlayerName(playerid)).("x",floatround(x)); dUserSetINT(PlayerName(playerid)).("y",floatround(y)); dUserSetINT(PlayerName(playerid)).("z",floatround(z)); a do OnPlayerSpawn: SetPlayerPos(playerid,float(dUserINT(PlayerName(playerid)).("x")),float(dUserINT(PlayerName(playerid)).("y")),float(dUserINT(PlayerName(playerid)).("z")));
-
Stačí pohledat. http://pawno.cz/index.php?/topic/41782-helpukladani-poziceproblem/page__hl__%2Bukl%C3%A1d%C3%A1n%C3%AD+%2Bpozice