Ez a szekció lehetővé teszi a felhasználó által írt összes hozzászólás megtekintését. Vedd figyelembe, hogy csak azokba a fórumokba írt hozzászólásokat látod, amelyekhez hozzáférésed van.
Üzenetek - anorennia
Oldalak: 1 ... 10 11 [12] 13 14 ... 23
166
« Dátum: 2013. július 17. - 20:08:23 »
no nézd meg így... tedd vissza majd a textdrawokat, /addexp paranccsal kapsz 500 exp-t #include <a_samp> #include <dudb> #include <progress> new Text:ExpText[MAX_PLAYERS]; new Text:LevelText[MAX_PLAYERS]; new Text:Textdraw0; new Bar:bar[MAX_PLAYERS]; new Text3D:LevelLabel[MAX_PLAYERS]; new pfile[100]; //You can change these values. #define ExpForLevel 1000 //How much exp you need to pass a level. The Exp gets multiplied by the level. If you\'ve got 1000 total exp then for lvl 2 it will be 2000 #define MaxLevel 99 //The maximum level a player can achieve. #define UseProgBar // Define wheater to use íthe progress bar or not. Comment the line if you don\'t want a progress bar and leave like that if you do want a progress bar. #define ProgBarColor 0x0000FFFF //The experience bar\'s color. #define TextLabelColor 0x00FFFFFF // The textlabel\'s color. #define CashForLevelUp 300 //This is the cash you get for levelling up. It gets multiplied by the level you achieved and one more time by a number you define. #define CashMultiplier 1 //This multiplies the Cash * Level achieved by the number you want. #define GameTextStyle 4 //This defines the GameText\'s style used for the GivePlayerExp function. #define GameTextTime 3000 //This defines the time for which the GameText for the GivePlayerExp function will be visible #define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, \"\")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1 #pragma unused strtok #pragma unused ret_memcpy //Declaring New //new nev[MAX_PLAYER_NAME]; //The function which gives exp. Usage: GivePlayerExp(playerid, ammount, reason); stock GivePlayerExp(playerid, exp, reason[]) { new string2[126], string3[126], string4[126]; format(pfile, sizeof(pfile), \"Szerver/%s.ini\",pName(playerid)); dini_IntSet(pfile, \"Exp\", dini_Int(pfile, \"Exp\") +exp); if (dini_Int(pfile, \"Exp\") >= dini_Int(pfile, \"TotalExp\")) { if (dini_Int(pfile, \"ExpLevel\") < MaxLevel) { while (dini_Int(pfile, \"Exp\") >= dini_Int(pfile, \"TotalExp\")) { dini_IntSet(pfile, \"Exp\", dini_Int(pfile, \"Exp\") - dini_Int(pfile, \"TotalExp\")); dini_IntSet(pfile, \"ExpLevel\", dini_Int(pfile, \"ExpLevel\") + 1); dini_IntSet(pfile, \"TotalExp\", dini_Int(pfile, \"ExpLevel\") * ExpForLevel); format(string3, sizeof(string3), \"Level: %02d\",dini_Int(pfile, \"ExpLevel\")); TextDrawSetString(LevelText[playerid], string3); GivePlayerMoney(playerid, CashForLevelUp * dini_Int(pfile, \"ExpLevel\") * CashMultiplier); format(string4, sizeof(string4), \"~p~You got %d Exp for ~n~%s !~n~~g~Level up!\", exp, reason); } } else { GameTextForPlayer(playerid, \"~g~Max Level Reached!\", GameTextTime, GameTextStyle); dini_IntSet(pfile, \"Exp\", dini_Int(pfile, \"TotalExp\")); } } else { format(string4, sizeof(string4), \"~p~You got %d Exp for ~n~%s !\", exp, reason); } format(string2, sizeof(string2), \"Exp: %05d/%05d\",dini_Int(pfile, \"Exp\"), dini_Int(pfile, \"TotalExp\")); TextDrawSetString(ExpText[playerid], string2); #if defined UseProgBar SetProgressBarValue(bar[playerid], dini_Int(pfile, \"Exp\")); SetProgressBarMaxValue(bar[playerid], dini_Int(pfile, \"TotalExp\")); UpdateProgressBar(bar[playerid], playerid); #endif GameTextForPlayer(playerid, string4, GameTextTime, GameTextStyle); format(string3, sizeof(string3), \"Level: %02d\",dini_Int(pfile, \"ExpLevel\")); Update3DTextLabelText(LevelLabel[playerid], TextLabelColor, string3); } //The function to get a player\'s level. Usage: GetPlayerLevel(playerid) stock GetPlayerExpLevel(playerid) { new Plevel; format(pfile, sizeof(pfile), \"Szerver/%s.ini\",pName(playerid)); Plevel = dini_Int(pfile, \"ExpLevel\"); return Plevel; } //The function to get a player\'s experience. Usage: GetPlayerExp(playerid) stock GetPlayerExp(playerid) { new PExp; format(pfile, sizeof(pfile), \"Szerver/%s.ini\",pName(playerid)); PExp = dini_Int(pfile, \"Exp\"); return PExp; } //The function to get a player\'s experience needed to lvl up. Usage: GetPlayerTotalExp(playerid) stock GetPlayerTotalExp(playerid) { new PTotalExp; format(pfile, sizeof(pfile), \"Szerver/%s.ini\",pName(playerid)); PTotalExp = dini_Int(pfile, \"TotalExp\"); return PTotalExp; } public OnPlayerConnect(playerid) { new string2[126], string3[126]; format(pfile, sizeof(pfile), \"Szerver/%s.ini\",pName(playerid)); if(dini_Exists(pfile)) // ha létezik.. { format(string2, sizeof(string2), \"Exp: %05d/%05d\",GetPlayerExp(playerid), GetPlayerTotalExp(playerid)); TextDrawSetString(ExpText[playerid], string2); format(string3, sizeof(string3), \"Level: %02d\",GetPlayerExpLevel(playerid)); TextDrawSetString(LevelText[playerid], string3); SetPlayerMoney(playerid, dini_Int(pfile, \"Cash\")); SetPlayerScore(playerid, dini_Int(pfile, \"Score\")); } else // ha nem.. { dini_Create(pfile); // akkor csinálja meg dini_IntSet(pfile, \"ExpLevel\", 1); dini_IntSet(pfile, \"Exp\", 0); dini_IntSet(pfile, \"TotalExp\", ExpForLevel); } format(string2, sizeof(string2), \"Exp: %05d/%05d\",GetPlayerExp(playerid), GetPlayerTotalExp(playerid)); TextDrawSetString(ExpText[playerid], string2); format(string3, sizeof(string3), \"Level: %02d\",GetPlayerExpLevel(playerid)); TextDrawSetString(LevelText[playerid], string3); return 1; } public OnPlayerDisconnect(playerid, reason) { TextDrawHideForAll(Textdraw0); TextDrawDestroy(Textdraw0); TextDrawDestroy(ExpText[playerid]); TextDrawDestroy(ExpText[playerid]); format(pfile, sizeof(pfile), \"Szerver/%s.ini\",pName(playerid)); dini_IntSet(pfile, \"Cash\", GetPlayerMoney(playerid)); dini_IntSet(pfile, \"Score\", GetPlayerScore(playerid)); dini_IntSet(pfile, \"ExpLevel\", GetPlayerExp(playerid)); // level elmentése dini_IntSet(pfile, \"Exp\", GetPlayerExpLevel(playerid)); // exp elmentése dini_IntSet(pfile, \"TotalExp\", GetPlayerTotalExp(playerid)); // totalexp elmentése return 1; } public OnPlayerSpawn(playerid) { TextDrawShowForPlayer(playerid, Textdraw0); TextDrawShowForPlayer(playerid, ExpText[playerid]); TextDrawShowForPlayer(playerid, LevelText[playerid]); return 1; } public OnPlayerDeath(playerid, killerid, reason) { if (killerid != playerid) { if (GetPlayerExpLevel(playerid) < GetPlayerExpLevel(killerid)) { GivePlayerExp(killerid, 100, \"killing a lower level player\"); } else if (GetPlayerExpLevel(playerid) > GetPlayerExpLevel(killerid)) { GivePlayerExp(killerid, 300, \"killing a higher level player\"); } else { GivePlayerExp(killerid, 200, \"killing a player at your own level\"); } } // An example of using my exp system. return 1; } dcmd_addexp(playerid,params[]) { #pragma unused params GivePlayerExp(playerid, 500, \"addexp parancs hasznalata\"); return 1; } public OnPlayerCommandText(playerid, cmdtext[]) { dcmd(addexp,6,cmdtext); return 0; } new pname[24]; pName(playerid) { GetPlayerName(playerid, pname, sizeof(pname)); return pname; } 1-2 dolgot beleraktam ha nem kell majd szedd ki, a pname-t leegyszerûsítettem, nálam mûködik, a parancs dcmd-s
167
« Dátum: 2013. július 17. - 19:50:47 »
Keress rá erre: /Szerver/%s.ini az fs-ben.. Azt a / jelet akarod az elejére?
168
« Dátum: 2013. július 17. - 17:00:23 »
if(dini_Exists(pfile)) // ha létezik.. { // ne csináljon semmit.. } else // ha nem.. { dini_Create(pfile); // akkor csinálja meg } próbáld így
169
« Dátum: 2013. július 17. - 16:47:01 »
Köszi, így már értem
170
« Dátum: 2013. július 17. - 05:29:47 »
#include <a_samp> #define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, \"\")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1 dcmd_sziv(playerid,params[]) { #pragma unused params SetPlayerWeather(playerid, -66); // átállítja arra a drogosra (-66) SetTimer(\"Beszivva\", 60000, false); // 1 perc false = nem ismétli return 1; } public OnPlayerCommandText(playerid, cmdtext[]) { dcmd(sziv,4,cmdtext); return 0; } forward Beszivva(playerid); public Beszivva(playerid) { SetPlayerWeather(playerid, 1); // 1 perc múlva visszaállítja 1-re a weatherid-t return 1; }
171
« Dátum: 2013. július 17. - 04:09:48 »
Üdv! A mi nap így nagyba, találkoztam egy eddig nem észlelt hibával (meuu) vagy mi a föne. Komolyra fordítva a témát, van nekem egy accounts táblám, de amikor bármelyik értéket változtatni próbálom (adatbázisba) ez a bitang jószág, átállítja 0-ra vagy, ami ezelõtt volt érték. Hogy lehet megszelídíteni ezt a jószágot és új értékeket adni? Vagy egyáltalán találkozott már valaki ilyen hibával? :wall: :tantrum: :angry: :hmmm: :no: :facepalm: :grrrrr: :wag: :weep: :yucky:
172
« Dátum: 2013. július 17. - 03:37:39 »
valószínû for (new i=1; i<MAX_VEHICLES; i++)
173
« Dátum: 2013. július 17. - 03:32:30 »
#define WeatherTime 10 // 10 millisec (ez lehet egy kicsit gyors ) public OnGameModeInit() { SetTimer(\"ChangeWeather\", WeatherTime, true); return 1; } forward ChangeWeather(playerid); public ChangeWeather(playerid) { switch(random(10)) { case 0: { SetPlayerWeather(playerid, -66); } case 1: { SetPlayerWeather(playerid, 666); } case 2: { SetPlayerWeather(playerid, 10000); } } return 1; } Ha erre gondoltál...
174
« Dátum: 2013. július 17. - 03:07:49 »
Hello! Töltsd be az npc_record-ot (alap filterscript), utána elmész a kívánt pozícióra, beírod /ofrecord [recordname], ha végeztél /stoprecord. A felvett record a scriptfiles-ba lesz. GameMode-ba: public OnGameModeInit() { ConnectNPC(\"NPCname\",\"recordname\"); return 1; }
utána: public OnPlayerSpawn(playerid) { new playername[64]; GetPlayerName(playerid,playername,64); if(!strcmp(playername, \"NPCname\", true)) { SetSpawnInfo( playerid, 0, 1, 1958.33, 1343.12, 15.36, 269.15, 0, 0, 0, 0, 0, 0 ); //SetSpawnInfo(playerid, team, skin, Float:x, Float:y, Float:z, Float:rotation, weapon1, weapon1_ammo, weapon2, weapon2_ammo, weapon3, weapon3_ammo); SetPlayerColor(playerid,0xFFFFFFFF); } } A sciptfiles-ból másold be a record-ot az npcmodes/recordings mappába. Az npcmodes mappában hozz lérte egy pwn file-t ami ezt tartalmazza: #define RECORDING \"recordname\" // record nevét írd ide #define RECORDING_TYPE 2 // 1 jármûves npc, 2 onfoot #include <a_npc> main(){} public OnRecordingPlaybackEnd() StartRecordingPlayback(RECORDING_TYPE, RECORDING); #if RECORDING_TYPE == 1 public OnNPCEnterVehicle(vehicleid, seatid) StartRecordingPlayback(RECORDING_TYPE, RECORDING); public OnNPCExitVehicle() StopRecordingPlayback(); #else public OnNPCSpawn() StartRecordingPlayback(RECORDING_TYPE, RECORDING); #endif Neve egyezzen meg a recording nevével Mentsd el és már bent is az NPC
175
« Dátum: 2013. július 17. - 02:09:29 »
Hello, külön billentyûre nem lehet beállítani, de itt vannak, amiket lehet használni: http://wiki.sa-mp.com/wiki/Keys #include <a_samp> public OnPlayerKeyStateChange(playerid, newkeys, oldkeys) { if(newkeys == KEY_YES) // Y billentyû { ShowPlayerDialog(playerid, 1000, DIALOG_STYLE_LIST, \"Teleportok\", \"Teleport1\\nTeleport2\", \"Tele\", \"Kilép\"); } } public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) { if(dialogid == 1000) { if(response) { switch(listitem) { case 0: { SendClientMessage(playerid, -1, \"Teleport 1\"); // ide a SetPlayerPos(playerid, x, y, z); } case 1: { SendClientMessage(playerid, -1, \"Teleport 2\"); // ide a SetPlayerPos(playerid, x, y, z); } } } } }
176
« Dátum: 2013. július 17. - 01:56:08 »
GameMode-ba illeszd bele (saját script, írj ha valami hibát találsz) #include <a_samp> #include <Dini> #define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, \"\")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1 // dcmdhez kell #define MAX_WANTED_LEVEL 6 // Itt állítod be, mennyi legyen a maximum körözési szint #define ResetWantedLevel true // Itt tudod engedélyezni, hogy nullázza a körözési szintet halál után (true = engedélyez || false = tílt) new File[64]; enum PlayerInfo { pWantedLevel // Ide menti el/tölti be ideiglenesen azt, hogy mennyi a körözési szint }; main() { print(\"\\n----------------------------------\"); print(\" WantedLevel System Loaded...\"); print(\"----------------------------------\\n\"); } new pInfo[MAX_PLAYERS][PlayerInfo]; // Az enumhoz kell... public OnPlayerConnect(playerid) // Ha a játékos csatlakozik.. { format(File, 64, \"Jatekos/%s.ini\", pName(playerid)); if(dini_Exists(File)) // ..és létezik a dini fájl.. { pInfo[playerid][pWantedLevel] = dini_Int(File, \"WantedLevel\"); // ..akkor állítsa át a változó értékét arra, amit fáljból kiolvasott.. } else // ..viszont, ha nem létezik a dini fájl.. { dini_Create(File); // ..csinálja meg.. dini_IntSet(File, \"WantedLevel\", 0); // ..írja bele hogy WantedLevel=0. pInfo[playerid][pWantedLevel] = dini_Int(File, \"WantedLevel\"); } return 1; } public OnPlayerDisconnect(playerid) // Ha a játékos kilép.. { format(File, 64, \"Jatekos/%s.ini\", pName(playerid)); // a dini dini_IntSet(File, \"WantedLevel\", pInfo[playerid][pWantedLevel]); // ..akkor mentse el a dini fáljba, amit az enumba tárolt. new string[64]; format(string, 64, \"%s WL: %d\", pName(playerid), pInfo[playerid][pWantedLevel]); print(string); return 1; } public OnPlayerSpawn(playerid) // Ha a játékos lespawnolt.. { SetPlayerWantedLevel(playerid, pInfo[playerid][pWantedLevel]); // ..állítsa át a körözési szintet arra, amit tartalmaz az enum változó. new string[128]; format(string,128,\"Körözési szinted: %d\", pInfo[playerid][pWantedLevel]); // Formázza a körözési szintet.. SendClientMessage(playerid, -1, string); // ..és kiírja mennyi a körözési szint } public OnPlayerDeath(playerid, killerid, reason) // Ha a játékos meghalt.. { #if ResetWantedLevel == true // ..és engedélyezve van az, hogy nullázza a körözési szintet.. SetPlayerWantedLevel(playerid, 0); // ..akkor nullázza. #endif //Ha false-ra írod át a true-t akkor az OnPlayerSpawn-nál újra átírja arra, ami volt. return 1; } dcmd_setwantedlevel(playerid,params[]) // parancs { new Index; new tmp[256]; tmp = strtok(params,Index); // playerid/játékosnév new tmp2[256]; tmp2 = strtok(params,Index); // körözési szint if(!strlen(tmp) || !strlen(tmp2) || !IsNumeric(tmp2)) // ha nem írt be playerid-t || ha nem írt be WantedLevel-t || ha a WantedLevel nem szám { SendClientMessage(playerid, -1, \"HASZNÁLAT: /setwantedlevel [JátékosID] [wantedlevel)]\"); // Hibaüzenet return 1; } new player2 = strval(tmp); // kiválasztott játékos ID/játékosnév new wantedlevel = strval(tmp2); // WantedLevel if(wantedlevel <= MAX_WANTED_LEVEL) // Ha a beírt WantedLevel(körözési szint) nem nagyobb mint a MAX_WANTED_LEVEL (alapból 6) { if(IsPlayerConnected(player2)) { new string[128]; SetPlayerWantedLevel(player2, wantedlevel); // Átcseréli arra a körözési szintet amit beírtál a playerid után format(string,128,\"%s Körözési szintje: %d\", pName(player2), wantedlevel); // játékos körözési szintjének formázása SendClientMessageToAll(-1, string); // Elküldi mindenkinek, hogy a kiválasztott játékosnak mennyi a körözési szintje pInfo[player2][pWantedLevel] = wantedlevel; // Átcseréli az enum változót arra ami be lett írva } else { SendClientMessage(playerid, -1, \"Játékos nincs csatlakozva\"); } } else // Ha többet írtál be mint amennyi be van állítva a MAX_WANTED_LEVEL-nél.. { new string[128]; format(string, 128, \"Maximum WantedLevel: %d\", MAX_WANTED_LEVEL); // ..akkor ez a hibaüzenet jön ki. SendClientMessage(playerid, -1, string); } return 1; } dcmd_wantedlist(playerid, params[]) { #pragma unused params //ez arra szolgál, hogy ne dobjon nekünk \"symbol never use\" warningot.. new strwl[128]; for(new i = 0; i < MAX_PLAYERS; i++) //ez a ciklus szolgál arra, hogy listázzuk az összeset akinek több mint 0 a körözési szint { if(pInfo[pWantedLevel] > 0) //hogyha a körözési szintje nagyobb mint egy, csak akkor listázza { format(strwl, 128, \"Név: %s || Körözésiszint: %i\",pName(i), pInfo[pWantedLevel]); //formázzuk a küldendõ szöveget SendClientMessage(playerid, -1, strwl); //az strwl a küldendõ szöveg } } return 1; } public OnPlayerCommandText(playerid, cmdtext[]) { dcmd(setwantedlevel,14,cmdtext); // A dcmd-hez kell dcmd(wantedlist,10,cmdtext); return 0; } /*Ezzel tudod lekérni a játékos nevét egyszerûbben pl: new string[128]; format(string,128,\"A neved: %s\", pName(playerid)); SendClientMessage(playerid, -1, string); */ new pname[24]; pName(playerid) { GetPlayerName(playerid, pname, sizeof(pname)); return pname; } stock IsNumeric(string[]) { for (new i = 0, j = strlen(string); i < j; i++) { if (string > \'9\' || string < \'0\') return 0; } return 1; }
177
« Dátum: 2013. július 16. - 23:18:51 »
Sziasztok! public OnPlayerText(playerid, text[]) { if(IsPlayerAdmin(playerid)) { new msg[128]; format(msg,sizeof(msg), \"{00CBFF}[{FF0000}rCon{00CBFF}]%s({FF0000}%i{00CBFF}): {FFCC00}%s\", pName(playerid), playerid, text); SendClientMessageToAll(COLOR_WHITE, msg); } return 0; } Az lenne a kérdésem, hogy hiába állítok az msg-nek nagyobb intervallumot, sehogy sem akarja kiírni az egész szöveget. :wall: Ötletek? Ha ezt használom: SendPlayerMessageToAll(playerid, msg); akkor még nagyobb gondok vannak
178
« Dátum: 2013. július 12. - 00:39:13 »
Valaki múltkor keresett kazánt ^^ ID: 929
179
« Dátum: 2013. július 10. - 15:38:36 »
A problémámat megoldottam Most olyan gondom van, hogyha egy dcmd-s parancsba textdrawot rakok, akkor azt írja ki a parancsra, hogy UNKNOWN COMMAND, vagy semmit sem csinál :/ Ha a textdrawot rakok FS-be az Init-hez akkor sem jelenik meg :/ new Text:Map; Map = TextDrawCreate(25.0, 323.0, \"samaps:map\"); // LIB:image TextDrawFont(Map, 4); // Font 4 to show the textures (and not text) TextDrawTextSize(Map, 120.0, 100.0); // Size, X 120, Y 100, It\'s the texture size TextDrawUseBox(Map, 1); // Add it if you want...
180
« Dátum: 2013. július 10. - 14:25:54 »
Üdv. Lenne egy olyan kérdésem, hogy mivel tudok dcmd-ben a parancsból karakterláncot lekérni? Marta ha azt írom például, hogy if(strval(tmp) == \"valami\") azt nem fogadja el :/
Oldalak: 1 ... 10 11 [12] 13 14 ... 23
|