DarkDragon_CZE69 17 Odesláno: 7. Červen, 2016 Share Odesláno: 7. Červen, 2016 (upraveno) Zdravím potřeboval bych pomoc rozdělit můj dárkový script na 2 levely a příkaz by měl vypadat /setdarecek [iD] [LEVEL] Zde je můj celý FS: /*Tento Script udělal Stringer_CZE*/ #include #include #include #define COLOR_LIME 0x80FF00FF #define COLOR_TMAVEMODRA 0x0000FFFF #define COLOR_SVETLEMODRA 0x00FFFFFF #define COLOR_SPECCERVENA 0xFF0000FF #define DIALOG_DAREKINFO 1456 #define DIALOG_DAREKINFOA 1457 new DAREK[MAX_PLAYERS]; new DAREKSAVE[50]; new DAREKREMOVE[50]; public OnFilterScriptInit() { return 1; } public OnFilterScriptExit() { return 1; } public OnGameModeInit() { return 1; } public OnGameModeExit() { return 1; } public OnPlayerRequestClass(playerid, classid) { return 1; } public OnPlayerConnect(playerid) { format(DAREKSAVE, sizeof(DAREKSAVE), "/DAREK/%s.txt", Meno(playerid)); DAREK[playerid] = dini_Bool(DAREKSAVE, "DAREK"); return 1; } public OnPlayerDisconnect(playerid, reason) { return 1; } public OnPlayerSpawn(playerid) { return 1; } public OnPlayerDeath(playerid, killerid, reason) { return 1; } public OnVehicleSpawn(vehicleid) { return 1; } public OnVehicleDeath(vehicleid, killerid) { return 1; } public OnPlayerText(playerid, text[]) { return 1; } CMD:setdarecek(playerid,params[]) { new id = strval(params); if(params[0] == '\1') return SendClientMessage(playerid,COLOR_SPECCERVENA, "Použití: /setdarecek [ID]"); else if(!IsPlayerConnected(id)) return SendClientMessage(playerid,COLOR_SPECCERVENA, "Hráč s tímto ID není na serveru!"); else if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid,0xFFFFFFFF, "Jenom RCON může dát hráči dárek!"); else if(DAREK[id] == 1) return SendClientMessage(playerid,COLOR_SPECCERVENA, "Tento hráč už má darek!"); else { DAREK[id] = 1; new setdarecek[150]; format(setdarecek, sizeof(setdarecek), "Administrátor %s dal hráči %s dárek č.1 !", Meno(playerid), Meno(id)); SendClientMessageToAll(COLOR_SPECCERVENA, setdarecek); format(DAREKSAVE, sizeof(DAREKSAVE), "/DAREK/%s.txt", Meno(id)); if(!dini_Exists(DAREKSAVE)) { dini_Create(DAREKSAVE); dini_BoolSet(DAREKSAVE, "DAREK", DAREK[playerid]); } } return 1; } CMD:darecek(playerid,params[]) { if(DAREK[playerid] == 0) return SendClientMessage(playerid, COLOR_SPECCERVENA, "Nevlastníš žádný dárek!"); new string[200]; new name[25]; switch(random(10)) { case 0:{ random(10); GetPlayerName(playerid, name, sizeof(name)); format(string,sizeof(string),"Hráč {00FF00}%s {FF0000}dostal {00FF00}125,000$.", name); SendClientMessageToAll(COLOR_SPECCERVENA,string); DAREK[playerid] = 0; } case 1:{ GetPlayerName(playerid, name, sizeof(name)); format(string,sizeof(string),"Hráč {00FF00}%s {FF0000}dostal {00FF00}500,000$.", name); SendClientMessageToAll(COLOR_SPECCERVENA,string); DAREK[playerid] = 0; } case 2:{ GetPlayerName(playerid, name, sizeof(name)); format(string,sizeof(string),"Hráč {00FF00}%s {FF0000}dostal {00FF00}250,000$.", name); SendClientMessageToAll(COLOR_SPECCERVENA,string); DAREK[playerid] = 0; } case 3:{ GetPlayerName(playerid, name, sizeof(name)); format(string,sizeof(string),"Hráč {00FF00}%s {FF0000}dostal {00FF00}1,000,000.", name); SendClientMessageToAll(COLOR_SPECCERVENA,string); DAREK[playerid] = 0; } case 4:{ GetPlayerName(playerid, name, sizeof(name)); format(string,sizeof(string),"Hráč {00FF00}%s {FF0000}dostal {00FF00}200,000$.", name); SendClientMessageToAll(COLOR_SPECCERVENA,string); DAREK[playerid] = 0; } case 5:{ GetPlayerName(playerid, name, sizeof(name)); format(string,sizeof(string),"Hráč {00FF00}%s {FF0000}dostal {00FF00}25,000$.", name); SendClientMessageToAll(COLOR_SPECCERVENA,string); DAREK[playerid] = 0; } case 6:{ GetPlayerName(playerid, name, sizeof(name)); format(string,sizeof(string),"Hráč {00FF00}%s {FF0000}dostal {00FF00}150,000$.", name); SendClientMessageToAll(COLOR_SPECCERVENA,string); DAREK[playerid] = 0; } case 7:{ GetPlayerName(playerid, name, sizeof(name)); format(string,sizeof(string),"Hráč {00FF00}%s {FF0000}dostal {00FF00}100,000$.", name); SendClientMessageToAll(COLOR_SPECCERVENA,string); DAREK[playerid] = 0; } case 8:{ GetPlayerName(playerid, name, sizeof(name)); format(string,sizeof(string),"Hráč {00FF00}%s {FF0000}má smůlu a nedostal nic.", name); SendClientMessageToAll(COLOR_SPECCERVENA,string); DAREK[playerid] = 0; } case 9:{ GetPlayerName(playerid, name, sizeof(name)); format(string,sizeof(string),"Hráč {00FF00}%s {FF0000}dostal {00FF00}50,000$ .", name); SendClientMessageToAll(COLOR_SPECCERVENA,string); DAREK[playerid] = 0; } } return 1; } CMD:odeberdarecek(playerid,params[]) { new id = strval(params); if(params[0] == '\1') return SendClientMessage(playerid,COLOR_SPECCERVENA, "Použití: /odeberdarecek [ID]"); else if(!IsPlayerConnected(id)) return SendClientMessage(playerid, COLOR_SPECCERVENA, "Hráč s tímto ID není na serveru!"); else if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, COLOR_SPECCERVENA, "Jenom RCON může odebrat dárek!"); else if(DAREK[id] == 0) return SendClientMessage(playerid, COLOR_SPECCERVENA, "Tento hráč nemá dárek!"); else { DAREK[id] = 0; format(DAREKREMOVE, sizeof(DAREKREMOVE), "Administrátor %s odebral hráči %s dárek č.1 !", Meno(playerid), Meno(id)); SendClientMessageToAll(COLOR_SPECCERVENA, DAREKREMOVE); format(DAREKSAVE, sizeof(DAREKSAVE), "/DAREK/%s.txt", Meno(id)); if(dini_Exists(DAREKREMOVE)) { dini_Remove(DAREKREMOVE); } } return 1; } CMD:darekinfo(playerid,params[]) { if(!IsPlayerAdmin(playerid)) return ShowPlayerDialog(playerid,DIALOG_DAREKINFO,DIALOG_STYLE_MSGBOX,"Dárky","{FF0000}Tento script vytvořil Stringer_CZE speciálně pro Hyper Pařbu\nDne 1.6.2016 ©\n\n\n{00FF00}PŘÍKAZY:\n\n{00FF00}/darecek {FF0000}- Otevře dárek číslo 1","Zavřít",""); else { ShowPlayerDialog(playerid,DIALOG_DAREKINFOA,DIALOG_STYLE_MSGBOX,"Dárky - Admini","{FF0000}Tento script vytvořil Stringer_CZE speciálně pro Hyper Pařbu\nDne 1.6.2016 ©\n\n\n{00FF00}PŘÍKAZY:\n\n{00FF00}/darecek {FF0000}- Otevře dárek číslo 1\n\n{00FF00}/setdarecek {FF0000}- Dá hráči dárek č.1(Pouze RCON!)","Zavřít",""); } return 1; } public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger) { return 1; } public OnPlayerExitVehicle(playerid, vehicleid) { return 1; } public OnPlayerStateChange(playerid, newstate, oldstate) { return 1; } public OnPlayerEnterCheckpoint(playerid) { return 1; } public OnPlayerLeaveCheckpoint(playerid) { return 1; } public OnPlayerEnterRaceCheckpoint(playerid) { return 1; } public OnPlayerLeaveRaceCheckpoint(playerid) { return 1; } public OnRconCommand(cmd[]) { return 1; } public OnPlayerRequestSpawn(playerid) { return 1; } public OnObjectMoved(objectid) { return 1; } public OnPlayerObjectMoved(playerid, objectid) { return 1; } public OnPlayerPickUpPickup(playerid, pickupid) { return 1; } public OnVehicleMod(playerid, vehicleid, componentid) { return 1; } public OnVehiclePaintjob(playerid, vehicleid, paintjobid) { return 1; } public OnVehicleRespray(playerid, vehicleid, color1, color2) { return 1; } public OnPlayerSelectedMenuRow(playerid, row) { return 1; } public OnPlayerExitedMenu(playerid) { return 1; } public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid) { return 1; } public OnPlayerKeyStateChange(playerid, newkeys, oldkeys) { return 1; } public OnRconLoginAttempt(ip[], password[], success) { return 1; } public OnPlayerUpdate(playerid) { return 1; } public OnPlayerStreamIn(playerid, forplayerid) { return 1; } public OnPlayerStreamOut(playerid, forplayerid) { return 1; } public OnVehicleStreamIn(vehicleid, forplayerid) { return 1; } public OnVehicleStreamOut(vehicleid, forplayerid) { return 1; } public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) { return 1; } public OnPlayerClickPlayer(playerid, clickedplayerid, source) { return 1; } stock Meno(playerid) { new pName[MAX_PLAYER_NAME]; if(IsPlayerConnected(playerid)) { GetPlayerName(playerid, pName, sizeof(pName)); } return pName; } Mimochodem princip bych měl být takový, že když hráč má Level 1 tak to napíše do chatu všem random zprávu, který budou nastaveny a když má level 2 tak to stejný akorát bude mít trošku lepší výhry Všem předem děkuji za rady. Edited 7. Červen, 2016 by Stringer_CZE 1 Link to comment Share on other sites More sharing options...
0 rEf 53 Odesláno: 9. Červen, 2016 Share Odesláno: 9. Červen, 2016 (upraveno) Takže si přepsal ten string na DAREKSAVE? Mě se zdá že ne protože kdyby ano tak to musí fungovat podle posledních chyb které si uveřejnil (každopádně jestli si si přidělal další errory tak to není nic nového no nikdo to za tebe dělat nebude musíš se to naučit). Edited 10. Červen, 2016 by rEf Link to comment Share on other sites More sharing options...
0 DarkDragon_CZE69 17 Odesláno: 10. Červen, 2016 Author Share Odesláno: 10. Červen, 2016 Takže si přepsal ten string na DAREKSAVE? Mě se zdá že ne protože kdyby ano tak to musí fungovat podle posledních chyb které si uveřejnil (každopádně jestli si si přidělal další errory tak to není nic nového no nikdo to za tebe dělat nebude musíš se to naučit). Prostě to podle tvých rad nejde přejmenoval jsem to na ten DAREKSAVE a furt to prostě háže errory... :/ Link to comment Share on other sites More sharing options...
0 rEf 53 Odesláno: 10. Červen, 2016 Share Odesláno: 10. Červen, 2016 Víš co dej mi sem celý obsah toho tvého fs já ti ho kompletně opravím a udělám protože tímto způsobem by nám to trvalo dalších 100 let. Link to comment Share on other sites More sharing options...
0 DarkDragon_CZE69 17 Odesláno: 12. Červen, 2016 Author Share Odesláno: 12. Červen, 2016 (upraveno) Jj večer to sem hodím protože nemám zrovna doma NTB. A sry, že jsem to nenapsal už dřív. EDIT: Hodím to sem asi až ve středu protože se nějak nemůžu dostat k notebooku. :/ Edited 12. Červen, 2016 by Stringer_CZE Link to comment Share on other sites More sharing options...
0 DarkDragon_CZE69 17 Odesláno: 15. Červen, 2016 Author Share Odesláno: 15. Červen, 2016 Zde to je: /*Tento Script udělal Stringer_CZE*/ #include <a_samp> #include <zcmd> #include <Dini> #include <sscanf2> #pragma tabsize 0 #define COLOR_LIME 0x80FF00FF #define COLOR_TMAVEMODRA 0x0000FFFF #define COLOR_SVETLEMODRA 0x00FFFFFF #define COLOR_SPECCERVENA 0xFF0000FF #define DIALOG_DAREKINFO 1456 #define DIALOG_DAREKINFOA 1457 new DAREK[MAX_PLAYERS]; new DAREKSAVE[50]; new DAREKREMOVE[50]; public OnFilterScriptInit() { return 1; } public OnFilterScriptExit() { return 1; } public OnGameModeInit() { return 1; } public OnGameModeExit() { return 1; } public OnPlayerRequestClass(playerid, classid) { return 1; } public OnPlayerConnect(playerid) { new Meno[MAX_PLAYER_NAME]; GetPlayerName(playerid, Meno, sizeof(Meno)); new DAREKSAVE[50+MAX_PLAYER_NAME]; format(DAREKSAVE, sizeof(DAREKSAVE), "/DAREK/%s.txt", Meno(playerid)); DAREK[playerid] = dini_Int(DAREKSAVE, "DAREK"); return 1; } public OnPlayerDisconnect(playerid, reason) { return 1; } public OnPlayerSpawn(playerid) { return 1; } public OnPlayerDeath(playerid, killerid, reason) { return 1; } public OnVehicleSpawn(vehicleid) { return 1; } public OnVehicleDeath(vehicleid, killerid) { return 1; } public OnPlayerText(playerid, text[]) { return 1; } CMD:setdarecek(playerid, params[]){ new id = strval(params), lvlid, s[156], c[100]; if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, -1, "{FF0000}Nejsi RCON Administrátor."); else if(sscanf(params, "ud", id, lvlid)) return SendClientMessage(playerid, -1, "{FF0000}/setdarecek [ID] [LEVEL 1-2]"); else if(lvlid < 1 || lvlid > 2) return SendClientMessage(playerid, -1, "{FF0000}/setdarecek [ID] [LEVEL 1-2]"); else if(!IsPlayerConnected(id)) return SendClientMessage(playerid, -1, "{FF0000}Toto ID neexistuje."); else if(IsPlayerNPC(id)) return SendClientMessage(playerid, -1, "{FF0000}Toto je NPC."); else if(DAREK[id] != 0) return SendClientMessage(playerid, -1, "{FF0000}Tento hráč již má dárek."); // když se nerovná 0 což znamená že už má nastavený 1 nebo 2 DAREK[id] = lvlid; // nastaví na DAREK[id] level(číslo 1 nebo 2) format(s, sizeof(s), "Admin %s dal hráči %s dárek level %d", Meno(playerid), Meno(id), lvlid); SendClientMessageToAll(-1, s); format(c, sizeof(c), "DAREK/%s.txt", Meno(id)); if(!fexist(c)){ // kontroluje jestli neexistuje dini_Create(c); // vytvoří do složky DAREK .txt soubor dle hráčova jména dini_IntSet(c, "DAREK", lvlid); // zapíše na řádek DAREK o jaký se jedná (číslo 1 nebo 2) } return true; } CMD:darecek(playerid,params[]) { if(DAREK[playerid] == 0) return SendClientMessage(playerid, COLOR_SPECCERVENA, "Nevlastníš žádný dárek!"); new id = strval(params), lvlid, s[156], c[100]; new string[200]; new name[25]; GetPlayerName(playerid, name, sizeof(name)); new rand = RandomEX(0,10); if(lvlid == 1){ switch(rand){ case 0:{ GetPlayerName(playerid, name, sizeof(name)); format(string,sizeof(string),"Hráč {00FF00}%s {FF0000}dostal {00FF00}125,000$.", name); SendClientMessageToAll(COLOR_SPECCERVENA,string); DAREK[playerid] = 0; } case 1:{ GetPlayerName(playerid, name, sizeof(name)); format(string,sizeof(string),"Hráč {00FF00}%s {FF0000}dostal {00FF00}500,000$.", name); SendClientMessageToAll(COLOR_SPECCERVENA,string); DAREK[playerid] = 0; } case 2:{ GetPlayerName(playerid, name, sizeof(name)); format(string,sizeof(string),"Hráč {00FF00}%s {FF0000}dostal {00FF00}250,000$.", name); SendClientMessageToAll(COLOR_SPECCERVENA,string); DAREK[playerid] = 0; } case 3:{ GetPlayerName(playerid, name, sizeof(name)); format(string,sizeof(string),"Hráč {00FF00}%s {FF0000}dostal {00FF00}1,000,000.", name); SendClientMessageToAll(COLOR_SPECCERVENA,string); DAREK[playerid] = 0; } case 4:{ GetPlayerName(playerid, name, sizeof(name)); format(string,sizeof(string),"Hráč {00FF00}%s {FF0000}dostal {00FF00}200,000$.", name); SendClientMessageToAll(COLOR_SPECCERVENA,string); DAREK[playerid] = 0; } case 5:{ GetPlayerName(playerid, name, sizeof(name)); format(string,sizeof(string),"Hráč {00FF00}%s {FF0000}dostal {00FF00}25,000$.", name); SendClientMessageToAll(COLOR_SPECCERVENA,string); DAREK[playerid] = 0; } case 6:{ GetPlayerName(playerid, name, sizeof(name)); format(string,sizeof(string),"Hráč {00FF00}%s {FF0000}dostal {00FF00}150,000$.", name); SendClientMessageToAll(COLOR_SPECCERVENA,string); DAREK[playerid] = 0; } case 7:{ GetPlayerName(playerid, name, sizeof(name)); format(string,sizeof(string),"Hráč {00FF00}%s {FF0000}dostal {00FF00}100,000$.", name); SendClientMessageToAll(COLOR_SPECCERVENA,string); DAREK[playerid] = 0; } case 8:{ GetPlayerName(playerid, name, sizeof(name)); format(string,sizeof(string),"Hráč {00FF00}%s {FF0000}má smůlu a nedostal nic.", name); SendClientMessageToAll(COLOR_SPECCERVENA,string); DAREK[playerid] = 0; } case 9:{ GetPlayerName(playerid, name, sizeof(name)); format(string,sizeof(string),"Hráč {00FF00}%s {FF0000}dostal {00FF00}50,000$ .", name); SendClientMessageToAll(COLOR_SPECCERVENA,string); DAREK[playerid] = 0; } else if(lvlid == 2){ new string[200]; new name[25]; new rand2 = RandomEx(0,1){ switch(rand2){ case 0: GetPlayerName(playerid, name, sizeof(name)); format(string,sizeof(string),"Hráč {00FF00}%s {FF0000}dostal {00FF00}čtyřkolku.", name); SendClientMessageToAll(COLOR_SPECCERVENA,string); DAREK[playerid] = 0; case 1:{ GetPlayerName(playerid, name, sizeof(name)); format(string,sizeof(string),"Hráč {00FF00}%s {FF0000}dostal {00FF00}Sabre.", name); SendClientMessageToAll(COLOR_SPECCERVENA,string); DAREK[playerid] = 0; } } RandomEx(min, max){ return random(max - min) + min; } CMD:odeberdarecek(playerid,params[]) { new id = strval(params); if(params[0] == '\1') return SendClientMessage(playerid,COLOR_SPECCERVENA, "Použití: /odeberdarecek [ID]"); else if(!IsPlayerConnected(id)) return SendClientMessage(playerid, COLOR_SPECCERVENA, "Hráč s tímto ID není na serveru!"); else if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, COLOR_SPECCERVENA, "Jenom RCON může odebrat dárek!"); else if(DAREK[id] == 0) return SendClientMessage(playerid, COLOR_SPECCERVENA, "Tento hráč nemá dárek!"); else { DAREK[id] = 0; format(DAREKREMOVE, sizeof(DAREKREMOVE), "Administrátor %s odebral hráči %s dárek č.1 !", Meno(playerid), Meno(id)); SendClientMessageToAll(COLOR_SPECCERVENA, DAREKREMOVE); format(DAREKSAVE, sizeof(DAREKSAVE), "/DAREK/%s.txt", Meno(id)); if(dini_Exists(DAREKREMOVE)) { dini_Remove(DAREKREMOVE); } } return 1; } CMD:darekinfo(playerid,params[]) { if(!IsPlayerAdmin(playerid)) return ShowPlayerDialog(playerid,DIALOG_DAREKINFO,DIALOG_STYLE_MSGBOX,"Dárky","{FF0000}Tento script vytvořil Stringer_CZE speciálně pro Hyper Pařbu\nDne 1.6.2016 ©\n\n\n{00FF00}PŘÍKAZY:\n\n{00FF00}/darecek {FF0000}- Otevře dárek číslo 1","Zavřít",""); else { ShowPlayerDialog(playerid,DIALOG_DAREKINFOA,DIALOG_STYLE_MSGBOX,"Dárky - Admini","{FF0000}Tento script vytvořil Stringer_CZE speciálně pro Hyper Pařbu\nDne 1.6.2016 ©\n\n\n{00FF00}PŘÍKAZY:\n\n{00FF00}/darecek {FF0000}- Otevře dárek číslo 1\n\n{00FF00}/setdarecek {FF0000}- Dá hráči dárek č.1(Pouze RCON!)","Zavřít",""); } return 1; } public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger) { return 1; } public OnPlayerExitVehicle(playerid, vehicleid) { return 1; } public OnPlayerStateChange(playerid, newstate, oldstate) { return 1; } public OnPlayerEnterCheckpoint(playerid) { return 1; } public OnPlayerLeaveCheckpoint(playerid) { return 1; } public OnPlayerEnterRaceCheckpoint(playerid) { return 1; } public OnPlayerLeaveRaceCheckpoint(playerid) { return 1; } public OnRconCommand(cmd[]) { return 1; } public OnPlayerRequestSpawn(playerid) { return 1; } public OnObjectMoved(objectid) { return 1; } public OnPlayerObjectMoved(playerid, objectid) { return 1; } public OnPlayerPickUpPickup(playerid, pickupid) { return 1; } public OnVehicleMod(playerid, vehicleid, componentid) { return 1; } public OnVehiclePaintjob(playerid, vehicleid, paintjobid) { return 1; } public OnVehicleRespray(playerid, vehicleid, color1, color2) { return 1; } public OnPlayerSelectedMenuRow(playerid, row) { return 1; } public OnPlayerExitedMenu(playerid) { return 1; } public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid) { return 1; } public OnPlayerKeyStateChange(playerid, newkeys, oldkeys) { return 1; } public OnRconLoginAttempt(ip[], password[], success) { return 1; } public OnPlayerUpdate(playerid) { return 1; } public OnPlayerStreamIn(playerid, forplayerid) { return 1; } public OnPlayerStreamOut(playerid, forplayerid) { return 1; } public OnVehicleStreamIn(vehicleid, forplayerid) { return 1; } public OnVehicleStreamOut(vehicleid, forplayerid) { return 1; } public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) { return 1; } public OnPlayerClickPlayer(playerid, clickedplayerid, source) { return 1; } stock Meno(playerid) { new pName[MAX_PLAYER_NAME]; if(IsPlayerConnected(playerid)) { GetPlayerName(playerid, pName, sizeof(pName)); } return pName; } stock sscanf(string[], format[], {Float,_}:...) { #if defined isnull if (isnull(string)) #else if (string[0] == 0 || (string[0] == 1 && string[1] == 0)) #endif { return format[0]; } #pragma tabsize 4 new formatPos = 0, stringPos = 0, paramPos = 2, paramCount = numargs(), delim = ' '; while (string[stringPos] && string[stringPos] <= ' ') { stringPos++; } while (paramPos < paramCount && string[stringPos]) { switch (format[formatPos++]) { case '\0': { return 0; } case 'i', 'd': { new neg = 1, num = 0, ch = string[stringPos]; if (ch == '-') { neg = -1; ch = string[++stringPos]; } do { stringPos++; if ('0' <= ch <= '9') { num = (num * 10) + (ch - '0'); } else { return -1; } } while ((ch = string[stringPos]) > ' ' && ch != delim); setarg(paramPos, 0, num * neg); } case 'h', 'x': { new num = 0, ch = string[stringPos]; do { stringPos++; switch (ch) { case 'x', 'X': { num = 0; continue; } case '0' .. '9': { num = (num << 4) | (ch - '0'); } case 'a' .. 'f': { num = (num << 4) | (ch - ('a' - 10)); } case 'A' .. 'F': { num = (num << 4) | (ch - ('A' - 10)); } default: { return -1; } } } while ((ch = string[stringPos]) > ' ' && ch != delim); setarg(paramPos, 0, num); } case 'c': { setarg(paramPos, 0, string[stringPos++]); } case 'f': { new changestr[16], changepos = 0, strpos = stringPos; while(changepos < 16 && string[strpos] && string[strpos] != delim) { changestr[changepos++] = string[strpos++]; } changestr[changepos] = '\0'; setarg(paramPos,0,_:floatstr(changestr)); } case 'p': { delim = format[formatPos++]; continue; } case '\'': { new end = formatPos - 1, ch; while ((ch = format[++end]) && ch != '\'') {} if (!ch) { return -1; } format[end] = '\0'; if ((ch = strfind(string, format[formatPos], false, stringPos)) == -1) { if (format[end + 1]) { return -1; } return 0; } format[end] = '\''; stringPos = ch + (end - formatPos); formatPos = end + 1; } case 'u': { new end = stringPos - 1, id = 0, bool:num = true, ch; while ((ch = string[++end]) && ch != delim) { if (num) { if ('0' <= ch <= '9') { id = (id * 10) + (ch - '0'); } else { num = false; } } } if (num && IsPlayerConnected(id)) { setarg(paramPos, 0, id); } else { #if !defined foreach #define foreach(%1,%2) for (new %2 = 0; %2 < MAX_PLAYERS; %2++) if (IsPlayerConnected(%2)) #define __SSCANF_FOREACH__ #endif string[end] = '\0'; num = false; new name[MAX_PLAYER_NAME]; id = end - stringPos; foreach (Player, playerid) { GetPlayerName(playerid, name, sizeof (name)); if (!strcmp(name, string[stringPos], true, id)) { setarg(paramPos, 0, playerid); num = true; break; } } if (!num) { setarg(paramPos, 0, INVALID_PLAYER_ID); } string[end] = ch; #if defined __SSCANF_FOREACH__ #undef foreach #undef __SSCANF_FOREACH__ #endif } stringPos = end; } case 's', 'z': { new i = 0, ch; if (format[formatPos]) { while ((ch = string[stringPos++]) && ch != delim) { setarg(paramPos, i++, ch); } if (!i) { return -1; } } else { while ((ch = string[stringPos++])) { setarg(paramPos, i++, ch); } } stringPos--; setarg(paramPos, i, '\0'); } default: { continue; } } while (string[stringPos] && string[stringPos] != delim && string[stringPos] > ' ') { stringPos++; } while (string[stringPos] && (string[stringPos] == delim || string[stringPos] <= ' ')) { stringPos++; } paramPos++; } do { if ((delim = format[formatPos++]) > ' ') { if (delim == '\'') { while ((delim = format[formatPos++]) && delim != '\'') {} } else if (delim != 'z') { return delim; } } } while (delim > ' '); return 0; } Link to comment Share on other sites More sharing options...
0 rEf 53 Odesláno: 15. Červen, 2016 Share Odesláno: 15. Červen, 2016 Pfuj to je humus... Link to comment Share on other sites More sharing options...
0 DarkDragon_CZE69 17 Odesláno: 15. Červen, 2016 Author Share Odesláno: 15. Červen, 2016 Pfuj to je humus... Njn... Tak už to semnou chodí Link to comment Share on other sites More sharing options...
0 rEf 53 Odesláno: 15. Červen, 2016 Share Odesláno: 15. Červen, 2016 Hochu ten tvůj tzv. script vůbec mě to nepřijde logické natož aby to k něčemu bylo no udělal sem ti to tak nějak jak si to zamýšlel... /setdarek ID 0 (vezme moznost vzit darek), 1-2 nastaví možnost vzít si ho a /darek klasicky mu dá podle toho co má nastavené... Beztak to je kravina ten nápad ten dárek Fakt sry ale už s tím nechci mít nic společného dávat nějaký i minimální čas do hovadiny bez smyslu... Měl by si začít tím čemu rozumíš. #include <a_samp> #include <dini> #include <zcmd> new Darek[MAX_PLAYERS]; public OnFilterScriptInit() { return 1; } public OnFilterScriptExit() { return 1; } public OnPlayerConnect(playerid) { Darek[playerid] = 0; new _c[15+MAX_PLAYER_NAME]; format(_c, sizeof(_c), "darek/%s.txt", PlayerName(playerid)); if(fexist(_c)){ Darek[playerid] = dini_Int(_c, "darek"); } return 1; } public OnPlayerDisconnect(playerid, reason) { return 1; } public OnPlayerSpawn(playerid) { return 1; } public OnPlayerDeath(playerid, killerid, reason) { return 1; } public OnVehicleSpawn(vehicleid) { return 1; } public OnVehicleDeath(vehicleid, killerid) { return 1; } public OnPlayerText(playerid, text[]) { return 1; } public OnPlayerCommandText(playerid, cmdtext[]) { return 0; } CMD:setdarek(playerid, params[]){ new id = strval(params), lvlid, s[128], c[15+MAX_PLAYER_NAME]; if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0xff0000aa, "Nejsi RCON administrátor!"); else if(sscanf(params, "ud", id, lvlid)) return SendClientMessage(playerid, 0xff0000aa, "/setdarek [ID] [0 odebere, 1-2]"); else if(lvlid < 0 || lvlid > 2) return SendClientMessage(playerid, 0xff0000aa, "/setdarek [ID] [0 odebere, 1-2]"); else if(!IsPlayerConnected(id)) return SendClientMessage(playerid, 0xff0000aa, "Toto ID neexistuje."); else if(IsPlayerNPC(id)) return SendClientMessage(playerid, 0xff0000aa, "Toto je NPC."); else if(Darek[id] != 0) return SendClientMessage(playerid, 0xff0000aa, "Tento hráč již má dárek."); if(lvlid != 0){ Darek[id] = lvlid; format(s, sizeof(s), "Admin %s dal hráči %s dárek level %d", PlayerName(playerid), PlayerName(id), lvlid); SendClientMessageToAll(-1, s); format(c, sizeof(c), "darek/%s.txt", PlayerName(id)); if(!fexist(c)){ dini_Create(c); dini_IntSet(c, "darek", lvlid); } else dini_IntSet(c, "darek", lvlid); } else NastavTenKktskyDarekNaNulu(playerid); return true; } CMD:darek(playerid, params[]){ if(Darek[playerid] != 0){ if(Darek[playerid] == 1){ switch(RandomEx(0,5)){ case 0: DavajLove(playerid, 10000); case 1: DavajLove(playerid, 20000); case 2: DavajLove(playerid, 30000); case 3: DavajLove(playerid, 40000); case 4: DavajLove(playerid, 50000); case 5: DavajLove(playerid, 60000); } } else if(Darek[playerid] == 2){ new Float:x, Float:y, Float:z, Float:a; GetPlayerPos(playerid, x, y, z); GetPlayerFacingAngle(playerid, a); switch(RandomEx(0,1)){ case 0:{ CreateVehicle(411, x, y, z, a, -1, -1, -1); SendClientMessage(playerid, -1, "Nene dostal si infa tvl ze srotaku ctyri gumy ma pekny sterace..."); NastavTenKktskyDarekNaNulu(playerid); } case 1:{ CreateVehicle(526, x, y, z, a, -1, -1, -1); SendClientMessage(playerid, -1, "Nene dostal si neco tvl ze srotaku asi ctyri gumy ma pekny sterace mozna..."); NastavTenKktskyDarekNaNulu(playerid); } } } } else SendClientMessage(playerid, 0xff0000aa, "Nevlastníš žádný dárek."); return true; } stock DavajLove(playerid, cash){ new _s[128]; GivePlayerMoney(playerid, 10000); format(_s, sizeof(_s), "Dostal si $%d", cash); SendClientMessage(playerid, -1, _s); NastavTenKktskyDarekNaNulu(playerid); return 1; } stock NastavTenKktskyDarekNaNulu(playerid){ new _c[15+MAX_PLAYER_NAME]; format(_c, sizeof(_c), "darek/%s.txt", PlayerName(playerid)); dini_IntSet(_c, "darek", 0); Darek[playerid] = 0; return 1; } public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger) { return 1; } public OnPlayerExitVehicle(playerid, vehicleid) { return 1; } public OnPlayerStateChange(playerid, newstate, oldstate) { return 1; } public OnPlayerEnterCheckpoint(playerid) { return 1; } public OnPlayerLeaveCheckpoint(playerid) { return 1; } public OnPlayerEnterRaceCheckpoint(playerid) { return 1; } public OnPlayerLeaveRaceCheckpoint(playerid) { return 1; } public OnRconCommand(cmd[]) { return 1; } public OnPlayerRequestSpawn(playerid) { return 1; } public OnObjectMoved(objectid) { return 1; } public OnPlayerObjectMoved(playerid, objectid) { return 1; } public OnPlayerPickUpPickup(playerid, pickupid) { return 1; } public OnVehicleMod(playerid, vehicleid, componentid) { return 1; } public OnVehiclePaintjob(playerid, vehicleid, paintjobid) { return 1; } public OnVehicleRespray(playerid, vehicleid, color1, color2) { return 1; } public OnPlayerSelectedMenuRow(playerid, row) { return 1; } public OnPlayerExitedMenu(playerid) { return 1; } public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid) { return 1; } public OnPlayerKeyStateChange(playerid, newkeys, oldkeys) { return 1; } public OnRconLoginAttempt(ip[], password[], success) { return 1; } public OnPlayerUpdate(playerid) { return 1; } public OnPlayerStreamIn(playerid, forplayerid) { return 1; } public OnPlayerStreamOut(playerid, forplayerid) { return 1; } public OnVehicleStreamIn(vehicleid, forplayerid) { return 1; } public OnVehicleStreamOut(vehicleid, forplayerid) { return 1; } public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) { return 1; } public OnPlayerClickPlayer(playerid, clickedplayerid, source) { return 1; } stock PlayerName(playerid){ new n[MAX_PLAYER_NAME]; GetPlayerName(playerid, n, sizeof(n)); return n; } stock sscanf(string[], format[], {Float,_}:...) { #if defined isnull if (isnull(string)) #else if (string[0] == 0 || (string[0] == 1 && string[1] == 0)) #endif { return format[0]; } #pragma tabsize 4 new formatPos = 0, stringPos = 0, paramPos = 2, paramCount = numargs(), delim = ' '; while (string[stringPos] && string[stringPos] <= ' ') { stringPos++; } while (paramPos < paramCount && string[stringPos]) { switch (format[formatPos++]) { case '\0': { return 0; } case 'i', 'd': { new neg = 1, num = 0, ch = string[stringPos]; if (ch == '-') { neg = -1; ch = string[++stringPos]; } do { stringPos++; if ('0' <= ch <= '9') { num = (num * 10) + (ch - '0'); } else { return -1; } } while ((ch = string[stringPos]) > ' ' && ch != delim); setarg(paramPos, 0, num * neg); } case 'h', 'x': { new num = 0, ch = string[stringPos]; do { stringPos++; switch (ch) { case 'x', 'X': { num = 0; continue; } case '0' .. '9': { num = (num << 4) | (ch - '0'); } case 'a' .. 'f': { num = (num << 4) | (ch - ('a' - 10)); } case 'A' .. 'F': { num = (num << 4) | (ch - ('A' - 10)); } default: { return -1; } } } while ((ch = string[stringPos]) > ' ' && ch != delim); setarg(paramPos, 0, num); } case 'c': { setarg(paramPos, 0, string[stringPos++]); } case 'f': { new changestr[16], changepos = 0, strpos = stringPos; while(changepos < 16 && string[strpos] && string[strpos] != delim) { changestr[changepos++] = string[strpos++]; } changestr[changepos] = '\0'; setarg(paramPos,0,_:floatstr(changestr)); } case 'p': { delim = format[formatPos++]; continue; } case '\'': { new end = formatPos - 1, ch; while ((ch = format[++end]) && ch != '\'') {} if (!ch) { return -1; } format[end] = '\0'; if ((ch = strfind(string, format[formatPos], false, stringPos)) == -1) { if (format[end + 1]) { return -1; } return 0; } format[end] = '\''; stringPos = ch + (end - formatPos); formatPos = end + 1; } case 'u': { new end = stringPos - 1, id = 0, bool:num = true, ch; while ((ch = string[++end]) && ch != delim) { if (num) { if ('0' <= ch <= '9') { id = (id * 10) + (ch - '0'); } else { num = false; } } } if (num && IsPlayerConnected(id)) { setarg(paramPos, 0, id); } else { #if !defined foreach #define foreach(%1,%2) for (new %2 = 0; %2 < MAX_PLAYERS; %2++) if (IsPlayerConnected(%2)) #define __SSCANF_FOREACH__ #endif string[end] = '\0'; num = false; new name[MAX_PLAYER_NAME]; id = end - stringPos; foreach (Player, playerid) { GetPlayerName(playerid, name, sizeof (name)); if (!strcmp(name, string[stringPos], true, id)) { setarg(paramPos, 0, playerid); num = true; break; } } if (!num) { setarg(paramPos, 0, INVALID_PLAYER_ID); } string[end] = ch; #if defined __SSCANF_FOREACH__ #undef foreach #undef __SSCANF_FOREACH__ #endif } stringPos = end; } case 's', 'z': { new i = 0, ch; if (format[formatPos]) { while ((ch = string[stringPos++]) && ch != delim) { setarg(paramPos, i++, ch); } if (!i) { return -1; } } else { while ((ch = string[stringPos++])) { setarg(paramPos, i++, ch); } } stringPos--; setarg(paramPos, i, '\0'); } default: { continue; } } while (string[stringPos] && string[stringPos] != delim && string[stringPos] > ' ') { stringPos++; } while (string[stringPos] && (string[stringPos] == delim || string[stringPos] <= ' ')) { stringPos++; } paramPos++; } do { if ((delim = format[formatPos++]) > ' ') { if (delim == '\'') { while ((delim = format[formatPos++]) && delim != '\'') {} } else if (delim != 'z') { return delim; } } } while (delim > ' '); return 0; } RandomEx(min, max){ return random(max - min) + min; } Link to comment Share on other sites More sharing options...
0 DarkDragon_CZE69 17 Odesláno: 15. Červen, 2016 Author Share Odesláno: 15. Červen, 2016 Díky už to funguje, ale nefunguje ta 0 abych ten dárek odebral. Link to comment Share on other sites More sharing options...
Dotaz
DarkDragon_CZE69 17
Zdravím potřeboval bych pomoc rozdělit můj dárkový script na 2 levely a příkaz by měl vypadat /setdarecek [iD] [LEVEL]
Zde je můj celý FS:
Mimochodem princip bych měl být takový, že když hráč má Level 1 tak to napíše do chatu všem random zprávu, který budou nastaveny a když má level 2 tak to stejný akorát bude mít trošku lepší výhry
Edited by Stringer_CZEVšem předem děkuji za rady.
Link to comment
Share on other sites
34 odpovědí na tuto otázku
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