Sziasztok!
Készülõ szerveremre készítettem egy FS-t,de annyira nem láttam értelmét hogy berakjam(Még gondolkodok rajta)
ezért úgy döntöttem hogy felteszem ide elsõ publikálás ként :)
Igazából ez egy olyan dolog amit VÉGRE egyedül képes voltam megcsinálni :))
Remélem az olyanoknak mint én tehát tanuló szkriptereknek jól jön!
Lényeg:
A cucc lényege hogy az idõt tudod vele változtatni 1 tõl 24 óráig!
Annyira nem lett túlcsicsázva,a lényegnek megfelel :)!
Tesztelve lett! Mûködik.
Készitõ:Én(Hanga)
Készítési idõ:kb. 4 perc(Nem számoltam)
Kód:
//Idõ változtató
//Készítette:Hanga(Dead Space)
//Készítési idõ:kb. 4 perc
//Használjátok egészséggel! :)
#include a_samp
#include zcmd
#define time 1000
#define zöld 0x00FF00FF
CMD:time(playerid)
{
ShowPlayerDialog(playerid, time, DIALOG_STYLE_LIST, \"{00ff00}Idõ kiválasztó\", \"1 óra\\n2 óra\\n3 óra\\n4 óra\\n5 óra\\n6 óra\\n7 óra\\n8 óra\\n9 óra\\n10 óra\\n11 óra\\n12 óra\\n13 óra\\n14 óra\\n15 óra\\n16 óra\\n17 óra\\n18 óra\\n19 óra\\n20 óra\\n21 óra\\n22 óra\\n23 óra\\n24 óra\", \"Kiválaszt\", \"Kilép\");
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == time )
{
switch(listitem)
{
case 0:
{
SetPlayerTime(playerid, 1, 0);
SendClientMessage(playerid, zöld, \"Idõ sikeresen átállítva 1 órára!\");
}
case 1:
{
SetPlayerTime(playerid, 2, 0);
SendClientMessage(playerid, zöld, \"Idõ sikeresen átállítva 2 órára!\");
}
case 2:
{
SetPlayerTime(playerid, 3, 0);
SendClientMessage(playerid, zöld, \"Idõ sikeresen átállítva 3 órára!\");
}
case 3:
{
SetPlayerTime(playerid, 4, 0);
SendClientMessage(playerid, zöld, \"Idõ sikeresen átállítva 4 órára!\");
}
case 4:
{
SetPlayerTime(playerid, 5, 0);
SendClientMessage(playerid, zöld, \"Idõ sikeresen átállítva 5 órára!\");
}
case 5:
{
SetPlayerTime(playerid, 6, 0);
SendClientMessage(playerid, zöld, \"Idõ sikeresen átállítva 6 órára!\");
}
case 6:
{
SetPlayerTime(playerid, 7, 0);
SendClientMessage(playerid, zöld, \"Idõ sikeresen átállítva 7 órára!\");
}
case 7:
{
SetPlayerTime(playerid, 8, 0);
SendClientMessage(playerid, zöld, \"Idõ sikeresen átállítva 8 órára!\");
}
case 8:
{
SetPlayerTime(playerid, 9, 0);
SendClientMessage(playerid, zöld, \"Idõ sikeresen átállítva 9 órára!\");
}
case 9:
{
SetPlayerTime(playerid, 10, 0);
SendClientMessage(playerid, zöld, \"Idõ sikeresen átállítva 10 órára!\");
}
case 10:
{
SetPlayerTime(playerid, 11, 0);
SendClientMessage(playerid, zöld, \"Idõ sikeresen átállítva 11 órára!\");
}
case 11:
{
SetPlayerTime(playerid, 12, 0);
SendClientMessage(playerid, zöld, \"Idõ sikeresen átállítva 12 órára!\");
}
case 12:
{
SetPlayerTime(playerid, 13, 0);
SendClientMessage(playerid, zöld, \"Idõ sikeresen átállítva 13 órára!\");
}
case 13:
{
SetPlayerTime(playerid, 14, 0);
SendClientMessage(playerid, zöld, \"Idõ sikeresen átállítva 14 órára!\");
}
case 14:
{
SetPlayerTime(playerid, 15, 0);
SendClientMessage(playerid, zöld, \"Idõ sikeresen átállítva 15 órára!\");
}
case 15:
{
SetPlayerTime(playerid, 16, 0);
SendClientMessage(playerid, zöld, \"Idõ sikeresen átállítva 16 órára!\");
}
case 16:
{
SetPlayerTime(playerid, 17, 0);
SendClientMessage(playerid, zöld, \"Idõ sikeresen átállítva 17 órára!\");
}
case 17:
{
SetPlayerTime(playerid, 18, 0);
SendClientMessage(playerid, zöld, \"Idõ sikeresen átállítva 18 órára!\");
}
case 18:
{
SetPlayerTime(playerid, 19, 0);
SendClientMessage(playerid, zöld, \"Idõ sikeresen átállítva 19 órára!\");
}
case 19:
{
SetPlayerTime(playerid, 20, 0);
SendClientMessage(playerid, zöld, \"Idõ sikeresen átállítva 20 órára!\");
}
case 20:
{
SetPlayerTime(playerid, 21, 0);
SendClientMessage(playerid, zöld, \"Idõ sikeresen átállítva 21 órára!\");
}
case 21:
{
SetPlayerTime(playerid, 22, 0);
SendClientMessage(playerid, zöld, \"Idõ sikeresen átállítva 22 órára!\");
}
case 22:
{
SetPlayerTime(playerid, 23, 0);
SendClientMessage(playerid, zöld, \"Idõ sikeresen átállítva 23 órára!\");
}
case 23:
{
SetPlayerTime(playerid, 24, 0);
SendClientMessage(playerid, zöld, \"Idõ sikeresen átállítva 24 órára!\");
}
}
}
return 1;
}
Bocs az elcsúszásokért...valamiért torzítja a fórum :/
Egyszerübb pett volna ha switch helyett csak listitem+1 értékre váltod az idõt.
Igen.. sokkal egyszerûbb :D
#include a_samp
#include zcmd
#define DIALOG_TIME 1000
#define zöld 0x00FF00FF
CMD:time(playerid)
{
new string[128];
for(new x = 1;x<24;x++) format(string,sizeof(string),\"%s%d óra\\n\",string,x);
ShowPlayerDialog(playerid, DIALOG_TIME, DIALOG_STYLE_LIST, \"{00ff00}Idõ kiválasztó\", string, \"Választ\", \"Kilép\");
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == DIALOG_TIME)
{
if(response)
{
new str[128];
format(str,sizeof(str),\"Idõ sikeresen átállítva %d órára!\",listitem+1);
SetPlayerTime(playerid,listitem+1);
SendClientMessage(playerid,zöld,str);
}
}
return 1;
}
1. Definícióban nem lehet ékezetes karakter.
2. A kódod valójában sokat nem ér.. Gondoljunk bele.. Egy felhasználó minél gyorsabban szeretné beállítani magának a dolgokat.. Beleértve az idõt is.. Szerintem ez elég idõigényes, hogy beírja a parancsot, majd a listából ki kell választania az órát.. Lehetne sima parancsos is (/time [óra]) vagy INPUT-os is (Be kellene írnia az órát).. Másrészt sorpazarlás az egész.
3. BoOy te pedig nem veszed észre az 1. számú hibaészrevételemet.. Nem szép dolog. :p Egyébként a tied se pontos, miért ne lehetne 0 órát kiválasztani? (egyébként a ciklusod alapján 1-tõl 23-ig fogja listázni.. Hol marad az éjfél?)
Szerintem így lenne a legegyszerûbb a listás verzióban ( Nem másabb BoOy megoldásánál, viszont én is ugyanilyen alapon oldanám meg máskor is. :p ):
#define FILTERSCRIPT
#include <a_samp>
#include <zcmd>
#define DIALOG_TIME 4096
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) {
if(dialogid == DIALOG_TIME && response) {
new string[144];
format(string, sizeof(string), \"Az idõd sikeresen meg lett változtatva {FFFFFF}%02i:00{00FF00}-ra/re.\", listitem);
SendClientMessage(playerid, 0x00FF00FF, string);
SetPlayerTime(playerid, listitem, 0);
return 1;
}
return 0;
}
CMD:time(playerid) {
new string[256];
for(new x; x < 24; x++) format(string, sizeof(string), \"%s%02i:00\\n\", string, x);
ShowPlayerDialog(playerid, DIALOG_TIME, DIALOG_STYLE_LIST, \"Válaszd ki az idõpontot!\", string, \"Tovább\", \"Mégse\");
return 1;
}
Lényegében elég kezdõ vagy, és nem ismersz sok módszert még.. :( Sok sikert a továbbiakban.
Egyébként te véletlenül nem Climacool vagy Aldo (vagymindkettõ) vagy véletlenül?
Istenem, ez a legyen minél rövidebb mániátok.. Az elsõt még megértem, hiszen tényleg praktikusabb, és jó ha megmutatja, de utána miért kell ezt minden témában tovább fokozni, hogy én még több sort le tudok csípni belõle? :facepalm:
Ennyi erõvel ezt a végtelenségig lehet fokozni:
#include <a_samp>
#include <zcmd>
new sstr[128];
CMD:time(playerid)
{
for(new x = 1;x<24;x++) strcat(sstr,\"%d óra\\n\",x);
ShowPlayerDialog(playerid, DIALOG_TIME, DIALOG_STYLE_LIST, \"{00ff00}Idõ kiválasztó\", sstr, \"Választ\", \"Kilép\");
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == 1000 && response)
{
SetPlayerTime(playerid,listitem+1);
format(sstr,sizeof(sstr),\"Az idõd sikeresen meg lett változtatva {FFFFFF}%02d:00{00FF00}-ra/re.\", listitem+1);
return SendClientMessage(playerid,0x00FF00FF,sstr);
}
return 1;
}
Már az elsõ is tökéletes, az, hogy hol a response és egyéb hülyeségek nem számítanak..
Istenem, ez a legyen minél rövidebb mániátok.. Az elsõt még megértem, hiszen tényleg praktikusabb, és jó ha megmutatja, de utána miért kell ezt minden témában tovább fokozni, hogy én még több sort le tudok csípni belõle? :facepalm:
Ennyi erõvel ezt a végtelenségig lehet fokozni:
#include <a_samp>
#include <zcmd>
new sstr[128];
CMD:time(playerid)
{
for(new x = 1;x<24;x++) strcat(sstr,\"%d óra\\n\",x);
ShowPlayerDialog(playerid, DIALOG_TIME, DIALOG_STYLE_LIST, \"{00ff00}Idõ kiválasztó\", sstr, \"Választ\", \"Kilép\");
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == 1000 && response)
{
SetPlayerTime(playerid,listitem+1);
format(sstr,sizeof(sstr),\"Az idõd sikeresen meg lett változtatva {FFFFFF}%02d:00{00FF00}-ra/re.\", listitem+1);
return SendClientMessage(playerid,0x00FF00FF,sstr);
}
return 1;
}
Már az elsõ is tökéletes, az, hogy hol a response és egyéb hülyeségek nem számítanak..
hibás lenne..
for(new x = 1;x<24;x++) strcat(sstr,\"%d óra\\n\",x);
elé még..
sstr[0] = EOS;