Oto kod wyświetlania monet:
Spoiler
A to kod odpowiadający za wyświetlanie HUD w diablomodzie:public ShowCoins(id){ id -= TASK_SHOW_COINS; if(!is_user_alive(id)) { remove_task(id + TASK_SHOW_COINS); return; } set_hudmessage(0, 255, 0, 0.02, 0.23, 0, 0.0, 0.3, 0.0, 0.0); ShowSyncHudMsg(id, sync_hud_obj, "^n^n^n^n^n^n^n[Monety: %i]", player_coins[id]);}public ResetHUD(id){ if(!task_exists(id+TASK_SHOW_COINS)) set_task(0.1, "ShowCoins", id + TASK_SHOW_COINS, _, _, "b");}
Spoiler
public writeHud(id){ if(is_user_connected( id ) && !is_user_alive(id)){ static iSpec ; iSpec = pev( id , pev_iuser2 ); if( !is_user_alive( iSpec ) ){ return PLUGIN_CONTINUE; } static szName[ 64 ] , szClass[ 256 ] , szItem[ 256 ]; get_user_name( iSpec , szName , charsmax( szName ) ); ArrayGetString( gClassNames , playerInf[ iSpec ][ currentClass ] , szClass , charsmax( szClass ) ); ArrayGetString( gItemName , playerInf[ iSpec ][ currentItem ] , szItem , charsmax( szItem ) ); set_hudmessage(255, 255, 255, 0.78, 0.65, 0, 6.0, 3.0, 0.0, 0.0, -1) show_hudmessage( id , "Nick: %s^nZycie: %d^nPoziom: %i^nKlasa: %s^nPrzedmiot: %s^nInteligencja: %i^nSila: %i^nZwinnosc: %i^nZrecznosc: %i^nArmor: %i^nSzczescie: %i", szName , get_user_health(id) , playerInf[ iSpec ][ currentLevel ] , szClass , szItem , playerInf[ iSpec ][ currentInt ] , playerInf[ iSpec ][ currentStr ] , playerInf[ iSpec ][ currentDex ] , playerInf[ iSpec ][ currentAgi ] , playerInf[ iSpec ][ currentArmor ] , playerInf[ iSpec ][ currentLuck ] ); } else if( is_user_alive( id ) ) { static szMessage[256], szClass[ MAX_LEN_NAME ], szItem[ MAX_LEN_NAME ]; ArrayGetString(gClassNames,playerInf[id][currentClass],szClass,charsmax( szClass )); ArrayGetString(gItemName , playerInf[ id ][ currentItem ] , szItem , charsmax( szItem ) ); switch( get_pcvar_num( pCvarWriteHudMode ) ){ case 0:{ if( playerInf[ id ][ currentLevel ] >= MAX_LEVEL ){ formatex(szMessage,charsmax( szMessage ),"Zycie: %d Klasa: %s Level: %i Item: %sMonety: %i",get_user_health(id),szClass,playerInf[id][currentLevel],szItem,cod_get_user_coins(id)) } else{ formatex(szMessage,charsmax( szMessage ),"Zycie: %d Klasa: %s Level: %i ( %0.1f%s ) Item: %sMonety: %i",get_user_health(id),szClass,playerInf[id][currentLevel],((float(playerInf[id][currentExp])-float( LevelXP[playerInf[id][currentLevel]-1]))*100.0)/(float(LevelXP[playerInf[id][currentLevel]])-float(LevelXP[playerInf[id][currentLevel]-1])),"%%",szItem,cod_get_user_coins(id)) } } case 1:{ if( playerInf[ id ][ currentLevel ] >= MAX_LEVEL ){ formatex(szMessage, charsmax(szMessage),"%s[Zycie: %d]^n[Klasa: %s]^n[Level: %i]^n[Item: %s] [ %i ]^n[Monety: %i]", HUD_TEXT , get_user_health(id),szClass,playerInf[id][currentLevel],szItem, playerInf[ id ][ itemDurability ],cod_get_user_coins(id)) } else{ formatex(szMessage, charsmax(szMessage),"%s[Zycie: %d]^n[Klasa: %s]^n[Level: %i] [ %0.1f%s ]^n[Item: %s] [ %i ]^n[Monety: %i]", HUD_TEXT , get_user_health(id) ,szClass,playerInf[id][currentLevel],((float(playerInf[id][currentExp])-float( LevelXP[playerInf[id][currentLevel]-1]))*100.0)/(float(LevelXP[playerInf[id][currentLevel]])-float(LevelXP[playerInf[id][currentLevel]-1])),"%%", szItem, playerInf[ id ][ itemDurability ],cod_get_user_coins(id)) } } } static gFW,iRet; static iArrayPass; iArrayPass = PrepareArray(szMessage,256,1); gFW = CreateMultiForward ("diablo_hud_write",ET_IGNORE,FP_CELL,FP_ARRAY,FP_CELL); ExecuteForward(gFW, iRet, id , iArrayPass,charsmax( szMessage )); switch( get_pcvar_num( pCvarWriteHudMode ) ){ case 0:{ message_begin(MSG_ONE,gmsgStatusText,{0,0,0}, id) write_byte(0) write_string(szMessage) message_end() } case 1:{ set_hudmessage(16, 186, 16, 0.02, 0.21, 0, 6.0, 2.0, 0.0, 0.0, -1) show_hudmessage(id, szMessage) } } } return PLUGIN_CONTINUE;}
Użytkownik TigerX edytował ten post 15.02.2013 15:49