|
|
phpBB2 by Przemo
Support forów phpBB2 modified by Przemo
|
|
Przesunięty przez: Matteo 09-11-2013, 09:36 |
Quack! Bone 1.0.0 |
Autor |
Wiadomość |
Polaczek
Pomógł: 351 razy Posty: 2297
|
Wysłany: 12-08-2010, 20:43
|
|
|
Linki poprawione
[ Dodano: 12-08-2010, 22:54 ]
W 30% realizuję prośbę użytkownika emiloski94.
Dlaczego 30%? Nie ma jeszcze:
- Limitu na 2 razy dziennie
- Nie ma automatycznego dodania do grupy
- Wiadomość widoczna tylko dla tego użytkownika, który ją wysłał
Ale zawsze zarys jakiś jest.
Nie działa z AJAX'owym SB!
shoutbox_view.php
znajdź:
Kod: | $msg_id = $db->sql_nextid();
$sql = "INSERT INTO " . SHOUTBOX_TABLE . "
VALUES($msg_id, $sb_user_id, '" . str_replace("\'", "''", $msg) . "', '" . CR_TIME . "')";
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not insert shoutbox message', '', __LINE__, __FILE__, $sql);
} |
zamień na:
Kod: | if($msg === 'losuj') {
$msg_id = $db->sql_nextid();
$quack_bone_min = 0; /* Minimalna wartość */
$quack_bone_max = 10; /* Maksymalna wartość */
$quack_bone_ok = 5; /* Wartość, po której wylosowaniu otrzymuje się dostęp do grupy */
$quack_bone_rand = rand($quack_bone_min, $quack_bone_max);
if($quack_bone_rand === $quack_bone_ok) {
$quack_bone_gen_msg = 'Gratulacje! Udało Ci się wylosować rangę V.I.P.';
$sql = "INSERT INTO " . SHOUTBOX_TABLE . "
VALUES($msg_id, $sb_user_id, '" . $quack_bone_gen_msg . "', '" . CR_TIME . "')";
if(!($result = $db->sql_query($sql))) {
message_die(GENERAL_ERROR, 'Could not insert shoutbox message', '', __LINE__, __FILE__, $sql);
}
} else {
$quack_bone_gen_msg = 'Niestety nie udało się wylosować rangi V.I.P.';
$sql = "INSERT INTO " . SHOUTBOX_TABLE . "
VALUES($msg_id, $sb_user_id, '" . $quack_bone_gen_msg . "', '" . CR_TIME . "')";
if(!($result = $db->sql_query($sql))) {
message_die(GENERAL_ERROR, 'Could not insert shoutbox message', '', __LINE__, __FILE__, $sql);
}
}
} else {
$msg_id = $db->sql_nextid();
$sql = "INSERT INTO " . SHOUTBOX_TABLE . "
VALUES($msg_id, $sb_user_id, '" . str_replace("\'", "''", $msg) . "', '" . CR_TIME . "')";
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not insert shoutbox message', '', __LINE__, __FILE__, $sql);
}
} |
I gotowe.
Konfiguracja przez 3 zmienne:
Kod: | $quack_bone_min = 0; /* Minimalna wartość */
$quack_bone_max = 10; /* Maksymalna wartość */
$quack_bone_ok = 5; /* Wartość, po której wylosowaniu otrzymuje się dostęp do grupy */ |
Im większy przedział wartości (mam na myśli dwie pierwsze zmienne) tym szanse na wylosowanie danej liczby są mniejsze.
Istnieje możliwość zdefiniowania kilku wartości, po których wylosowaniu otrzymuje się dostęp do grupy zmieniając:
na
Kod: | $quack_bone_ok = array(5,10,15,20); |
Nic jednak nie zostało przetestowane. |
_________________ The Cephei Family
stuff 'n' stuff |
|
|
|
|
Gadatliwa Kasia
|
|
|
|
sebul00000
Pomógł: 23 razy Posty: 451
|
Wysłany: 13-08-2010, 03:22
|
|
|
W instrukcji jest mały błąd A mianowicie teraz jest
Kod: | $quack_bone_gen_msg = $userdata['username'] . ' rzucił(a) ścmi i wylosował(a) ' . $quack_bone_rand . '!'; |
a powinno być
Kod: | $quack_bone_gen_msg = $userdata['username'] . ' rzucił(a) kośćmi i wylosował(a) ' . $quack_bone_rand . '!'; |
|
_________________ Za niewielką opłatą (przy mniejszych zleceniach, możliwość zapłaty smsem) robię wszystko (no może prawie wszystko ) co jest związane ze skryptem forum phpBB2 by Przemo, między innymi instalacja skryptu przema, wgrywanie modów, itp. |
|
|
|
|
Polaczek
Pomógł: 351 razy Posty: 2297
|
Wysłany: 13-08-2010, 13:47
|
|
|
sebul00000, dzięki poprawiam już. |
_________________ The Cephei Family
stuff 'n' stuff |
|
|
|
|
sebul00000
Pomógł: 23 razy Posty: 451
|
Wysłany: 13-08-2010, 14:59
|
|
|
Hmmm... trochę nie za bardzo tego ogarniam, więc mam pytanie Jak zrobić ograniczenie do tego losowania? Tak jak to jest w tym losowaniu vipa. Zauważyłem, że trzeba zapytanie dodać, ale nie bardzo wiem który jeszcze kod trzeba dodać... |
_________________ Za niewielką opłatą (przy mniejszych zleceniach, możliwość zapłaty smsem) robię wszystko (no może prawie wszystko ) co jest związane ze skryptem forum phpBB2 by Przemo, między innymi instalacja skryptu przema, wgrywanie modów, itp. |
|
|
|
|
Polaczek
Pomógł: 351 razy Posty: 2297
|
Wysłany: 13-08-2010, 15:09
|
|
|
SQL:
Kod: | ALTER TABLE `phpbb_users`
ADD `quack_bone_date` INT NOT NULL |
shoutbox_view.php
Kod: | if($msg === 'losuj') {
$sql = "SELECT quack_bone_date FROM " . USERS_TABLE . " WHERE user_id = " . $userdata['user_id'];
$result = $db->sql_query($sql);
$row = $db->sql_fetchrow($result);
if(time() - 3600 * 24 > $row['quack_bone_date']) {
$sql = "UPDATE " . USERS_TABLE . "
SET quack_bone_date = " . CR_TIME . "
WHERE user_id = " . $userdata['user_id'];
if(!($result == $db->sql_query($sql))) {
message_die(GENERAL_ERROR, 'Could not update Quack! Bone V.I.P. row', '', __LINE__, __FILE__, $sql);
}
$msg_id = $db->sql_nextid();
$quack_bone_min = 0; /* Minimalna wartość */
$quack_bone_max = 10; /* Maksymalna wartość */
$quack_bone_rand = rand($quack_bone_min, $quack_bone_max);
$quack_bone_gen_msg = $userdata['username'] . ' rzucił(a) koścmi i wylosował(a) ' . $quack_bone_rand . '!';
$sql = "INSERT INTO " . SHOUTBOX_TABLE . "
VALUES($msg_id, $sb_user_id, '" . $quack_bone_gen_msg . "', '" . CR_TIME . "')";
if(!($result = $db->sql_query($sql))) {
message_die(GENERAL_ERROR, 'Could not insert shoutbox message', '', __LINE__, __FILE__, $sql);
}
} else {
$msg_id = $db->sql_nextid();
$quack_bone_gen_msg = 'Co za dużo to niezdrowo. :) Możesz losować tylko raz na 24 godziny.';
$sql = "INSERT INTO " . SHOUTBOX_TABLE . "
VALUES($msg_id, $sb_user_id, '" . $quack_bone_gen_msg . "', '" . CR_TIME . "')";
if(!($result = $db->sql_query($sql))) {
message_die(GENERAL_ERROR, 'Could not insert shoutbox message', '', __LINE__, __FILE__, $sql);
}
}
} else {
$msg_id = $db->sql_nextid();
$sql = "INSERT INTO " . SHOUTBOX_TABLE . "
VALUES($msg_id, $sb_user_id, '" . str_replace("\'", "''", $msg) . "', '" . CR_TIME . "')";
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not insert shoutbox message', '', __LINE__, __FILE__, $sql);
}
} |
|
_________________ The Cephei Family
stuff 'n' stuff |
|
|
|
|
sebul00000
Pomógł: 23 razy Posty: 451
|
Wysłany: 13-08-2010, 18:02
|
|
|
No i gitara Dzięki.
Wyszła optymalizacja do Quack! Bone V.I.P. 1.0.1, więc teraz jak dać ten anty flood tutaj? Tak samo jak w tamtej poprawce? Czy trochę inaczej? |
_________________ Za niewielką opłatą (przy mniejszych zleceniach, możliwość zapłaty smsem) robię wszystko (no może prawie wszystko ) co jest związane ze skryptem forum phpBB2 by Przemo, między innymi instalacja skryptu przema, wgrywanie modów, itp. |
|
|
|
|
Polaczek
Pomógł: 351 razy Posty: 2297
|
Wysłany: 13-08-2010, 20:02
|
|
|
o tak:
Kod: | if($msg === 'losuj') {
if(time() - 3600 * 24 > $userdata['quack_bone_date']) {
$sql = "UPDATE " . USERS_TABLE . "
SET quack_bone_date = " . CR_TIME . "
WHERE user_id = " . $userdata['user_id'];
if(!($result == $db->sql_query($sql))) {
message_die(GENERAL_ERROR, 'Could not update Quack! Bone V.I.P. row', '', __LINE__, __FILE__, $sql);
}
$msg_id = $db->sql_nextid();
$quack_bone_min = 0; /* Minimalna wartość */
$quack_bone_max = 10; /* Maksymalna wartość */
$quack_bone_rand = rand($quack_bone_min, $quack_bone_max);
$quack_bone_gen_msg = $userdata['username'] . ' rzucił(a) koścmi i wylosował(a) ' . $quack_bone_rand . '!';
$sql = "INSERT INTO " . SHOUTBOX_TABLE . "
VALUES($msg_id, $sb_user_id, '" . $quack_bone_gen_msg . "', '" . CR_TIME . "')";
if(!($result = $db->sql_query($sql))) {
message_die(GENERAL_ERROR, 'Could not insert shoutbox message', '', __LINE__, __FILE__, $sql);
}
} else {
$msg_id = $db->sql_nextid();
$quack_bone_gen_msg = 'Co za dużo to niezdrowo. :) Możesz losować tylko raz na 24 godziny.';
$sql = "INSERT INTO " . SHOUTBOX_TABLE . "
VALUES($msg_id, $sb_user_id, '" . $quack_bone_gen_msg . "', '" . CR_TIME . "')";
if(!($result = $db->sql_query($sql))) {
message_die(GENERAL_ERROR, 'Could not insert shoutbox message', '', __LINE__, __FILE__, $sql);
}
}
} else {
$msg_id = $db->sql_nextid();
$sql = "INSERT INTO " . SHOUTBOX_TABLE . "
VALUES($msg_id, $sb_user_id, '" . str_replace("\'", "''", $msg) . "', '" . CR_TIME . "')";
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not insert shoutbox message', '', __LINE__, __FILE__, $sql);
}
} |
|
_________________ The Cephei Family
stuff 'n' stuff |
|
|
|
|
Misiek [PL]
Pomógł: 82 razy Posty: 430
|
Wysłany: 18-08-2010, 19:43
|
|
|
Polaczek, możesz napisać instrukcje do finalnej wersji ShoutBox'a w jQuery? (ta wersja gdzie jest limit użycia losuj na dzień). |
_________________ instalacja modyfikacji # aktualizacja for # przenoszenie for # naprawa kodowania (krzaczków)
tylko dwie rzeczy są nieskończone - pętla while (TRUE) i ludzka głupota, ale tą pierwszą można przerwać za pomocą break; |
|
|
|
|
sebul00000
Pomógł: 23 razy Posty: 451
|
Wysłany: 31-08-2010, 12:08
|
|
|
Mam taki pomysł co do tego ograniczenia dziennego (czy jakiego tam się chce), równie dobrze mógłbym napisać to w temacie z vipem, ale tutaj też może być. Dało radę by zrobić, że zamiast tego tekstu "już nie możesz losować" był by licznik ile zostało sekund/godzin/dni do końca ograniczenia? Też wydaje mi się, że dobrym pomysłem była by jakaś dodatkowa tabelka z wynikami, kto ile wylosował z np. top10 userów z największym wynikiem, no i żeby była jakaś możliwość ustawienia kasacji wyników automatycznie co jakiś czas, albo ręcznie (natychmiastowo po naciśnięciu jakiegoś przycisku). |
_________________ Za niewielką opłatą (przy mniejszych zleceniach, możliwość zapłaty smsem) robię wszystko (no może prawie wszystko ) co jest związane ze skryptem forum phpBB2 by Przemo, między innymi instalacja skryptu przema, wgrywanie modów, itp. |
|
|
|
|
Polaczek
Pomógł: 351 razy Posty: 2297
|
Wysłany: 31-08-2010, 12:48
|
|
|
sebul00000, mogę zrobić przy generowaniu wiadomości obliczenie ile zostało czasu.
Co do top10 to będzie kolejne zapytanie do bazy, a wiec może trochę obciążyć. Ale trochę, zobaczymy
Kasacja byłaby wtedy możliwa przez przycisk dla administratora w SB (przy odśwież etc) |
_________________ The Cephei Family
stuff 'n' stuff |
|
|
|
|
sebul00000
Pomógł: 23 razy Posty: 451
|
Wysłany: 23-09-2010, 21:23
|
|
|
Nie to że jestem jakiś natarczywy, itp. ale czy trwają jeszcze jakieś prace nad tym modem? I czy będzie ta tabelka o której pisałem?
Jeszcze jest inny pomysł co do tego losowania... bo teraz można go łatwo podrobić, więc czy można zrobić jakoś tak, że gdy ktoś wpisałby do sb tekst który wyświetla się po losowaniu, to wtedy taki wpis nie wyświetlił by się, albo coś w tym stylu. Wiem, że pewnie wtedy sb stanie się bardziej obciążone, ale przecież zawsze będzie można to sobie usunąć. |
_________________ Za niewielką opłatą (przy mniejszych zleceniach, możliwość zapłaty smsem) robię wszystko (no może prawie wszystko ) co jest związane ze skryptem forum phpBB2 by Przemo, między innymi instalacja skryptu przema, wgrywanie modów, itp. |
|
|
|
|
Polaczek
Pomógł: 351 razy Posty: 2297
|
Wysłany: 23-09-2010, 22:39
|
|
|
sebul00000, nie mam czasu kiedy tym się zająć.
Co do Twojego pomysłu:
shoutbox_view.php
Kod: | } else {
$msg_id = $db->sql_nextid(); |
dodaj przed:
Kod: | } elseif(preg_match('rzucił(a) kośćmi i wylosował(a)', $msg)) {
$msg_id = $db->sql_nextid();
$sql = "insert into {$table_prefix}shoutbox values($msg_id, $sb_user_id, 'Nie fałszuj wiadomości!', '" . CR_TIME . "')";
if(!$result = $db->sql_query($sql)) {
message_die(GENERAL_ERROR, 'Nie mogę wysłać wiadomości do ShoutBoxa');
} |
|
_________________ The Cephei Family
stuff 'n' stuff |
|
|
|
|
sebul00000
Pomógł: 23 razy Posty: 451
|
Wysłany: 23-09-2010, 23:57
|
|
|
Próbowałem na wszelkie sposoby i coś nie działa to... albo ja coś nie tak robię, albo może to po czasie dopiero zadziała? |
_________________ Za niewielką opłatą (przy mniejszych zleceniach, możliwość zapłaty smsem) robię wszystko (no może prawie wszystko ) co jest związane ze skryptem forum phpBB2 by Przemo, między innymi instalacja skryptu przema, wgrywanie modów, itp. |
|
|
|
|
Polaczek
Pomógł: 351 razy Posty: 2297
|
Wysłany: 24-09-2010, 21:02
|
|
|
a spróbuj tak zrobić ten preg_match():
Kod: | preg_match('/kośćmi i wylosował/', $msg) |
|
_________________ The Cephei Family
stuff 'n' stuff |
|
|
|
|
Gadatliwa Kasia
|
|
|
|
sebul00000
Pomógł: 23 razy Posty: 451
|
Wysłany: 24-09-2010, 21:29
|
|
|
hmmm też nie działa... Ten kod daje przed pierwszym
Kod: | } else {
$msg_id = $db->sql_nextid(); |
Bo jak daje przed drugim to wyskakuje błąd. |
_________________ Za niewielką opłatą (przy mniejszych zleceniach, możliwość zapłaty smsem) robię wszystko (no może prawie wszystko ) co jest związane ze skryptem forum phpBB2 by Przemo, między innymi instalacja skryptu przema, wgrywanie modów, itp. |
|
|
|
|
|
Nie możesz pisać nowych tematów Nie możesz odpowiadać w tematach Nie możesz zmieniać swoich postów Nie możesz usuwać swoich postów Nie możesz głosować w ankietach Nie możesz załączać plików na tym forum Nie możesz ściągać załączników na tym forum
|
Dodaj temat do Ulubionych Wersja do druku
|
Kopiowanie wszelkich treści zawartych na forum, modyfikacji oraz instrukcji bez zgody administracji i autorów tematów/postów zabronione!
Powered by phpBB modified by Przemo © 2003 phpBB
| Strona wygenerowana w 0,13 sekundy. Zapytań do SQL: 13 | |
|
|