- | Afiseaza codul
#include <amxmodx> #include <amxmisc> #include <fakemeta> #include <hamsandwich> #include <nvault> // Aici stergeti // din fata in functie de ce sistem de credite folositi. #define FURIEN_ASKHANAR //#define POINTS_SYSTEM_CYBY //#define ARAGON_CREDITS // Aici sunt inregistrate nativele in functie de ce sistem folositi. #if defined FURIEN_ASKHANAR native fcs_get_user_credits(client) native fcs_set_user_credits(client, credits) #endif #if defined POINTS_SYSTEM_CYBY native get_points(id) native set_points(id, value) #endif #if defined ARAGON_CREDITS native get_user_credits(id) native set_user_credits(id, credits) #endif // Variabile pentru nivel new nivel[33], clasa_furien[33], clasa_anti_furien[33], g_nextclass_a[33], g_nextclass[33]; // Constanta unde este inregistrat tagul. new const TAG[] = "[FURIEN CLASS]"; // Sistemul de salvare new salvare_nvault; // Credite pe damage new daune_provocate[33]; #define DAUNE_MAXIM 500 // Aici modifici pentru cat damage sa primeasca un credit. // Mesajul sincronizat pentru spectatori si afisarea creditelor. new mesaj_sync; // Setarea vitezei prin hamsandwich [stock utilizat din Zombie Plague] new Ham:Ham_Player_ResetMaxSpeed = Ham_Item_PreFrame; // Rezolvam bugul cu viteza in freeze time xDxD. new freeze; // Aici definim cate clase sunt. Intotdeauna numarul lor trebuie sa fie + 1. Exemplu, daca sunt 14 clase in total noi punem 15. #define CLASE 15 // Numele claselor FURIEN new const CLASELE_FURIEN[CLASE][] = { "", "Belial", "Dummy", "Ghost", "Blink", "Deimos", "Ahpuch", "Tank", "Scream", "Smoker", "Liker", "Crow", "Lucye", "Scorch", "Darck" } // Numele claselor Anti-Furien new const CLASELE_ANTI_FURIEN[CLASE][] = { "", "Craven", "Brave", "Bill", "Steve", "Good", "Hero", "Divine", "Lyox", "Tough", "Melod", "Craven", "Handsome", "Peter", "Francis" } // Pretul fiecarui nivel in credite. new const CREDITE_COST[CLASE] = { 0, 300, 650, 1300, 2700, 4400, 8800, 16000, 30000, 60000, 61000, 62000, 62000, 64000, 65000 } // Task-ul pentru afisarea hudului. enum (+= 100) { TASK_SHOWHUD } #define ARATA_HUD (taskid - TASK_SHOWHUD) // Aici se termina inregistrarea porcariilor. // Init. public plugin_init() { register_plugin("Anti-Furien & Furien Class", "1.0.2", "cyby") // Comanda pentru afisarea meniului de clase. register_clcmd("say /class", "showclass") register_clcmd("say /level", "showclass") register_concmd("amx_take_level","cmdTake",_,"<nume> <level>") // Evenimentul de ucidere. register_event("DeathMsg", "event_ucidere", "a") // Functii prinse prin hamsandwich. RegisterHam(Ham_TakeDamage, "player", "ham_take_dmg") RegisterHam(Ham_Spawn, "player", "spawn_post", 1) RegisterHam(Ham_Player_ResetMaxSpeed, "player", "speed_reset_post", 1) // Functii pentru rezolvarea bugului cu viteza. register_event("HLTV", "round_start_before_freeze", "a", "1=0", "2=0") register_logevent("round_start_after_freeze", 2, "1=Round_Start") // Definim functia de Hud Sincronizat. mesaj_sync = CreateHudSyncObj() } public cmdTake(id){ if(!(get_user_flags(id) & ADMIN_IMMUNITY)) return 1 new szFirstArg[ 32 ], szSecondArg[ 10 ]; read_argv( 1, szFirstArg, sizeof ( szFirstArg ) -1 ); read_argv( 2, szSecondArg, sizeof ( szSecondArg ) -1 ); if( equal( szFirstArg, "" ) || equal( szSecondArg, "" ) ) { console_print( id, "amx_take_level < name > < level >" ); return 1; } new LEVEL = str_to_num( szSecondArg ); //nivel[id] if( LEVEL <= 0 ) { console_print ( id, "Level value must be greater than 0" ); return 1; } new iPlayer = cmd_target( id, szFirstArg, 8 ); if( !iPlayer ) { console_print( id, "Player %s was not found.", szFirstArg ); return 1; } if( nivel[iPlayer] < LEVEL ) { console_print( id, "Player %s doesn't have so much level. He has: %i", szFirstArg, nivel [ iPlayer ] ); return 1; //xp } nivel[iPlayer]-=LEVEL new szName[ 32 ], _szName[ 32 ]; get_user_name( id, szName, sizeof ( szName ) -1 ); get_user_name( iPlayer, _szName, sizeof ( _szName ) -1 ); client_print(0,print_chat,"ADMIN:%s i-a luat din level playerului %s",szName,_szName); SaveData(iPlayer) return 1; } // Salvarea pe nvault. Recomand sa nu modifici. public plugin_cfg() { salvare_nvault = nvault_open("level_furien") if(salvare_nvault == INVALID_HANDLE) set_fail_state("Eroare la deschiderea bazei de date.") } // Inchiderea fisierului nvault daca serverul pica sau se schimba harta. Recomand sa nu modifici. public plugin_end() nvault_close(salvare_nvault) public round_start_before_freeze() freeze = true public round_start_after_freeze() freeze = false // Nativ pentru a putea prelua nivelul fiecarui jucator. // Ex: fr_get_level(id) == 2 [daca jucatorul are nivelul 2] public plugin_natives() register_native("fr_get_level", "native_get_level", 1) // Partea din spate a nativului public native_get_level(id) { if(!is_user_connected(id)) return -1; return nivel[id]; } // Evenimentul de ucidere. public event_ucidere() { static atacator, victima; atacator = read_data(1); victima = read_data(2); if(is_user_alive(atacator) && is_user_connected(victima)) { check_level(atacator) check_level(victima) } } // Functia de scanare a nivelului + cumparare daca sunt gasiti numarul de credite la jucator + salvare. public check_level(id) { static credite; #if defined FURIEN_ASKHANAR credite = fcs_get_user_credits(id) #endif #if defined POINTS_SYSTEM_CYBY credite = get_points(id) #endif #if defined ARAGON_CREDITS credite = get_user_credits(id) #endif if(credite >= CREDITE_COST[nivel[id]]) { #if defined FURIEN_ASKHANAR fcs_set_user_credits(id, credite - CREDITE_COST[nivel[id]]) #endif #if defined POINTS_SYSTEM_CYBY set_points(id, credite - CREDITE_COST[nivel[id]]) #endif #if defined ARAGON_CREDITS set_user_credits(id, credite - CREDITE_COST[nivel[id]]) #endif nivel[id]++ SaveData(id) color(id, ".v%s.g Felicitari. Ai ajuns nivelul.e %d.g.", TAG, nivel[id]) color(0, ".v%s.g Felicitari lui.e %s.g pentru avansarea la nivelul.e %d.g.", TAG, get_name(id), nivel[id]) } } // Functia de primire a unei cantitati de credite daca jucatorul face cat este definit in DAUNE_MAXIM. public ham_take_dmg(victima, inductor, atacator, Float:daune) { if(victima == atacator || get_user_team(atacator) == get_user_team(victima) || !is_user_alive(atacator)) return HAM_IGNORED; daune += nivel[atacator] * 2.0 SetHamParamFloat(4, daune) daune_provocate[atacator] += floatround(daune) if(daune_provocate[atacator] > DAUNE_MAXIM) { daune_provocate[atacator] = 0 #if defined FURIEN_ASKHANAR fcs_set_user_credits(atacator, fcs_get_user_credits(atacator) + 1) #endif #if defined POINTS_SYSTEM_CYBY set_points(atacator, get_points(atacator) + 1) #endif #if defined ARAGON_CREDITS set_user_credits(atacator, get_user_credits(atacator) + 1) #endif check_level(atacator) } return HAM_IGNORED; } // Functia afisare meniul principal public showclass(id) { if(!is_user_connected(id)) return; static menu_name[300]; #if defined FURIEN_ASKHANAR formatex(menu_name, charsmax(menu_name), "\yClass Menu^nLevel:\r %d\w |\y Credits:\r %d\y^n^n", nivel[id], fcs_get_user_credits(id)); #endif #if defined POINTS_SYSTEM_CYBY formatex(menu_name, charsmax(menu_name), "\yClass Menu^nLevel:\r %d\w |\y Credits:\r %d\y^n^n", nivel[id], get_points(id)); #endif #if defined ARAGON_CREDITS formatex(menu_name, charsmax(menu_name), "\yClass Menu^nLevel:\r %d\w |\y Credits:\r %d\y^n^n", nivel[id], get_user_credits(id)); #endif static item_menu_furien[60], item_menu_anti_furien[60]; formatex(item_menu_furien, charsmax(item_menu_furien), "Furien Class\r [%s]\y", CLASELE_FURIEN[clasa_furien[id]]) formatex(item_menu_anti_furien, charsmax(item_menu_anti_furien), "Anti-Furien Class\r [%s]\y", CLASELE_ANTI_FURIEN[clasa_anti_furien[id]]) new menu = menu_create(menu_name, "spate_showclass") menu_additem(menu, item_menu_furien, "1") menu_additem(menu, item_menu_anti_furien, "2") menu_display(id, menu, 0) } // Spatele meniului principal public spate_showclass(id, menu, item) { if(item == MENU_EXIT) { menu_destroy(menu) return PLUGIN_HANDLED; } static tasta; tasta = item + 1 switch(tasta) { case 1: clase_furien(id) case 2: clase_anti_furien(id) } menu_destroy(menu) return PLUGIN_HANDLED; } // Meniul de clase Furien. public clase_furien(id) { if(!is_user_connected(id)) return; static menu_name[300]; #if defined FURIEN_ASKHANAR formatex(menu_name, charsmax(menu_name), "\yClase Furien^nLevel:\r %d\w |\y Credits:\r %d\y^nCurrent Class:\r %s\y", nivel[id], fcs_get_user_credits(id), CLASELE_FURIEN[clasa_furien[id]]); #endif #if defined POINTS_SYSTEM_CYBY formatex(menu_name, charsmax(menu_name), "\yClase Furien^nLevel:\r %d\w |\y Credits:\r %d\y^nCurrent Class:\r %s\y", nivel[id], get_points(id), CLASELE_FURIEN[clasa_furien[id]]); #endif #if defined ARAGON_CREDITS formatex(menu_name, charsmax(menu_name), "\yClase Furien^nLevel:\r %d\w |\y Credits:\r %d\y^nCurrent Class:\r %s\y", nivel[id], get_user_credits(id), CLASELE_FURIEN[clasa_furien[id]]); #endif new menu = menu_create(menu_name, "spate_clase_furien") static tasta[3], menu_item[35], i; for(i = 1; i < sizeof CLASELE_FURIEN; i++) { if(nivel[id] < i || clasa_furien[id] == i) formatex(menu_item, charsmax(menu_item), "\d%s | Level %d", CLASELE_FURIEN, i) else formatex(menu_item, charsmax(menu_item), "\y%s | Level %d", CLASELE_FURIEN, i) tasta[0] = i tasta[1] = 0 menu_additem(menu, menu_item, tasta) } menu_display(id, menu, 0) } // Meniul de clase Anti-Furien. public clase_anti_furien(id) { if(!is_user_connected(id)) return; static menu_name[300]; #if defined FURIEN_ASKHANAR formatex(menu_name, charsmax(menu_name), "\yClase Anti-Furien^nLevel:\r %d\w |\y Credits:\r %d\y^nCurrent Class:\r %s\y", nivel[id], fcs_get_user_credits(id), CLASELE_ANTI_FURIEN[clasa_anti_furien[id]]); #endif #if defined POINTS_SYSTEM_CYBY formatex(menu_name, charsmax(menu_name), "\yClase Anti-Furien^nLevel:\r %d\w |\y Credits:\r %d\y^nCurrent Class:\r %s\y", nivel[id], get_points(id), CLASELE_ANTI_FURIEN[clasa_anti_furien[id]]); #endif #if defined ARAGON_CREDITS formatex(menu_name, charsmax(menu_name), "\yClase Anti-Furien^nLevel:\r %d\w |\y Credits:\r %d\y^nCurrent Class:\r %s\y", nivel[id], get_user_credits(id), CLASELE_ANTI_FURIEN[clasa_anti_furien[id]]); #endif new menuid = menu_create(menu_name, "spate_clase_a_furien") static menu_item[35], tasta[3], i; for(i = 1; i < sizeof CLASELE_ANTI_FURIEN; i++) { if(nivel[id] < i || clasa_anti_furien[id] == i) formatex(menu_item, charsmax(menu_item), "\d%s | %d Level", CLASELE_ANTI_FURIEN, i) else formatex(menu_item, charsmax(menu_item), "\y%s | %d Level", CLASELE_ANTI_FURIEN, i) tasta[0] = i tasta[1] = 0 menu_additem(menuid, menu_item, tasta) } menu_display(id, menuid, 0) } // Spatele meniului clase Furien. public spate_clase_furien(id, menu, item) { if(item == MENU_EXIT) { menu_destroy(menu) return PLUGIN_HANDLED; } static tasta; tasta = item + 1 g_nextclass[id] = tasta if(nivel[id] < g_nextclass[id]) { color(id, ".v%s.g Ai nivelul prea mic pentru clasa.e %s.g.", TAG, CLASELE_FURIEN[tasta]) g_nextclass[id] = 0 clase_furien(id) return PLUGIN_HANDLED; } if(g_nextclass[id] == clasa_furien[id]) { color(id, ".v%s.g Ai deja selectata clasa.e %s.g.", TAG, CLASELE_FURIEN[tasta]) g_nextclass[id] = 0 return PLUGIN_HANDLED; } color(id, ".v%s.g Ai selectat clasa.e %s.g. In runda urmatoare este activa.", TAG, CLASELE_FURIEN[tasta]) menu_destroy(menu); return PLUGIN_HANDLED; } // Spatele meniului clase Anti-Furien. public spate_clase_a_furien(id, menu, item) { if(item == MENU_EXIT) { menu_destroy(menu) return PLUGIN_HANDLED; } static tasta; tasta = item + 1 g_nextclass_a[id] = tasta if(nivel[id] < g_nextclass_a[id]) { color(id, ".v%s.g Ai nivelul prea mic pentru clasa.e %s.g.", TAG, CLASELE_ANTI_FURIEN[tasta]) g_nextclass_a[id] = 0 clase_anti_furien(id) return PLUGIN_HANDLED; } if(g_nextclass_a[id] == clasa_anti_furien[id]) { color(id, ".v%s.g Ai deja selectata clasa.e %s.g.", TAG, CLASELE_ANTI_FURIEN[tasta]) g_nextclass_a[id] = 0 return PLUGIN_HANDLED; } color(id, ".v%s.g Ai selectat clasa.e %s.g. In runda urmatoare este activa.", TAG, CLASELE_ANTI_FURIEN[tasta]) menu_destroy(menu); return PLUGIN_HANDLED; } // Functia de spawn. Mai exact cand jucatorul este pus in baza, reinviat. Primeste facilitatile pentru nivelurile pe care jucatorul X are // si Y level si clasa selectata din meniu Z ii seteaza ca si clasa default. public spawn_post(id) { if(!is_user_alive(id)) return; if(g_nextclass[id] != 0) { clasa_furien[id] = g_nextclass[id] g_nextclass[id] = 0 color(id, ".v%s.g Ti s-a setat cu succes clasa.e %s.g.", TAG, CLASELE_FURIEN[clasa_furien[id]]) } if(g_nextclass_a[id] != 0) { clasa_anti_furien[id] = g_nextclass_a[id] g_nextclass_a[id] = 0 color(id, ".v%s.g Ti s-a setat cu succes clasa.e %s.g.", TAG, CLASELE_ANTI_FURIEN[clasa_anti_furien[id]]) } if(get_user_team(id) == 2) { switch(clasa_anti_furien[id]) { case 1: set_pev(id, pev_health, 100.0) case 2: set_pev(id, pev_health, 105.0) case 3: set_pev(id, pev_health, 110.0) case 4: set_pev(id, pev_health, 115.0) case 5: set_pev(id, pev_health, 120.0) case 6: set_pev(id, pev_health, 125.0) case 7: set_pev(id, pev_health, 130.0) case 8: set_pev(id, pev_health, 135.0) case 9: set_pev(id, pev_health, 140.0) case 10: set_pev(id, pev_health, 145.0) case 11: set_pev(id, pev_health, 150.0) case 12: set_pev(id, pev_health, 155.0) case 13: set_pev(id, pev_health, 160.0) case 14: set_pev(id, pev_health, 165.0) case 15: set_pev(id, pev_health, 170.0) } } else if(get_user_team(id) == 1) { switch(clasa_furien[id]) { case 1: set_pev(id, pev_health, 100.0) case 2: set_pev(id, pev_health, 105.0) case 3: set_pev(id, pev_health, 110.0) case 4: set_pev(id, pev_health, 115.0) case 5: set_pev(id, pev_health, 120.0) case 6: set_pev(id, pev_health, 125.0) case 7: set_pev(id, pev_health, 130.0) case 8: set_pev(id, pev_health, 135.0) case 9: set_pev(id, pev_health, 140.0) case 10: set_pev(id, pev_health, 145.0) case 11: set_pev(id, pev_health, 150.0) case 12: set_pev(id, pev_health, 155.0) case 13: set_pev(id, pev_health, 160.0) case 14: set_pev(id, pev_health, 165.0) case 15: set_pev(id, pev_health, 170.0) } } new Float:valoare; if(get_user_team(id) == 1) { switch(clasa_furien[id]) { case 1: valoare = 620.0 / 800.0 case 2: valoare = 600.0 / 800.0 case 3: valoare = 580.0 / 800.0 case 4: valoare = 560.0 / 800.0 case 5: valoare = 560.0 / 800.0 case 6: valoare = 540.0 / 800.0 case 7: valoare = 520.0 / 800.0 case 8: valoare = 500.0 / 800.0 case 9: valoare = 480.0 / 800.0 case 10: valoare = 460.0 / 800.0 case 11: valoare = 440.0 / 800.0 case 12: valoare = 420.0 / 800.0 case 13: valoare = 400.0 / 800.0 case 14: valoare = 380.0 / 800.0 case 15: valoare = 370.0 / 800.0 } } else if(get_user_team(id) == 2) { switch(clasa_anti_furien[id]) { case 1: valoare = 620.0 / 800.0 case 2: valoare = 600.0 / 800.0 case 3: valoare = 580.0 / 800.0 case 4: valoare = 560.0 / 800.0 case 5: valoare = 560.0 / 800.0 case 6: valoare = 540.0 / 800.0 case 7: valoare = 520.0 / 800.0 case 8: valoare = 500.0 / 800.0 case 9: valoare = 480.0 / 800.0 case 10: valoare = 460.0 / 800.0 case 11: valoare = 440.0 / 800.0 case 12: valoare = 420.0 / 800.0 case 13: valoare = 400.0 / 800.0 case 14: valoare = 380.0 / 800.0 case 15: valoare = 370.0 / 800.0 } } set_pev(id, pev_gravity, valoare) check_level(id) ExecuteHamB(Ham_Player_ResetMaxSpeed, id) } // Functia de setare a vitezei. public speed_reset_post(id) { if(!is_user_alive(id) || freeze) return; set_player_maxspeed(id) } // Spatele functiei de setare a vitezei. set_player_maxspeed(id) { switch(get_user_team(id)) { case 1: set_pev(id, pev_maxspeed, 650.0 + (20.0 * clasa_furien[id])) case 2: set_pev(id, pev_maxspeed, 240.0 + (10.0 * clasa_anti_furien[id])) } } // Hudul de afisare a caracteristicilor public HealthHud(taskid) { static id; id = ARATA_HUD; if(!is_user_alive(id)) { id = pev(id, pev_iuser2) if(!is_user_alive(id)) return; } static msj_clasa[50], clasa, rosu, verde, albastru; switch(get_user_team(id)) { case 1: { clasa = clasa_furien[id] rosu = 200 verde = 50 albastru = 70 formatex(msj_clasa, charsmax(msj_clasa), "%s", CLASELE_FURIEN[clasa]) } case 2: { clasa = clasa_anti_furien[id] rosu = 20 verde = 50 albastru = 200 formatex(msj_clasa, charsmax(msj_clasa), "%s", CLASELE_ANTI_FURIEN[clasa]) } } if(id != ARATA_HUD) { static credits[15]; #if defined FURIEN_ASKHANAR AddCommas(fcs_get_user_credits(id), credits, charsmax(credits)) #endif #if defined POINTS_SYSTEM_CYBY AddCommas(get_points(id), credits, charsmax(credits)) #endif #if defined ARAGON_CREDITS AddCommas(get_user_credits(id), credits, charsmax(credits)) #endif set_hudmessage(100, 50, 150, -1.0, 0.8, 1, 0.3, 0.3) ShowSyncHudMsg(ARATA_HUD, mesaj_sync, "%s^nHP: %d | AP: %d^nLVL: %d | CLASA: %s^nCREDITE: %s", get_name(id), get_user_health(id), get_user_armor(id), nivel[id], msj_clasa, credits) } else { static credits[15]; #if defined FURIEN_ASKHANAR AddCommas(fcs_get_user_credits(ARATA_HUD), credits, charsmax(credits)) #endif #if defined POINTS_SYSTEM_CYBY AddCommas(get_points(ARATA_HUD), credits, charsmax(credits)) #endif #if defined ARAGON_CREDITS AddCommas(get_user_credits(ARATA_HUD), credits, charsmax(credits)) #endif set_dhudmessage(rosu, verde, albastru, -1.0, 0.85, 0, 0.0, 0.3, 0.1, 0.2) show_dhudmessage(ARATA_HUD, "[ HP: %d | AP: %d | Credite: %s ]^n[ Clasa: %s | Level: %d ]", get_user_health(ARATA_HUD), get_user_armor(ARATA_HUD), credits, msj_clasa, nivel[ARATA_HUD]) } } // Functia de disconnect + salvare a datelor. public client_disconnect(id) { daune_provocate[id] = 0 remove_task(id+TASK_SHOWHUD) SaveData(id) g_nextclass[id] = 0 g_nextclass_a[id] = 0 } // Functia de join + preluare a datelor. public client_putinserver(id) { LoadData(id) g_nextclass[id] = 0 g_nextclass_a[id] = 0 set_task(0.3, "HealthHud", id+TASK_SHOWHUD, _, _, "b") } // Spatele functiei de preluare a datelor. public LoadData(id) { new vaultkey[64], vaultdata[256]; format(vaultkey, 63, "%s##LEVELING", get_name(id)) format(vaultdata, 255, "%i#%i#%i#", nivel[id], clasa_furien[id], clasa_anti_furien[id]) nvault_get(salvare_nvault, vaultkey, vaultdata, 255) replace_all(vaultdata, 255, "#", " ") new lvl[32], clasaf[32], clasaa[32]; parse(vaultdata, lvl, 31, clasaf, 31, clasaa, 31) nivel[id] = str_to_num(lvl) clasa_furien[id] = str_to_num(clasaf) clasa_anti_furien[id] = str_to_num(clasaa) if(nivel[id] == 0) nivel[id] = 1 if(clasa_furien[id] == 0) clasa_furien[id] = 1 if(clasa_anti_furien[id] == 0) clasa_anti_furien[id] = 1 } // Spatele functiei de salvare a datelor. public SaveData(id) { new vaultkey[64], vaultdata[256]; format(vaultkey, 63, "%s##LEVELING", get_name(id)) format(vaultdata, 255, "%i#%i#%i#", nivel[id], clasa_furien[id], clasa_anti_furien[id]) nvault_set(salvare_nvault, vaultkey, vaultdata) } // "Comanda rapida" la preluarea numelui pentru a scurta din cod pe ici pe colo. stock get_name(id) { static name[32]; get_user_name(id, name, charsmax(name) - 1) return name; } // Stockul folosit pentru chat color. stock color(const id, const input[], any:...) { new count = 1, players[32]; static msg[191] vformat(msg, 190, input, 3) replace_all(msg, 190, ".v", "^4") replace_all(msg, 190, ".g", "^1") replace_all(msg, 190, ".e", "^3") if(id) players[0] = id; else get_players(players, count, "ch") { for (new i = 0; i < count; i++) { if(is_user_connected(players)) { message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players) write_byte(players); write_string(msg); message_end(); } } } } // Functia pentru adaugarea la numere de peste 1000 virgula la ele. public AddCommas(iNum , szOutput[] , iLen) { new szTmp[15], iOutputPos, iNumPos, iNumLen; if(iNum < 0) { szOutput[iOutputPos++] = '-' iNum = abs(iNum) } iNumLen = num_to_str(iNum, szTmp, charsmax(szTmp)) if(iNumLen <= 3) iOutputPos += copy(szOutput[iOutputPos], iLen, szTmp) else { while((iNumPos < iNumLen) && (iOutputPos < iLen)) { szOutput[iOutputPos++] = szTmp[iNumPos++] if((iNumLen - iNumPos) && !((iNumLen - iNumPos) % 3)) szOutput[iOutputPos++] = ',' } szOutput[iOutputPos] = EOS } return iOutputPos; } // Stockul pentru dhudmessage. stock __dhud_color; stock __dhud_x; stock __dhud_y; stock __dhud_effect; stock __dhud_fxtime; stock __dhud_holdtime; stock __dhud_fadeintime; stock __dhud_fadeouttime; stock __dhud_reliable; stock set_dhudmessage( red = 0, green = 160, blue = 0, Float:x = -1.0, Float:y = 0.65, effects = 2, Float:fxtime = 6.0, Float:holdtime = 3.0, Float:fadeintime = 0.1, Float:fadeouttime = 1.5, bool:reliable = false ) { #define clamp_byte(%1) ( clamp( %1, 0, 255 ) ) #define pack_color(%1,%2,%3) ( %3 + ( %2 << 8 ) + ( %1 << 16 ) ) __dhud_color = pack_color( clamp_byte( red ), clamp_byte( green ), clamp_byte( blue ) ); __dhud_x = _:x; __dhud_y = _:y; __dhud_effect = effects; __dhud_fxtime = _:fxtime; __dhud_holdtime = _:holdtime; __dhud_fadeintime = _:fadeintime; __dhud_fadeouttime = _:fadeouttime; __dhud_reliable = _:reliable; return 1; } stock show_dhudmessage( index, const message[], any:... ) { new buffer[ 128 ]; new numArguments = numargs(); if( numArguments == 2 ) { send_dhudMessage( index, message ); } else if( index || numArguments == 3 ) { vformat( buffer, charsmax( buffer ), message, 3 ); send_dhudMessage( index, buffer ); } else { new playersList[ 32 ], numPlayers; get_players( playersList, numPlayers, "ch" ); if( !numPlayers ) { return 0; } new Array:handleArrayML = ArrayCreate(); for( new i = 2, j; i < numArguments; i++ ) { if( getarg( i ) == LANG_PLAYER ) { while( ( buffer[ j ] = getarg( i + 1, j++ ) ) ) {} j = 0; if( GetLangTransKey( buffer ) != TransKey_Bad ) { ArrayPushCell( handleArrayML, i++ ); } } } new size = ArraySize( handleArrayML ); if( !size ) { vformat( buffer, charsmax( buffer ), message, 3 ); send_dhudMessage( index, buffer ); } else { for( new i = 0, j; i < numPlayers; i++ ) { index = playersList[ i ]; for( j = 0; j < size; j++ ) { setarg( ArrayGetCell( handleArrayML, j ), 0, index ); } vformat( buffer, charsmax( buffer ), message, 3 ); send_dhudMessage( index, buffer ); } } ArrayDestroy( handleArrayML ); } return 1; } stock send_dhudMessage( const index, const message[] ) { message_begin( __dhud_reliable ? ( index ? MSG_ONE : MSG_ALL ) : ( index ? MSG_ONE_UNRELIABLE : MSG_BROADCAST ), SVC_DIRECTOR, _, index ); { write_byte( strlen( message ) + 31 ); write_byte( DRC_CMD_MESSAGE ); write_byte( __dhud_effect ); write_long( __dhud_color ); write_long( __dhud_x ); write_long( __dhud_y ); write_long( __dhud_fadeintime ); write_long( __dhud_fadeouttime ); write_long( __dhud_holdtime ); write_long( __dhud_fxtime ); write_string( message ); } message_end(); }
Sterge lvl
Moderators: Moderatori ajutatori, Moderatori, Echipa eXtreamCS.com
-
- Fost moderator
- Posts: 9362
- Joined: 06 Jul 2013, 22:08
- Detinator Steam: Da
- Detinator server CS: Nu
- Reputatie: Fost eXtream Mod
Fost Scripter eXtreamCS
Nume anterior: scosmynnnn - Has thanked: 492 times
- Been thanked: 547 times
cand stergi alea trebuie sa ai stins serverul + ca trebuie sa stergi ambele fisiere .journal si .vault parca sau cum e
- dRaGoNeLy^ ;x
- Membru, skill +3
- Posts: 1430
- Joined: 27 Jun 2014, 15:42
- Detinator Steam: Da
- CS Status: PR0 Than Y0U!
- Detinator server CS: Nu.
- SteamID: PM!
- Reputatie: Castigator Membru Club eXtream @ Mos Nicolae (doua luni)
Fost Membru Club eXtreamCS (patru luni) - Fond eXtream: 0
- Location: București
- Has thanked: 23 times
- Been thanked: 13 times
- Contact:
-
- Membru, skill 0
- Posts: 32
- Joined: 02 Aug 2014, 00:22
- Detinator Steam: Nu
- CS Status: Citesc forumul eXtreamCS.com...!
- Fond eXtream: 0
- Has thanked: 2 times
- Contact:
aha.cicadRaGoNeLy^ ;x wrote:Baga asta in consola: amx_give_credits dragonely 999999999
@ON: Am uitat sa-ti zic k trebuia sa fie serveru off
Frate am o eroare ,dac anu intri 1 zis se sterg lvl