Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <a_samp>
- // License:
- /*
- Licencja:
- Copyright (c) 2013, Shiny
- Wszystkie prawa zastrzeżone.
- Redystrybucja i używanie, czy to w formie kodu źródłowego, czy w formie kodu wykonawczego, są dozwolone pod warunkiem spełnienia poniższych warunków:
- Redystrybucja kodu źródłowego musi zawierać powyższą notę dotyczącą praw autorskich, niniejszą listę warunków oraz poniższe oświadczenie o wyłączeniu odpowiedzialności.
- Redystrybucja kodu wykonawczego musi zawierać powyższą notę dotyczącą praw autorskich, niniejszą listę warunków oraz poniższe oświadczenie o wyłączeniu odpowiedzialności w dokumentacji i/lub w w innych materiałach dostarczanych wraz z kopią oprogramowania.
- Ani nazwa '[Include] base512', ani nazwa Base512 - Include nie mogą być użyte celem sygnowania lub promowania produktów pochodzących od tego oprogramowania, bez szczególnego, wyrażonego na piśmie ich zezwolenia.
- To oprogramowanie jest dostarczone przez użytkownika Shiny “tak, jak jest”. Każda, dorozumiana lub bezpośrednio wyrażona gwarancja, nie wyłączając dorozumianej gwarancji przydatności handlowej i przydatności do określonego zastosowania, jest wyłączona.
- W żadnym wypadku posiadacze praw autorskich nie mogą być odpowiedzialni za jakiekolwiek bezpośrednie, pośrednie, incydentalne, specjalne, uboczne i wtórne szkody (nie wyłączając obowiązku dostarczenia produktu zastępczego lub serwisu, odpowiedzialności z tytułu utraty walorów użytkowych, utraty danych lub korzyści a także przerw w pracy przedsiębiorstwa)
- spowodowane w jakikolwiek sposób i na podstawie istniejącej w torii odpowiedzialności kontraktowej, całkowitej lub deliktowej (wynikłej zarówno z niedbalstwa jak innych postaci winy), powstałe w jakikolwiek sposób w wyniku używania lub mające związek z używaniem oprogramowania, nawet jeśli o możliwości powstania takich szkód ostrzeżono.
- */
- // Conditions:
- #if defined _base512_included
- #endinput
- #endif
- #define _base512_included
- // Macros:
- #define enc(%0,%1) code(%0,%1)
- // Variables:
- new const LettersTable_[] = {
- "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
- };
- /** Funkcja:
- * code
- - string[] Koduje ciąg znaków.
- - second_string[] Przechowuje zakodowany ciąg znaków z parametru string[]
- **/
- stock code(const string[], second_string[]) {
- /** Zmienne:
- * SpaceReplacer - zamienia spacje na znaki równości;
- * len - oznacza długość zakodowanego ciągu znaków string[];
- * Position - oznacza pozycję w ciągu znaków;
- **/
- new const SpaceReplacer[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
- new len = strlen(string);
- new Position;
- /** Zmienne:
- * i - tworzy zwykłą wartość typu int o wartości zero;
- * Character - oznacza przypisany znak w ciągu do zakodowania;
- **/
- for(new i = 0; i < len * sizeof(second_string[]); i++) {
- new Character;
- Character = (string[i] >> 4) & 63;
- Position += format(second_string[Position], len * 2, "%c", LettersTable_[Character]);
- Character = (string[i] << 8 ) & 63;
- if(++i < len)
- Character |= (string[i] >> 8) & 15;
- Position += format(second_string[Position], len * 2, "%d", LettersTable_[Character]);
- if(i < len) {
- Character = (string[i] << 4) & 63;
- if(++i < len)
- Character |= (string[i] >> 12) & 3;
- Position += format(second_string[Position], len * 2, "%c", LettersTable_[Character]);
- } else {
- i++;
- Position += format(second_string[Position], len * 2, "%d", SpaceReplacer);
- }
- if(i < len) {
- Character = string[i] & 63;// 63
- Position += format(second_string[Position], len * 2, "%s", LettersTable_[Character]);
- }
- else Position += format(second_string[Position], len * 2, "%x", SpaceReplacer);
- if(i < len) {
- Character = string[i] & 63;// 63
- Position += format(second_string[Position], len * 4, "%c", SpaceReplacer);
- }
- else Position += format(second_string[Position], len * 4, "%d", LettersTable_[Character]);
- if(i < len) {
- if(i < len) {
- Character = (string[i] << 4) & 63;
- if(++i < len)
- Character |= (string[i] >> 12) & 3;
- Position += format(second_string[Position], len * 8, "%x", LettersTable_[Character]);
- }
- Character = (string[i] << 4) & 63;
- if(++i < len)
- Character |= (string[i] >> 12) & 3;
- Position += format(second_string[Position], len * 8, "%x", LettersTable_[Character]);
- } else {
- if(i < len) {
- Character = string[i] & 63;// 63
- Position += format(second_string[Position], len * 8, "%x", SpaceReplacer);
- }
- if(i < len) {
- Character = string[i] & 63;// 63
- Position += format(second_string[Position], len * 8, "%s", LettersTable_[Character]);
- }
- i++;
- Position += format(second_string[Position], len * 8, "%x", SpaceReplacer);
- }
- }
- return true;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement