Angepinnt [SAMMELTHREAD] Kleine Scripting Fragen

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Neu

    BrightLeaN schrieb:

    und 3 Zahlen minimum, aber wie frage ich das?
    strlen gibt dir die String-Länge.

    Und in der Abfrage steht len >= 6 && len <= 12 ...was bedeutet...die länge muss mindestens 6 sein und kleiner gleich 12.

    Und LeonMrBonnie meinte mit strval dass es sich um einen Zahlenwert handelt, das macht ja aber keinen Sinn, weil die Länge ja mind 6 sein muss xD

    Also die richtige Abfrage ist das hier:

    C-Quellcode

    1. if(strlen(inputtext) >= 6 && strlen(inputtext) <= 12 && CountNumbersInString(inputtext) >= 3)
    2. stock CountNumbersInString(const string[])
    3. {
    4. new c;
    5. for(new i=strlen(string)-1; i!=-1; i--)
    6. {
    7. if(string[i] >= '0' && string[i] <= '9') c++;
    8. }
    9. return c;
    10. }
    Alles anzeigen


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. X/

  • Neu

    PAWN-Quellcode

    1. stock bool:IsValidDate(dStr[]) { //By LORDZY!!!
    2. new
    3. monthDays[12] = {
    4. 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31
    5. },
    6. temp_YMD[3],
    7. temp_Pos = 0,
    8. temp_ePos = 0,
    9. temp_Index = 0
    10. ;
    11. //Thought about implementing SSCANF_QUIET, but it requires spaces to work "currently".
    12. for(temp_Index = strlen(dStr) - 1; temp_Index != 0; temp_Index--) {
    13. if(!(dStr[temp_Index] >= 48 && dStr[temp_Index] <= 57))
    14. dStr[temp_Index] = ' ';
    15. }
    16. if(sscanf(dStr, "iii", temp_YMD[0], temp_YMD[1], temp_YMD[2]))
    17. return false;
    18. temp_ePos = temp_Pos = -1;
    19. for(temp_Index = 0; temp_Index < 3; temp_Index++) {
    20. if(temp_YMD[temp_Index] > 1750) {
    21. if((temp_YMD[temp_Index] % 400) == 0 || ((temp_YMD[temp_Index] % 100) != 0 && (temp_YMD[temp_Index] % 4) == 0))
    22. monthDays[1] = 29;
    23. }
    24. else if(temp_YMD[temp_Index] > 12)
    25. temp_Pos = temp_Index;
    26. else
    27. if(temp_ePos == -1)
    28. temp_ePos = temp_Index;
    29. else
    30. temp_Pos = temp_Index;
    31. }
    32. if(temp_ePos == -1 || temp_Pos == -1)
    33. return false;
    34. if(temp_YMD[temp_ePos] < 1 || temp_YMD[temp_ePos] > 12)
    35. return false;
    36. if(temp_YMD[temp_Pos] < 1 || temp_YMD[temp_Pos] > monthDays[temp_YMD[temp_ePos] - 1])
    37. return false;
    38. return true;
    39. }
    Alles anzeigen
    Habe mal hier so eins genommen was sccanf supportet, wie frage ich das ab mit if?
    Soll ich das so speichern: GeburtsTag, Geburtsmonat, Geburtsjahr ?
  • Neu

    Spoiler anzeigen

    PAWN-Quellcode

    1. stock bool:IsValidDate(dStr[]) { //By LORDZY!!!
    2. new
    3. monthDays[12] = {
    4. 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31
    5. },
    6. temp_YMD[3],
    7. temp_Pos = 0,
    8. temp_ePos = 0,
    9. temp_Index = 0
    10. ;
    11. //Thought about implementing SSCANF_QUIET, but it requires spaces to work "currently".
    12. for(temp_Index = strlen(dStr) - 1; temp_Index != 0; temp_Index--) {
    13. if(!(dStr[temp_Index] >= 48 && dStr[temp_Index] <= 57))
    14. dStr[temp_Index] = ' ';
    15. }
    16. if(sscanf(dStr, "iii", temp_YMD[0], temp_YMD[1], temp_YMD[2]))
    17. return false;
    18. temp_ePos = temp_Pos = -1;
    19. for(temp_Index = 0; temp_Index < 3; temp_Index++) {
    20. if(temp_YMD[temp_Index] > 1750) {
    21. if((temp_YMD[temp_Index] % 400) == 0 || ((temp_YMD[temp_Index] % 100) != 0 && (temp_YMD[temp_Index] % 4) == 0))
    22. monthDays[1] = 29;
    23. }
    24. else if(temp_YMD[temp_Index] > 12)
    25. temp_Pos = temp_Index;
    26. else
    27. if(temp_ePos == -1)
    28. temp_ePos = temp_Index;
    29. else
    30. temp_Pos = temp_Index;
    31. }
    32. if(temp_ePos == -1 || temp_Pos == -1)
    33. return false;
    34. if(temp_YMD[temp_ePos] < 1 || temp_YMD[temp_ePos] > 12)
    35. return false;
    36. if(temp_YMD[temp_Pos] < 1 || temp_YMD[temp_Pos] > monthDays[temp_YMD[temp_ePos] - 1])
    37. return false;
    38. return true;
    39. }
    Alles anzeigen


    Das Ding ist jetzt, ich kann angeben 01.01.2001 es geht ich kann auch 01_01_2001 angeben oder 01 01 2001. Ich will aber das er guckt ob nur . benutzt wurde und kein anderes Zeichen.
    Meine Frage besteht immer noch wie ich das Speiche? da ich ja Punkte habe als float oder wie?
  • Neu

    BrightLeaN schrieb:

    Ich will aber das er guckt ob nur . benutzt wurde und kein anderes Zeichen.

    PAWN-Quellcode

    1. //Thought about implementing SSCANF_QUIET, but it requires spaces to work "currently".
    2. for(temp_Index = strlen(dStr) - 1; temp_Index != 0; temp_Index--) {
    3. if(!(dStr[temp_Index] >= 48 && dStr[temp_Index] <= 57))
    4. dStr[temp_Index] = ' ';
    5. }
    6. if(sscanf(dStr, "iii", temp_YMD[0], temp_YMD[1], temp_YMD[2]))
    7. return false;


    zu:

    PAWN-Quellcode

    1. if(sscanf(dStr, "p<.>iii", temp_YMD[0], temp_YMD[1], temp_YMD[2]))
    2. return false;

    (Ja, die Zeilen vor sscanf sollen weg.)

    BrightLeaN schrieb:

    Meine Frage besteht immer noch wie ich das Speiche? da ich ja Punkte habe als float oder wie?
    Als string.
    Im enum:

    PAWN-Quellcode

    1. e_Birthday[11],

    Und dann:

    PAWN-Quellcode

    1. format(PlayerInfo[playerid][e_Birthday], 11, inputtext);
  • Neu

    Nabend,

    ich habe soeben ein lustiges Problem festgestellt ... in meiner MySQL Log steht folgendes:

    Quellcode

    1. [20:09:22] [ERROR] cache_get_value_name_int: invalid row index '2' (number of rows: '1') (...selfmade.pwn:2053)
    2. [20:09:22] [ERROR] cache_get_value_name_int: invalid row index '2' (number of rows: '1') (...selfmade.pwn:2054)
    3. [20:09:22] [ERROR] cache_get_value_name: invalid row index '2' (number of rows: '1') (...selfmade.pwn:2055)
    4. [20:09:22] [ERROR] cache_get_value_name_int: invalid row index '2' (number of rows: '1') (...selfmade.pwn:2056)
    5. [20:09:22] [ERROR] cache_get_value_name_int: invalid row index '2' (number of rows: '1') (...selfmade.pwn:2057)
    6. [20:09:22] [ERROR] cache_get_value_name_int: invalid row index '2' (number of rows: '1') (...selfmade.pwn:2058)
    7. [20:09:22] [ERROR] cache_get_value_name_int: invalid row index '2' (number of rows: '1') (...selfmade.pwn:2059)
    8. [20:09:22] [ERROR] cache_get_value_name_float: invalid row index '2' (number of rows: '1') (...selfmade.pwn:2060)
    9. [20:09:22] [ERROR] cache_get_value_name_float: invalid row index '2' (number of rows: '1') (...selfmade.pwn:2061)
    10. [20:09:22] [ERROR] cache_get_value_name_float: invalid row index '2' (number of rows: '1') (...selfmade.pwn:2062)
    11. [20:09:22] [ERROR] cache_get_value_name_float: invalid row index '2' (number of rows: '1') (...selfmade.pwn:2063)
    12. [20:09:22] [ERROR] cache_get_value_name_float: invalid row index '2' (number of rows: '1') (...selfmade.pwn:2064)
    13. [20:09:22] [ERROR] cache_get_value_name_float: invalid row index '2' (number of rows: '1') (...selfmade.pwn:2065)
    14. [20:09:22] [ERROR] cache_get_value_name_float: invalid row index '2' (number of rows: '1') (...selfmade.pwn:2066)
    15. [20:09:22] [ERROR] cache_get_value_name_float: invalid row index '2' (number of rows: '1') (...selfmade.pwn:2067)
    16. [20:09:22] [ERROR] cache_get_value_name_float: invalid row index '2' (number of rows: '1') (...selfmade.pwn:2068)
    17. [20:09:22] [ERROR] cache_get_value_name_float: invalid row index '2' (number of rows: '1') (...selfmade.pwn:2069)
    18. [20:09:22] [ERROR] cache_get_value_name_float: invalid row index '2' (number of rows: '1') (...selfmade.pwn:2070)
    19. [20:09:22] [ERROR] cache_get_value_name_int: invalid row index '2' (number of rows: '1') (...selfmade.pwn:2071)
    20. [20:09:22] [ERROR] cache_get_value_name_float: invalid row index '2' (number of rows: '1') (...selfmade.pwn:2072)
    21. [20:09:22] [ERROR] cache_get_value_name_float: invalid row index '2' (number of rows: '1') (...selfmade.pwn:2073)
    22. [20:09:22] [ERROR] cache_get_value_name_float: invalid row index '2' (number of rows: '1') (...selfmade.pwn:2074)
    23. [20:09:22] [ERROR] cache_get_value_name_float: invalid row index '2' (number of rows: '1') (...selfmade.pwn:2075)
    24. [20:09:22] [ERROR] cache_get_value_name_float: invalid row index '2' (number of rows: '1') (...selfmade.pwn:2076)
    25. [20:09:22] [ERROR] cache_get_value_name_float: invalid row index '2' (number of rows: '1') (...selfmade.pwn:2077)
    26. [20:09:22] [ERROR] cache_get_value_name_float: invalid row index '2' (number of rows: '1') (...selfmade.pwn:2078)
    Alles anzeigen

    Die zeilen dazu:


    PAWN-Quellcode

    1. for(new i = 0; i < rows; i++){
    2. new id = i+1;
    3. Zeile: 2053 -> cache_get_value_name_int(i, "id", bInfo[id][biz_id]);
    4. cache_get_value_name_int(i, "biz_typ", bInfo[id][biz_typ]);
    5. cache_get_value_name(i, "biz_name", bInfo[id][biz_name], 1024);
    6. cache_get_value_name_int(i, "biz_owner", bInfo[id][biz_owner]);
    7. cache_get_value_name_int(i, "biz_sowner", bInfo[id][biz_sowner]);
    8. cache_get_value_name_int(i, "biz_level", bInfo[id][biz_level]);
    9. cache_get_value_name_int(i, "int_id", bInfo[id][int_id]);
    10. cache_get_value_name_float(i, "bizkosten", bInfo[id][biz_kosten]);
    11. cache_get_value_name_float(i, "bizkasse", bInfo[id][biz_kasse]);
    12. cache_get_value_name_float(i, "biz_x", bInfo[id][biz_x]);
    13. cache_get_value_name_float(i, "biz_y", bInfo[id][biz_y]);
    14. cache_get_value_name_float(i, "biz_z", bInfo[id][biz_z]);
    15. cache_get_value_name_float(i, "int_x", bInfo[id][int_x]);
    16. cache_get_value_name_float(i, "int_y", bInfo[id][int_y]);
    17. cache_get_value_name_float(i, "int_z", bInfo[id][int_z]);
    18. cache_get_value_name_float(i, "i_x", bInfo[id][i_x]);
    19. cache_get_value_name_float(i, "i_y", bInfo[id][i_y]);
    20. cache_get_value_name_float(i, "i_z", bInfo[id][i_z]);
    21. cache_get_value_name_int(i, "actor_skin", bInfo[id][actor_skin]);
    22. cache_get_value_name_float(i, "actor_x", bInfo[id][actor_x]);
    23. cache_get_value_name_float(i, "actor_y", bInfo[id][actor_y]);
    24. cache_get_value_name_float(i, "actor_z", bInfo[id][actor_z]);
    25. cache_get_value_name_float(i, "actor_r", bInfo[id][actor_r]);
    26. cache_get_value_name_float(i, "liefer_x", bInfo[id][liefer_x]);
    27. cache_get_value_name_float(i, "liefer_y", bInfo[id][liefer_y]);
    28. Zeile: cache_get_value_name_float(i, "liefer_z", bInfo[id][liefer_z]);
    29. }
    Alles anzeigen
    Rows hat den Wert 21 ... Sprich 0 kann die variable rows nicht sein ...

    MfG
    XonarZ